Explorar el Código

fix(transfer): 修改执行人员字段为多选并更新相关逻辑

xieyong hace 1 semana
padre
commit
1c6e438c9c
Se han modificado 1 ficheros con 34 adiciones y 16 borrados
  1. 34 16
      src/views/inspectionWork/components/transfer.vue

+ 34 - 16
src/views/inspectionWork/components/transfer.vue

@@ -5,11 +5,12 @@
         <deptSelect v-model="form.groupId" @changeGroup="searchDeptNodeClick" />
       </el-form-item>
 
-      <el-form-item label="执行人员:" prop="qualityId">
+      <el-form-item label="执行人员:" prop="qualityIdList">
         <el-select
-          v-model="form.qualityId"
+          v-model="form.qualityIdList"
           @change="changeExecutor"
           filterable
+          multiple
           style="width: 100%"
         >
           <el-option
@@ -55,15 +56,21 @@
           id: '',
           groupId: '',
           groupName: '',
-          qualityId: '',
-          qualityName: ''
+          qualityIdList: [],
+          qualityName: []
         },
         rules: {
           groupId: [
             { required: true, message: '请选择执行部门', trigger: 'change' }
           ],
-          qualityId: [
-            { required: true, message: '请选择执行人员:', trigger: 'change' }
+          qualityIdList: [
+            {
+              required: true,
+              type: 'array',
+              min: 1,
+              message: '请选择执行人员:',
+              trigger: 'change'
+            }
           ]
         },
         executorList: []
@@ -79,8 +86,8 @@
           this.form.groupName = row.name;
           this.getUserList(params);
         } else {
-          this.form.qualityId = null;
-          this.form.qualityName = null;
+          this.form.qualityIdList = [];
+          this.form.qualityName = [];
           this.executorList = [];
         }
       },
@@ -94,24 +101,35 @@
           }
           const res = await getUserPage(data);
           this.executorList = res.list;
-          this.form.qualityId = null;
-          this.form.qualityName = null;
+          this.form.qualityIdList = [];
+          this.form.qualityName = [];
         } catch (error) {}
       },
       changeExecutor(val) {
         console.log(val);
 
-        if (val) {
-          this.form.qualityId = val;
-          this.form.qualityName = this.executorList.find(
-            (item) => item.id === val
-          ).name;
+        if (Array.isArray(val) && val.length) {
+          this.form.qualityIdList = val;
+          this.form.qualityName = val
+            .map((id) => {
+              const match = this.executorList.find((item) => item.id === id);
+              return match ? match.name : '';
+            })
+            .filter(Boolean);
+        } else {
+          this.form.qualityIdList = [];
+          this.form.qualityName = [];
         }
       },
       consfirm() {
         this.$refs.form.validate(async (valid) => {
           if (valid) {
-            await transferQualityWork(this.form);
+            const payload = {
+              ...this.form,
+              qualityIdList: this.form.qualityIdList.join(','),
+              qualityName: this.form.qualityName.join(',')
+            };
+            await transferQualityWork(payload);
             this.$emit('success', this.form.id);
           }
         });