From ed66231d19ec5b0614b05c0ab8953e5d767dd9f1 Mon Sep 17 00:00:00 2001 From: dap <dap@qq.com> Date: 星期三, 15 五月 2024 11:35:02 +0800 Subject: [PATCH] Merge branch 'dev' of https://gitee.com/JavaLionLi/plus-ui into dev --- /dev/null | 53 ----------------- src/views/workflow/leave/leaveEdit.vue | 4 src/api/login.ts | 6 + src/components/Process/multiInstanceUser.vue | 22 +++++-- src/layout/components/AppMain.vue | 9 ++- src/views/system/user/profile/onlineDevice.vue | 2 src/components/Process/approvalRecord.vue | 8 +- src/views/system/user/profile/thirdParty.vue | 4 src/api/system/user/index.ts | 6 + src/api/workflow/task/index.ts | 24 ++++++++ src/bpmn/panel/TaskPanel.vue | 15 ++-- src/api/system/tenant/index.ts | 3 12 files changed, 71 insertions(+), 85 deletions(-) diff --git a/src/api/login.ts b/src/api/login.ts index 100a5e9..b6955de 100644 --- a/src/api/login.ts +++ b/src/api/login.ts @@ -20,7 +20,8 @@ url: '/auth/login', headers: { isToken: false, - isEncrypt: true + isEncrypt: true, + repeatSubmit: false }, method: 'post', data: params @@ -38,7 +39,8 @@ url: '/auth/register', headers: { isToken: false, - isEncrypt: true + isEncrypt: true, + repeatSubmit: false }, method: 'post', data: params diff --git a/src/api/system/tenant/index.ts b/src/api/system/tenant/index.ts index 4531a0a..4380dbe 100644 --- a/src/api/system/tenant/index.ts +++ b/src/api/system/tenant/index.ts @@ -25,7 +25,8 @@ url: '/system/tenant', method: 'post', headers: { - isEncrypt: true + isEncrypt: true, + repeatSubmit: false }, data: data }); diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index 61a58f6..25c7884 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -86,7 +86,8 @@ url: '/system/user/resetPwd', method: 'put', headers: { - isEncrypt: true + isEncrypt: true, + repeatSubmit: false }, data: data }); @@ -145,7 +146,8 @@ url: '/system/user/profile/updatePwd', method: 'put', headers: { - isEncrypt: true + isEncrypt: true, + repeatSubmit: false }, data: data }); diff --git a/src/api/workflow/task/index.ts b/src/api/workflow/task/index.ts index 8260e69..d29de30 100644 --- a/src/api/workflow/task/index.ts +++ b/src/api/workflow/task/index.ts @@ -238,3 +238,27 @@ data: data }); }; + +/** + * 鏌ヨ宸ヤ綔娴佷换鍔$敤鎴烽�夋嫨鍔犵浜哄憳 + * @param taskId + * @returns {*} + */ +export const getTaskUserIdsByAddMultiInstance = (taskId: string) => { + return request({ + url: '/workflow/task/getTaskUserIdsByAddMultiInstance/' + taskId, + method: 'get' + }); +}; + +/** + * 鏌ヨ宸ヤ綔娴侀�夋嫨鍑忕浜哄憳 + * @param taskId + * @returns {*} + */ +export const getListByDeleteMultiInstance = (taskId: string) => { + return request({ + url: '/workflow/task/getListByDeleteMultiInstance/' + taskId, + method: 'get' + }); +}; diff --git a/src/api/workflow/workflowUser/index.ts b/src/api/workflow/workflowUser/index.ts deleted file mode 100644 index 7822715..0000000 --- a/src/api/workflow/workflowUser/index.ts +++ /dev/null @@ -1,53 +0,0 @@ -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { UserVO } from '@/api/system/user/types'; - -/** - * 鍒嗛〉鏌ヨ宸ヤ綔娴侀�夋嫨鍔犵浜哄憳 - * @param query - * @returns {*} - */ -export const getPageByAddMultiInstance = (query: object) => { - return request({ - url: '/workflow/user/getPageByAddMultiInstance', - method: 'get', - params: query - }); -}; - -/** - * 鏌ヨ宸ヤ綔娴侀�夋嫨鍑忕浜哄憳 - * @param query - * @returns {*} - */ -export const getListByDeleteMultiInstance = (taskId: string) => { - return request({ - url: '/workflow/user/getListByDeleteMultiInstance/' + taskId, - method: 'get' - }); -}; - -/** - * 鎸夌収鐢ㄦ埛id鏌ヨ鐢ㄦ埛 - * @param userIdList - * @returns {*} - */ -export const getUserListByIds = (userIdList: any[]): AxiosPromise<UserVO[]> => { - return request({ - url: '/workflow/user/getUserListByIds/' + userIdList, - method: 'get' - }); -}; - -/** - * 鍒嗛〉鏌ヨ鐢ㄦ埛 - * @param query - * @returns {*} - */ -export const getPageByUserList = (query: object) => { - return request({ - url: '/workflow/user/getPageByUserList', - method: 'get', - params: query - }); -}; diff --git a/src/bpmn/panel/TaskPanel.vue b/src/bpmn/panel/TaskPanel.vue index 253d3f9..bc037ee 100644 --- a/src/bpmn/panel/TaskPanel.vue +++ b/src/bpmn/panel/TaskPanel.vue @@ -50,7 +50,7 @@ <el-tabs tab-position="left" class="demo-tabs"> <el-tab-pane label="韬唤瀛樺偍"> <el-form-item label="鍒嗛厤浜哄憳"> - <el-input v-model="formData.assignee"> + <el-input v-model="formData.assignee" @blur="blurAssignee(formData.assignee)"> <template #append> <el-button icon="Search" type="primary" @click="openSingleUserSelect" /> </template> @@ -283,24 +283,23 @@ const isMultiple = ref(true); const openUserSelect = () => { - if (!formData.value.candidateUsers) { - formData.value.candidateUsers = '-1'; - } userSelectRef.value.open(); }; const openSingleUserSelect = () => { + if (formData.value.assignee.includes('$')) { + formData.value.assignee = ''; + } singleUserSelectRef.value.open(); }; const openRoleSelect = () => { - if (!formData.value.candidateGroups) { - formData.value.candidateGroups = '-1'; - } roleSelectRef.value.open(); }; const openDueDate = (e) => { dueDateRef.value.openDialog(); }; - +const blurAssignee = (assignee) => { + updateProperties({ 'flowable:assignee': assignee ? assignee : undefined }); +}; const singleUserSelectCallBack = (data: UserVO[]) => { const user: UserVO = data.length !== 0 ? data[0] : undefined; updateProperties({ 'flowable:assignee': user?.userId }); diff --git a/src/components/Process/approvalRecord.vue b/src/components/Process/approvalRecord.vue index c24b8a4..1610f27 100644 --- a/src/components/Process/approvalRecord.vue +++ b/src/components/Process/approvalRecord.vue @@ -5,14 +5,14 @@ <el-tab-pane label="娴佺▼鍥�" name="bpmn"> <BpmnView ref="bpmnViewRef"></BpmnView> </el-tab-pane> - <el-tab-pane label="瀹℃壒淇℃伅" name="info" v-loading="loading"> + <el-tab-pane v-loading="loading" label="瀹℃壒淇℃伅" name="info"> <div> <el-table :data="historyList" style="width: 100%" border fit> <el-table-column type="index" label="搴忓彿" align="center" width="60"></el-table-column> <el-table-column prop="name" label="浠诲姟鍚嶇О" sortable align="center"></el-table-column> - <el-table-column prop="nickName" label="鍔炵悊浜�" sortable align="center"> + <el-table-column prop="nickName" :show-overflow-tooltip="true" label="鍔炵悊浜�" sortable align="center"> <template #default="scope"> - <el-tag type="success">{{ scope.row.nickName||'鏃�' }}</el-tag> + <el-tag type="success">{{ scope.row.nickName || '鏃�' }}</el-tag> </template> </el-table-column> <el-table-column label="鐘舵��" sortable align="center"> @@ -71,7 +71,7 @@ const init = async (instanceId: string) => { visible.value = true; loading.value = true; - tabActiveName.value = 'bpmn' + tabActiveName.value = 'bpmn'; historyList.value = []; processApi.getHistoryRecord(instanceId).then((resp) => { historyList.value = resp.data.historyRecordList; diff --git a/src/components/Process/multiInstanceUser.vue b/src/components/Process/multiInstanceUser.vue index a2d37bf..b2039b9 100644 --- a/src/components/Process/multiInstanceUser.vue +++ b/src/components/Process/multiInstanceUser.vue @@ -81,9 +81,13 @@ </template> <script setup name="User" lang="ts"> -import { deptTreeSelect } from '@/api/system/user'; -import { getPageByAddMultiInstance, getListByDeleteMultiInstance, getUserListByIds } from '@/api/workflow/workflowUser'; -import { addMultiInstanceExecution, deleteMultiInstanceExecution } from '@/api/workflow/task'; +import { deptTreeSelect, listUser, optionSelect } from '@/api/system/user'; +import { + addMultiInstanceExecution, + deleteMultiInstanceExecution, + getTaskUserIdsByAddMultiInstance, + getListByDeleteMultiInstance +} from '@/api/workflow/task'; import { UserVO } from '@/api/system/user/types'; import { DeptVO } from '@/api/system/dept/types'; import { ComponentInternalInstance } from 'vue'; @@ -149,12 +153,14 @@ visible.value = true; queryParams.value.taskId = taskId; loading.value = true; - const res = await getPageByAddMultiInstance(queryParams.value); + const res1 = await getTaskUserIdsByAddMultiInstance(taskId); + queryParams.value.excludeUserIds = res1.data; + const res = await listUser(queryParams.value); loading.value = false; userList.value = res.rows; total.value = res.total; if (userList.value && userIds.value.length > 0) { - const data = await getUserListByIds(userIds.value); + const data = await optionSelect(userIds.value); if (data.data && data.data.length > 0) { chooseUserList.value = data.data; data.data.forEach((user: UserVO) => { @@ -171,12 +177,14 @@ const getList = async () => { loading.value = true; - const res = await getPageByAddMultiInstance(queryParams.value); + const res1 = await getTaskUserIdsByAddMultiInstance(queryParams.value.taskId); + queryParams.value.excludeUserIds = res1.data; + const res = await listUser(queryParams.value); loading.value = false; userList.value = res.rows; total.value = res.total; if (userList.value && userIds.value.length > 0) { - const data = await getUserListByIds(userIds.value); + const data = await optionSelect(userIds.value); if (data.data && data.data.length > 0) { chooseUserList.value = data.data; data.data.forEach((user: UserVO) => { diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue index 9e3dde4..d634935 100644 --- a/src/layout/components/AppMain.vue +++ b/src/layout/components/AppMain.vue @@ -2,9 +2,12 @@ <section class="app-main"> <router-view v-slot="{ Component, route }"> <transition :enter-active-class="animante" mode="out-in"> - <keep-alive :include="tagsViewStore.cachedViews"> - <component :is="Component" v-if="!route.meta.link" :key="route.path" /> - </keep-alive> + <div> + <keep-alive :include="tagsViewStore.cachedViews" v-if="!route.meta.noCache"> + <component v-if="!route.meta.link" :is="Component" :key="route.path" /> + </keep-alive> + <component v-if="!route.meta.link && route.meta.noCache" :is="Component" :key="route.path" /> + </div> </transition> </router-view> <iframe-toggle /> diff --git a/src/views/system/user/profile/onlineDevice.vue b/src/views/system/user/profile/onlineDevice.vue index 479e89a..8da96f6 100644 --- a/src/views/system/user/profile/onlineDevice.vue +++ b/src/views/system/user/profile/onlineDevice.vue @@ -1,6 +1,6 @@ <template> <div> - <el-table :data="devices" style="width: 100%; height: 100%; font-size: 10px"> + <el-table :data="devices" style="width: 100%; height: 100%; font-size: 14px"> <el-table-column label="璁惧绫诲瀷" align="center"> <template #default="scope"> <dict-tag :options="sys_device_type" :value="scope.row.deviceType" /> diff --git a/src/views/system/user/profile/thirdParty.vue b/src/views/system/user/profile/thirdParty.vue index c052b9b..40daa86 100644 --- a/src/views/system/user/profile/thirdParty.vue +++ b/src/views/system/user/profile/thirdParty.vue @@ -1,7 +1,7 @@ <template> <div> - <el-table :data="auths" style="width: 100%; height: 100%; font-size: 10px"> - <el-table-column label="搴忓彿" width="50" type="index"></el-table-column> + <el-table :data="auths" style="width: 100%; height: 100%; font-size: 14px"> + <el-table-column label="搴忓彿" width="50" type="index" /> <el-table-column label="缁戝畾璐﹀彿骞冲彴" width="140" align="center" prop="source" show-overflow-tooltip /> <el-table-column label="澶村儚" width="120" align="center" prop="avatar"> <template #default="scope"> diff --git a/src/views/workflow/leave/leaveEdit.vue b/src/views/workflow/leave/leaveEdit.vue index a57614a..e978ad8 100644 --- a/src/views/workflow/leave/leaveEdit.vue +++ b/src/views/workflow/leave/leaveEdit.vue @@ -228,8 +228,8 @@ taskVariables.value = { entity: data, leaveDays: data.leaveDays, - userList: [1, 2], - userList2: [1, 2] + userList: [1, 3], + userList2: [1, 3] }; submitFormData.value.variables = taskVariables.value; const resp = await startWorkFlow(submitFormData.value); -- Gitblit v1.9.3