소스 검색

新增执行班组和人员选择功能并优化质检类型为2时的表单逻辑

yusheng 6 달 전
부모
커밋
ec59ae9b51
3개의 변경된 파일91개의 추가작업 그리고 9개의 파일을 삭제
  1. 75 2
      src/views/inspectionWork/components/baseInfo.vue
  2. 16 6
      src/views/inspectionWork/details.vue
  3. 0 1
      src/views/inspectionWork/edit.vue

+ 75 - 2
src/views/inspectionWork/components/baseInfo.vue

@@ -112,7 +112,7 @@
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="质检部门" prop="groupId">
           <el-form-item label="质检部门" prop="groupId">
             <deptSelect
             <deptSelect
-              :disabled="btnType == 'detail'"
+              :disabled="btnType == 'detail' || form.qualityType == 2"
               v-model="form.groupId"
               v-model="form.groupId"
               @changeGroup="searchDeptNodeClick"
               @changeGroup="searchDeptNodeClick"
             />
             />
@@ -121,7 +121,7 @@
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="质检人" prop="qualityIdList">
           <el-form-item label="质检人" prop="qualityIdList">
             <el-select
             <el-select
-              :disabled="btnType == 'detail'"
+              :disabled="btnType == 'detail' || form.qualityType == 2"
               v-model="form.qualityIdList"
               v-model="form.qualityIdList"
               @change="changeExecutor"
               @change="changeExecutor"
               size="small"
               size="small"
@@ -160,6 +160,49 @@
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
       </el-row>
       </el-row>
+      <el-row>
+        <el-col :span="6" v-if="form.qualityType == 2">
+          <el-form-item label="执行班组" prop="executeJobId">
+            <el-select
+              :disabled="btnType == 'detail'"
+              v-model="form.executeJobId"
+              size="small"
+              style="width: 100%"
+            >
+              <el-option
+                v-for="item in form.jobList"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+                @click.native="changeExecuteJob(item)"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="执行人" prop="executeUserId">
+            <el-select
+              :disabled="btnType == 'detail'"
+              v-model="form.executeUserIdList"
+              size="small"
+              style="width: 100%"
+              filterable
+              multiple
+              @change="executeUserIdChange"
+            >
+              <el-option
+                v-for="item in form.qualityType == 2
+                  ? form.jobList.find((job) => job.id == form.executeJobId)
+                      ?.userVOList
+                  : executorList"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
       <el-row>
       <el-row>
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item
           <el-form-item
@@ -470,6 +513,10 @@
           groupId: [
           groupId: [
             { required: true, message: '请选择质检部门', trigger: 'change' }
             { required: true, message: '请选择质检部门', trigger: 'change' }
           ],
           ],
+          executeJobId: [
+            { required: true, message: '请选择执行班组', trigger: 'change' }
+          ],
+
           // qualityId: [
           // qualityId: [
           //   { required: true, message: '请选择质检人', trigger: 'change' }
           //   { required: true, message: '请选择质检人', trigger: 'change' }
           // ],
           // ],
@@ -486,6 +533,7 @@
         produceTaskList: [],
         produceTaskList: [],
         inspectionStandardsList: [],
         inspectionStandardsList: [],
         qualityModeList: [],
         qualityModeList: [],
+        executeUserList: [],
         isExpanded: false,
         isExpanded: false,
         showArrange: '1'
         showArrange: '1'
       };
       };
@@ -498,6 +546,10 @@
       this.getCode();
       this.getCode();
     },
     },
     methods: {
     methods: {
+      changeExecuteJob(item) {
+        this.$set(this.form, 'executeJobName', item.name);
+        this.$set(this.form, 'executeUserId', '');
+      },
       getCode() {
       getCode() {
         parameterGetByCode({
         parameterGetByCode({
           code: 'qms_show_arrange'
           code: 'qms_show_arrange'
@@ -665,6 +717,8 @@
 
 
       //选择部门(搜索)
       //选择部门(搜索)
       searchDeptNodeClick(info, row) {
       searchDeptNodeClick(info, row) {
+        this.form.executeUserId = '';
+
         if (info) {
         if (info) {
           const params = { groupId: info };
           const params = { groupId: info };
           this.getUserList(params);
           this.getUserList(params);
@@ -702,6 +756,25 @@
 
 
         this.$forceUpdate();
         this.$forceUpdate();
       },
       },
+      // 人员选择
+      executeUserIdChange(val) {
+        if (val.length) {
+          let arr =
+            this.form.qualityType == 2
+              ? this.form.jobList.find(
+                  (job) => job.id == this.form.executeJobId
+                )?.userVOList
+              : this.executorList;
+          this.form.executeUserName = val
+            .map((item) => arr.find((item2) => item2.id == item)?.name)
+            .join(',');
+        } else {
+          this.form.executeUserName = '';
+        }
+
+        this.$forceUpdate();
+      },
+
       inputTotal(val) {
       inputTotal(val) {
         if (val) {
         if (val) {
           this.form.total = val;
           this.form.total = val;

+ 16 - 6
src/views/inspectionWork/details.vue

@@ -58,6 +58,16 @@
               </el-col>
               </el-col>
             </el-row>
             </el-row>
             <el-row>
             <el-row>
+              <el-col :span="6" v-if="form.qualityType == 2">
+                <el-form-item label="执行班组" prop="executeJobName">
+                  <el-input :value="executeJobName" disabled />
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="执行人" prop="executeUserName">
+                  <el-input :value="executeUserName" disabled />
+                </el-form-item>
+              </el-col>
               <el-col :span="6">
               <el-col :span="6">
                 <el-form-item label="质检人">
                 <el-form-item label="质检人">
                   <el-input :value="qualityName" disabled />
                   <el-input :value="qualityName" disabled />
@@ -78,8 +88,8 @@
                   <el-input :value="form.qualificationRate" disabled />
                   <el-input :value="form.qualificationRate" disabled />
                 </el-form-item>
                 </el-form-item>
               </el-col>
               </el-col>
-            </el-row>
-            <el-row>
+            <!-- </el-row> -->
+            <!-- <el-row> -->
               <el-col :span="6">
               <el-col :span="6">
                 <el-form-item label="不合格率">
                 <el-form-item label="不合格率">
                   <el-input :value="form.noQualificationRate" disabled />
                   <el-input :value="form.noQualificationRate" disabled />
@@ -100,8 +110,8 @@
                   <el-input :value="form.totalWeight" disabled />
                   <el-input :value="form.totalWeight" disabled />
                 </el-form-item>
                 </el-form-item>
               </el-col>
               </el-col>
-            </el-row>
-            <el-row>
+            <!-- </el-row> -->
+            <!-- <el-row> -->
               <el-col :span="6">
               <el-col :span="6">
                 <el-form-item label="总数量">
                 <el-form-item label="总数量">
                   <el-input :value="form.total" disabled />
                   <el-input :value="form.total" disabled />
@@ -123,8 +133,8 @@
                   <el-input :value="form.noQualifiedNumber" disabled />
                   <el-input :value="form.noQualifiedNumber" disabled />
                 </el-form-item>
                 </el-form-item>
               </el-col>
               </el-col>
-            </el-row>
-            <el-row>
+            <!-- </el-row> -->
+            <!-- <el-row> -->
               <el-col :span="6">
               <el-col :span="6">
                 <el-form-item label="规格">
                 <el-form-item label="规格">
                   <el-input :value="form.specification" disabled />
                   <el-input :value="form.specification" disabled />

+ 0 - 1
src/views/inspectionWork/edit.vue

@@ -1022,7 +1022,6 @@
           if (res.data.jobList?.length == 1) {
           if (res.data.jobList?.length == 1) {
             res.data.executeJobId = res.data.jobList[0].id;
             res.data.executeJobId = res.data.jobList[0].id;
             res.data.executeJobName = res.data.jobList[0].name;
             res.data.executeJobName = res.data.jobList[0].name;
-            this.execute = res.data.jobList[0].userVOList;
           }
           }
           this.form = res.data;
           this.form = res.data;