From d186c800f041e1f9c7e9ca8356544ce41f9673e2 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: 星期五, 22 三月 2024 23:42:30 +0800 Subject: [PATCH] add 添加流程实例,全部待办表单查看 --- src/views/workflow/task/allTaskWaiting.vue | 47 ++++++++------- src/views/workflow/task/taskFinish.vue | 10 ++ src/views/workflow/processInstance/index.vue | 70 ++++++++++++----------- src/views/workflow/task/taskCopyList.vue | 10 ++ 4 files changed, 78 insertions(+), 59 deletions(-) diff --git a/src/views/workflow/processInstance/index.vue b/src/views/workflow/processInstance/index.vue index 19e57f7..8a4ba4a 100644 --- a/src/views/workflow/processInstance/index.vue +++ b/src/views/workflow/processInstance/index.vue @@ -77,27 +77,9 @@ </el-table-column> <el-table-column align="center" prop="startTime" label="鍚姩鏃堕棿" width="160"></el-table-column> <el-table-column v-if="tab === 'finish'" align="center" prop="endTime" label="缁撴潫鏃堕棿" width="160"></el-table-column> - <el-table-column label="鎿嶄綔" align="center" width="160" class-name="small-padding fixed-width"> + <el-table-column label="鎿嶄綔" align="center" :width="tab === 'finish' ? '130' : '160'"> <template #default="scope"> - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button link type="primary" size="small" icon="Document" @click="handleApprovalRecord(scope.row)">瀹℃壒璁板綍</el-button> - </el-col> - <el-col :span="1.5"> - <el-button link type="primary" size="small" icon="Delete" @click="handleDelete(scope.row)">鍒犻櫎</el-button> - </el-col> - </el-row> <el-row v-if="tab === 'running'" :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - link - type="primary" - size="small" - icon="Sort" - @click="getProcessDefinitionHitoryList(scope.row.processDefinitionId, scope.row.processDefinitionKey)" - >鍒囨崲鐗堟湰</el-button - > - </el-col> <el-col :span="1.5"> <el-popover :ref="`popoverRef${scope.$index}`" trigger="click" placement="left" :width="300"> <el-input v-model="deleteReason" resize="none" :rows="3" type="textarea" placeholder="璇疯緭鍏ヤ綔搴熷師鍥�" /> @@ -109,6 +91,24 @@ <el-button link type="primary" size="small" icon="CircleClose">浣滃簾</el-button> </template> </el-popover> + </el-col> + <el-col :span="1.5"> + <el-button + link + type="primary" + size="small" + icon="Sort" + @click="getProcessDefinitionHitoryList(scope.row.processDefinitionId, scope.row.processDefinitionKey)" + >鍒囨崲鐗堟湰</el-button + > + </el-col> + </el-row> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button link type="primary" size="small" icon="View" @click="handleView(scope.row)">鏌ョ湅</el-button> + </el-col> + <el-col :span="1.5"> + <el-button link type="primary" size="small" icon="Delete" @click="handleDelete(scope.row)">鍒犻櫎</el-button> </el-col> </el-row> </template> @@ -146,8 +146,6 @@ </el-table-column> </el-table> </el-dialog> - <!-- 瀹℃壒璁板綍 --> - <approvalRecord ref="approvalRecordRef" /> </div> </template> @@ -160,12 +158,10 @@ deleteRunInstance } from '@/api/workflow/processInstance'; import { getListByKey, migrationDefinition } from '@/api/workflow/processDefinition'; -import ApprovalRecord from '@/components/Process/approvalRecord.vue'; import { listCategory } from '@/api/workflow/category'; import { CategoryVO } from '@/api/workflow/category/types'; import { ProcessInstanceQuery, ProcessInstanceVO } from '@/api/workflow/processInstance/types'; //瀹℃壒璁板綍缁勪欢 -const approvalRecordRef = ref<InstanceType<typeof ApprovalRecord>>(); const { proxy } = getCurrentInstance() as ComponentInternalInstance; const queryFormRef = ref<ElFormInstance>(); const categoryTreeRef = ref<ElTreeInstance>(); @@ -213,11 +209,6 @@ categoryCode: undefined }); -onMounted(() => { - getProcessInstanceRunningList(); - getTreeselect(); -}); - /** 鑺傜偣鍗曞嚮浜嬩欢 */ const handleNodeClick = (data: CategoryVO) => { queryParams.value.categoryCode = data.categoryCode; @@ -250,12 +241,6 @@ categoryOptions.value.push(data); }; -//瀹℃壒璁板綍 -const handleApprovalRecord = (row: any) => { - if (approvalRecordRef.value) { - approvalRecordRef.value.init(row.id); - } -}; /** 鎼滅储鎸夐挳鎿嶄綔 */ const handleQuery = () => { if ('running' === tab.value) { @@ -312,6 +297,7 @@ proxy?.$modal.msgSuccess('鍒犻櫎鎴愬姛'); }; const changeTab = async (data: string) => { + processInstanceList.value = [] queryParams.value.pageNum = 1; if ('running' === data) { getProcessInstanceRunningList(); @@ -359,4 +345,20 @@ loading.value = false; }); }; +/** 鏌ョ湅鎸夐挳鎿嶄綔 */ +const handleView = (row) => { + if(row.wfFormDefinitionVo){ + proxy.$tab.closePage(proxy.$route); + proxy.$router.push({ + path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view` + }) + }else{ + proxy?.$modal.msgError('璇峰埌娴佺▼瀹氫箟鑿滃崟閰嶇疆璺敱锛�'); + } +}; + +onMounted(() => { + getProcessInstanceRunningList(); + getTreeselect(); +}); </script> diff --git a/src/views/workflow/task/allTaskWaiting.vue b/src/views/workflow/task/allTaskWaiting.vue index 8d5836f..009c797 100644 --- a/src/views/workflow/task/allTaskWaiting.vue +++ b/src/views/workflow/task/allTaskWaiting.vue @@ -72,20 +72,22 @@ </el-table-column> <el-table-column align="center" v-if="tab === 'waiting'" prop="createTime" label="鍒涘缓鏃堕棿" width="160"></el-table-column> <el-table-column align="center" v-if="tab === 'finish'" prop="startTime" label="鍒涘缓鏃堕棿" width="160"></el-table-column> - <el-table-column label="鎿嶄綔" align="center" width="160" class-name="small-padding fixed-width"> + <el-table-column label="鎿嶄綔" align="center" :width="tab === 'finish' ? '80' : '151'"> <template #default="scope"> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> - <el-button link type="primary" size="small" icon="Document" @click="handleApprovalRecord(scope.row)">瀹℃壒璁板綍</el-button> - </el-col> - <el-col v-if="scope.row.multiInstance" :span="1.5"> - <el-button link type="primary" size="small" icon="CirclePlus" @click="addMultiInstanceUser(scope.row)">鍔犵</el-button> - </el-col> - <el-col v-if="scope.row.multiInstance" :span="1.5"> - <el-button link type="primary" size="small" icon="Remove" @click="deleteMultiInstanceUser(scope.row)">鍑忕</el-button> + <el-button link type="primary" size="small" icon="View" @click="handleView(scope.row)">鏌ョ湅</el-button> </el-col> <el-col v-if="tab === 'waiting'" :span="1.5"> <el-button link type="primary" size="small" icon="Document" @click="handleInstanceVariable(scope.row)">娴佺▼鍙橀噺</el-button> + </el-col> + </el-row> + <el-row :gutter="10" class="mb8" v-if="scope.row.multiInstance" > + <el-col :span="1.5"> + <el-button link type="primary" size="small" icon="Remove" @click="deleteMultiInstanceUser(scope.row)">鍑忕</el-button> + </el-col> + <el-col :span="1.5"> + <el-button link type="primary" size="small" icon="CirclePlus" @click="addMultiInstanceUser(scope.row)">鍔犵</el-button> </el-col> </el-row> </template> @@ -99,8 +101,6 @@ @pagination="handleQuery" /> </el-card> - <!-- 瀹℃壒璁板綍 --> - <approvalRecord ref="approvalRecordRef" /> <!-- 鍔犵缁勪欢 --> <multiInstanceUser ref="multiInstanceUserRef" :title="title" @submit-callback="handleQuery" /> <!-- 閫変汉缁勪欢 --> @@ -126,12 +126,10 @@ <script lang="ts" setup> import { getPageByAllTaskWait, getPageByAllTaskFinish, updateAssignee, getInstanceVariable } from '@/api/workflow/task'; -import ApprovalRecord from '@/components/Process/approvalRecord.vue'; import MultiInstanceUser from '@/components/Process/multiInstanceUser.vue'; import UserSelect from '@/components/UserSelect'; import { TaskQuery, TaskVO, VariableVo } from '@/api/workflow/task/types'; //瀹℃壒璁板綍缁勪欢 -const approvalRecordRef = ref<InstanceType<typeof ApprovalRecord>>(); //鍔犵缁勪欢 const multiInstanceUserRef = ref<InstanceType<typeof MultiInstanceUser>>(); //閫変汉缁勪欢 @@ -173,15 +171,7 @@ processDefinitionKey: undefined }); const tab = ref('waiting'); -onMounted(() => { - getWaitingList(); -}); -//瀹℃壒璁板綍 -const handleApprovalRecord = (row: TaskVO) => { - if (approvalRecordRef.value) { - approvalRecordRef.value.init(row.processInstanceId); - } -}; + //鍔犵 const addMultiInstanceUser = (row: TaskVO) => { if (multiInstanceUserRef.value) { @@ -218,6 +208,7 @@ multiple.value = !selection.length; }; const changeTab = async (data: string) => { + taskList.value = [] queryParams.value.pageNum = 1; if ('waiting' === data) { getWaitingList(); @@ -267,4 +258,18 @@ variableList.value = data.data variableLoading.value = false }; +/** 鏌ョ湅鎸夐挳鎿嶄綔 */ +const handleView = (row) => { + if(row.wfFormDefinitionVo){ + proxy.$tab.closePage(proxy.$route); + proxy.$router.push({ + path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view` + }) + }else{ + proxy?.$modal.msgError('璇峰埌娴佺▼瀹氫箟鑿滃崟閰嶇疆璺敱锛�'); + } +}; +onMounted(() => { + getWaitingList(); +}); </script> diff --git a/src/views/workflow/task/taskCopyList.vue b/src/views/workflow/task/taskCopyList.vue index db7e22f..0902294 100644 --- a/src/views/workflow/task/taskCopyList.vue +++ b/src/views/workflow/task/taskCopyList.vue @@ -127,8 +127,14 @@ /** 鏌ョ湅鎸夐挳鎿嶄綔 */ const handleView = (row) => { - proxy.$tab.closePage(proxy.$route); - proxy.$router.push(`/demo/leaveEdit/index/${row.id}/view`); + if(row.wfFormDefinitionVo){ + proxy.$tab.closePage(proxy.$route); + proxy.$router.push({ + path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view` + }) + }else{ + proxy?.$modal.msgError('璇峰埌娴佺▼瀹氫箟鑿滃崟閰嶇疆璺敱锛�'); + } }; diff --git a/src/views/workflow/task/taskFinish.vue b/src/views/workflow/task/taskFinish.vue index 67fd3c0..8be09d1 100644 --- a/src/views/workflow/task/taskFinish.vue +++ b/src/views/workflow/task/taskFinish.vue @@ -114,8 +114,14 @@ }; /** 鏌ョ湅鎸夐挳鎿嶄綔 */ const handleView = (row) => { - proxy.$tab.closePage(proxy.$route); - proxy.$router.push(`/demo/leaveEdit/index/${row.businessKey}/view`); + if(row.wfFormDefinitionVo){ + proxy.$tab.closePage(proxy.$route); + proxy.$router.push({ + path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view` + }) + }else{ + proxy?.$modal.msgError('璇峰埌娴佺▼瀹氫箟鑿滃崟閰嶇疆璺敱锛�'); + } }; onMounted(() => { -- Gitblit v1.9.3