From 7cc473413471b45daa1c3b90a1ab34398a793b49 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期二, 31 十二月 2024 15:53:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/flowable/task/myProcess/send/index.vue |   70 +++++++++++++++++++++++++++--------
 1 files changed, 54 insertions(+), 16 deletions(-)

diff --git a/src/views/flowable/task/myProcess/send/index.vue b/src/views/flowable/task/myProcess/send/index.vue
index 70d044d..e55ed89 100644
--- a/src/views/flowable/task/myProcess/send/index.vue
+++ b/src/views/flowable/task/myProcess/send/index.vue
@@ -83,7 +83,7 @@
           </el-alert>
           <el-form-item label="鐢ㄦ埛绫诲瀷" prop="peopleType">
             <el-select v-model="delegationForm.peopleType" @change="peopleTypeChange" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷">
-              <el-option label="鎸囧畾浜哄憳" disabled value="FIX_USER"></el-option>
+              <el-option label="鎸囧畾浜哄憳" value="FIX_USER"></el-option>
               <el-option label="鍊欓�夌敤鎴�" disabled value="USER"></el-option>
               <el-option label="鍊欓�夐儴闂�" value="DEPT"></el-option>
               <el-option label="鍊欓�夎鑹�" disabled  value="ROLE"></el-option>
@@ -94,6 +94,13 @@
             <div style="display: flex;align-items: center">
               <div>{{deptNames}}</div>
               <el-button style="margin-left: 8px" type="text" @click="editDept">缂栬緫</el-button>
+            </div>
+          </el-form-item>
+          <el-form-item v-if="delegationForm.peopleType === 'FIX_USER'" label="鎸囧畾鐢ㄦ埛" prop="targetId">
+            <single-user ref="singleUser" :select-user="delegationForm.targetId" :show="singleUserShow" @close="closeUser" @submit="getSingleUserSelect"/>
+            <div style="display: flex;align-items: center">
+              <div>{{delegationUserSelect.map(item => item.nickName).join(',')}}</div>
+              <el-button style="margin-left: 8px" type="text" @click="editUser">缂栬緫</el-button>
             </div>
           </el-form-item>
         </el-form>
@@ -110,6 +117,7 @@
 import {definitionStart, flowXmlAndNode} from "@/api/flowable/definition";
 import BpmnViewer from '@/components/Process/viewer';
 import Dept from '@/components/flow/Dept'
+import SingleUser from '@/components/flow/User/SingleUser'
 import {completeSubmitFormTask} from "@/api/flowable/process";
 import { flowTaskForm } from "@/api/flowable/todo";
 import {getNextFlowNodeByStart} from "@/api/flowable/todo";
@@ -125,10 +133,13 @@
     FlowUser,
     FlowRole,
     Dept,
+    SingleUser,
   },
   props: {},
   data() {
     return {
+      singleUserShow: false, // 鎸囧畾鐢ㄦ埛鏄剧ず
+      delegationUserSelect: [], // 閫変腑鐨勭敤鎴�
       deptShow: false, // 閮ㄩ棬鏄剧ず
       deptNames: '', // 閫変腑鐨勯儴闂ㄥ悕绉�
       delegationDeptSelect: [], // 閫変腑閮ㄩ棬
@@ -194,20 +205,27 @@
   },
   methods: {
     delegation() {
-      this.$confirm(`纭畾瑕佸皢姝や换鍔′氦鐢便��${this.deptNames}銆戝鐞嗗悧?`, '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        taskDelegation(this.delegationForm).then(res => {
-          this.$message.success("宸插彂璧疯浆鍔炵敵璇�")
-          this.goBack()
-        })
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '宸插彇娑堣浆鍔炴搷浣�'
-        });
+      this.$refs['delegationForm'].validate((valid) => {
+        if (valid) {
+          this.$confirm(`纭畾瑕佸皢姝や换鍔′氦鐢便��${this.deptNames}銆戝鐞嗗悧?`, '鎻愮ず', {
+            confirmButtonText: '纭畾',
+            cancelButtonText: '鍙栨秷',
+            type: 'warning'
+          }).then(() => {
+            taskDelegation(this.delegationForm).then(res => {
+              this.$message.success("宸插彂璧疯浆鍔炵敵璇�")
+              this.goBack()
+            })
+          }).catch(() => {
+            this.$message({
+              type: 'info',
+              message: '宸插彇娑堣浆鍔炴搷浣�'
+            });
+          });
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
       });
     },
     peopleTypeChange(val) {
@@ -216,6 +234,8 @@
           this.$refs.dept.setCheckList(this.delegationDeptSelect)
         })
         this.deptShow = true
+      } else if (val === 'FIX_USER') {
+        this.singleUserShow = true
       }
     },
     editDept() {
@@ -223,6 +243,12 @@
         this.$refs.dept.setCheckList(this.delegationDeptSelect)
       })
       this.deptShow = true
+    },
+    editUser() {
+      this.$nextTick(() => {
+        this.$refs.singleUser.setChecked(this.delegationForm.targetId)
+      })
+      this.singleUserShow = true
     },
     getDeptSelect(list, names) {
       console.log(list, names)
@@ -233,10 +259,22 @@
       }
       this.deptShow = false
     },
+    getSingleUserSelect(user) {
+      if (user) {
+        this.delegationForm.targetId = user.userId
+        this.delegationUserSelect = [user]
+      } else {
+        this.delegationForm.targetId = ''
+        this.delegationUserSelect = []
+      }
+      this.singleUserShow = false
+    },
     closeDept() {
-      console.log(this.deptNames)
       this.deptShow = false
     },
+    closeUser() {
+      this.singleUserShow = false
+    },
     openDelegation(taskName) {
       this.delegationForm.taskName = taskName
       this.delegationForm.taskId = this.taskId

--
Gitblit v1.8.0