From 1eb06fe948b92d9a3248f2f36da9cea819528b64 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 20 八月 2025 14:24:12 +0800
Subject: [PATCH] 增加临时发起页面

---
 src/views/flow/todolist.vue |  157 ++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 120 insertions(+), 37 deletions(-)

diff --git a/src/views/flow/todolist.vue b/src/views/flow/todolist.vue
index cdc95b3..e274b21 100644
--- a/src/views/flow/todolist.vue
+++ b/src/views/flow/todolist.vue
@@ -5,11 +5,12 @@
             @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"
             @selection-change="selectionTransferTask">
             <template #menu-left>
-                <el-button type="primary" plain @click="reassign(0)">閲嶆柊鎸囨淳</el-button>
-                <el-button type="primary" v-if="permission.manual_dispatch" plain @click="reassign(1)">鎵嬪姩娲惧伐
-                </el-button>
+                
                 <el-button type="primary" v-if="permission.auto_dispatch" plain @click="reassign(2)">鑷姩娲惧伐
                 </el-button>
+                <el-button type="primary" v-if="permission.manual_dispatch" plain @click="reassign(1)">鎵嬪姩娲惧伐
+                </el-button>
+                <el-button type="primary" plain @click="reassign(0)">閲嶆柊鎸囨淳</el-button>
                 <el-button type="primary" v-if="permission.batch_approve" plain @click="reassign(3)">鎵归噺瀹℃壒
                 </el-button>
             </template>
@@ -98,6 +99,7 @@
                             label: 'name',
                             value: 'id',
                         },
+                        display: true,
                         filterable: true,
                         span: 24,
                         disabled: false,
@@ -185,7 +187,7 @@
 					{
                         label: '鏍囬',
                         prop: '',
-                        width: 100,
+                        width: 200,
 						render: ({ row }) => {
                             return h('p',
                                 {
@@ -197,15 +199,29 @@
                     },
                     {
                         label: '娴佺▼鍚嶇О',
-                        prop: 'processDefinitionName',
-                        width: 100,
-                    },/*
+                        prop: '',
+                        width: 110,
+						render: ({ row }) => {
+                            return h('p',
+                                {
+                                    attrs: {},
+                                    class: {},
+                                    style: {},
+                                }, row?.variables?.myProcessName)
+                        }
+                    },
                     {
-                        label: '娴佺▼绫诲瀷',
+                        label: '缂栧埗',
                         width: 100,
-                        prop: 'categoryName',
-                    },*/
-
+                        render: ({ row }) => {
+                            return h('p',
+                                {
+                                    attrs: {},
+                                    class: {},
+                                    style: {},
+                                }, row?.variables?.programmerName)
+                        }
+                    },
                     {
                         label: '鏈哄簥',
                         width: 100,
@@ -216,12 +232,13 @@
                     },
                     {
                         label: '鍒涘缓浜�',
-                        width: 100,
+                        width: 70,
+                        overHidden:true,
                         prop: 'startUserName',
                     },
                     {
                         label: '鍒涘缓鏃堕棿',
-                        width: 200,
+                        width: 100,
                         prop: 'processCreateTime',
                         type: 'datetime',
                         format: 'YYYY-MM-DD HH:mm:ss',
@@ -233,7 +250,7 @@
                     },
                     {
                         label: '涓婁竴姝ョ敤鎴�',
-                        width: 200,
+                        width: 100,
                         prop: '',
                         formatter: (val, value, label) => {
                             return `${val?.variables?.approveUserNickName || ''}`;
@@ -241,7 +258,7 @@
                     },
                     {
                         label: '褰撳墠鑺傜偣',
-                        width: 200,
+                        width: 100,
                         prop: 'taskName',
                     },
                     {
@@ -251,7 +268,7 @@
                     },
                     {
                         label: '鍒拌揪鏃堕棿',
-                        width: 200,
+                        width: 120,
                         prop: 'createTime',
                     },
                     {
@@ -285,6 +302,7 @@
                     {
                         label: '鍙戦�佺粰',
                         prop: 'newAssigneeId',
+                        filterable:true,
                         type: 'select',
                         // dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`,
                         // dicFlag: true,
@@ -294,6 +312,7 @@
                         },
                         span: 24,
                         disabled: false,
+                        display: true,
                         dicData: [
 
                         ],
@@ -332,6 +351,20 @@
             // }
             
         },
+        'reassignForm.approve'(val) {
+            if(this.reassignType ===3) {
+                if(val === 'Y') {
+                    this.reassignOption.column[1].disabled = true;
+                    this.reassignOption.column[1].display = false;
+                    this.reassignForm.newAssigneeId = '';
+                } else {
+                    this.reassignOption.column[1].display = false;
+                    this.reassignOption.column[1].disabled = false;
+                    this.reassignForm.newAssigneeId = '';
+                }
+            }
+            
+        }
     },
     computed: {
         ...mapGetters(['userInfo', 'permission']),
@@ -386,31 +419,56 @@
             }
         },
         setAssignee (row, approve) {
-            if (approve === 'Y') {
-                if (["check", 'cureCheckTask '].includes(row.taskDefinitionKey)) {// 鏍″
+            if (approve === 'Y') {//瀹℃壒閫氳繃鐨勬儏鍐�
+
+                this.optionApprove.column[1].disabled = false;
+                if (["check", 'cureCheckTask','repalceCheckTask'].includes(row.taskDefinitionKey)) {// 鏍″鑺傜偣
                     this.formApprove.assignee = row.variables.senior;
-                } else if (["programmingTask",'cureProgramTask'].includes(row.taskDefinitionKey)) {// 缂栧埗锛屾牎瀵�
+                } else if (["programmingTask",'cureProgramTask','repalceProgrammingTask'].includes(row.taskDefinitionKey)) {// 缂栧埗鑺傜偣
                     this.formApprove.assignee = row.variables.checker;
-                } else if (row.taskDefinitionKey == "teamLeaderTask") {// 浠诲姟娲惧伐
+                } else if (row.taskDefinitionKey == "teamLeaderTask") {// 浠诲姟娲惧伐(缁勯暱)
+                    this.optionApprove.column[1].disabled = false;
                     this.formApprove.assignee = row.variables.programmer
-                } else if (row.taskDefinitionKey == "confirmIsUseableTask") {
+                } else if (row.taskDefinitionKey == "confirmIsUseableTask") {//鍒ゆ柇绋嬪簭鏄惁鍙敤鑺傜偣锛岄兘鏄彂閫佺粰鏍″
                     this.formApprove.assignee = row.variables.checker
-                } else if (["approveTask", 'seniorApproveTask','replaceApprove'].includes(row.taskDefinitionKey)) {// 楂樺笀瀹℃牳
-                    this.optionApprove.column[1].disabled = true;
-                    this.formApprove.assignee = ''; // 濡傛灉鏄�氳繃锛屽垯榛樿鎸囨淳缁欒嚜宸�
+                } else if (["approveTask", 'seniorApproveTask','replaceApprove','unlockApproveTask'].includes(row.taskDefinitionKey)) {// 楂樺笀瀹℃牳
+                    this.optionApprove.column[1].disabled = true;//鏈�鍚庝竴涓妭鐐�"鍙戦�佺粰" 绂佺敤
+                    this.formApprove.assignee = ''; // 濡傛灉鏄�氳繃娴佺▼鐩存帴缁撴潫
+                }else if('unlockProgramConfirm'==row.taskDefinitionKey){
+                    //瑙i攣娴佺▼锛岀紪绋嬪鏍�,榛樿缁欓珮甯�
+                    this.formApprove.assignee = row.variables.senior;
                 }
             } else if(approve === 'N'){
-                this.formApprove.assignee = ''
-                if (["approveTask", 'seniorApproveTask','replaceApprove'].includes(row.taskDefinitionKey)) {// 楂樺笀瀹℃牳
-                    this.optionApprove.column[1].disabled = true;
-                    getPrevius({processInstanceId: row.processInstanceId}).then(res => {
-                        console.log(res)
-                        if(res.data.code === 200) {
-                            
-                            this.formApprove.assignee = res.data.data // 濡傛灉鏄�氳繃锛屽垯榛樿鎸囨淳缁欒嚜宸�
-                        }
-                    })
-                    
+                //涓嶉�氳繃鐨勬儏鍐�
+                //鏍规嵁鍦ㄧ嚎鏂囨。34琛岋紝'鍙戦�佺粰'鏄鐢紝浣嗘湁榛樿閫夐」
+                this.optionApprove.column[1].disabled = true;
+
+                if (["approveTask", 'seniorApproveTask','replaceApprove','unlockApproveTask'].includes(row.taskDefinitionKey)) {
+                    //瀹℃壒鑺傜偣锛屼笉閫氳繃缁欑紪鍒讹細缂栧埗鏄矗浠讳汉锛屼笉缁欐牎瀵逛簡
+                    this.formApprove.assignee = row.variables.programmer;
+                } else if(["check", 'cureCheckTask','repalceCheckTask'].includes(row.taskDefinitionKey)){
+                    //鏍″鑺傜偣,涓婁竴姝ユ槸缂栫▼
+                    this.formApprove.assignee = row.variables.programmer;
+                }else if (["programmingTask"].includes(row.taskDefinitionKey)) {
+                    // 璇曞垏缂栧埗鑺傜偣,涓婁竴姝ユ槸缁勯暱
+                    this.formApprove.assignee = row.variables.teamLeader;
+                }else if(["cureProgramTask"].includes(row.taskDefinitionKey)) {
+                    //鍥哄寲缂栧埗鑺傜偣锛屼笉閫氳繃缁欐暟鎺х鐞嗗憳
+                    //TODO 鎸夋壘瑙掕壊瀹氫綅缁欏叾涓竴涓暟鎺х鐞嗗憳
+                    this.formApprove.assignee = '';
+                }else if(["confirmIsUseableTask"].includes(row.taskDefinitionKey)) {
+                    //鍒ゆ柇鏄惁鍙敤鑺傜偣锛屼笉鍙敤锛岀粰缂栧埗
+                    this.formApprove.assignee = row.variables.programmer;
+                }if(['teamLeaderTask','repalceProgrammingTask','unlockProgramConfirm'].includes(row.taskDefinitionKey)){
+                    //鍒濆鑺傜偣涓嶉�氳繃灏辨槸缁撴潫娴佺▼锛屽鐞嗕汉涓虹┖
+                    this.formApprove.assignee = '';
+                }
+                
+            }else if(approve === 'R'){
+                //椹冲洖锛岀洰鍓嶅彧鏈夋鏌ョ▼搴忔槸鍚﹀彲鐢ㄨ妭鐐�
+                if(["confirmIsUseableTask"].includes(row.taskDefinitionKey)) {
+                    //鍒ゆ柇绋嬪簭鏄惁鍙敤鑺傜偣锛岄┏鍥烇紝缁欑粍闀�
+                    this.formApprove.assignee = row.variables.teamLeader;
                 }
             }
             
@@ -448,14 +506,26 @@
                     }).catch(err => {
                         this.$message.success('鎿嶄綔澶辫触');
                     })
+                }).catch(() => {
+                    // this.$message.info('宸插彇娑堟搷浣�');
                 });
             } else {
-
                 this.reassignBox = true;
+
                 if(val === 3) {//鎵归噺瀹℃壒鏃� 鏄剧ず閫氳繃椹冲洖
                     this.reassignOption.column[0].display = true;
+                    this.reassignOption.column[0].dicData[1].label = '涓嶉�氳繃';
+                    this.reassignForm.approve = 'Y';
+                    this.reassignForm.newAssigneeId = '';
+                    this.reassignOption.column[1].disabled = true;
+                    this.reassignOption.column[1].display = true;
                 } else {
                     this.reassignOption.column[0].display = false;
+                    this.reassignForm.approve = '';
+
+                }
+                if(val ===1) {
+                    this.reassignForm.newAssigneeId = this.transferTaskSelection[0].variables.programmer;
                 }
             }
             
@@ -469,7 +539,8 @@
                     confirmButtonText: this.$t('submitText'),
                     cancelButtonText: this.$t('cancelText'),
                     type: 'warning',
-                }).then(() => {
+                }).then((res) => {
+                    console.log(res,'>>>>>>')
                     reassgin({
                         ...form,
                         taskId: this.transferTaskSelection[0].taskId,
@@ -489,6 +560,10 @@
                         this.$message.error('鎿嶄綔澶辫触');
                         done()
                     })
+                }).catch(() => {
+                    console.log('>>>>>>')
+                    // this.$message.info('宸插彇娑堟搷浣�');
+                    done();
                 });
                 
             } else if (this.reassignType === 1) {
@@ -517,6 +592,10 @@
                         console.error(err);
                         done()
                     })
+                }).catch(() => {
+                    console.log('>>>>>>')
+                    // this.$message.info('宸插彇娑堟搷浣�');
+                    done();
                 });
             } else if (this.reassignType === 3) {
                 this.$confirm('纭瑕佽繘琛屾壒閲忓鎵瑰悧锛�', '', {
@@ -545,6 +624,10 @@
                         console.error(err);
                         done()
                     })
+                }).catch(() => {
+                    console.log('>>>>>>')
+                    // this.$message.info('宸插彇娑堟搷浣�');
+                    done();
                 });
             }
         },

--
Gitblit v1.9.3