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