Browse Source

1.修复撰写产品时,撰写表单的选择评估对象下拉列表key重复的问题
2.撰写报告校验新增至少选择两个签字师的校验
3.实勘人改为可修改

GouGengquan 1 year ago
parent
commit
3acf8bc44f
2 changed files with 50 additions and 15 deletions
  1. 17 3
      src/views/assets/addAssetsOrder.vue
  2. 33 12
      src/views/assets/orderDetail.vue

+ 17 - 3
src/views/assets/addAssetsOrder.vue

@@ -25,7 +25,16 @@
                                                 disabled style=" width: 225px" />
                                         </el-form-item>
                                     </el-col>
-                                    <el-col :xs="24" :sm="12" :lg="4" :span="6">
+                                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
+                                        <el-form-item label="分单类型:" prop="clientManager" :rules="assetsFormRules.allotType"
+                                            label-width="120px" class="postInfo-container-item">
+                                            <el-select v-model="assetsForm.allotType">
+                                                <el-option label="指派" value="指派"></el-option>
+                                                <el-option label="轮单" value="轮单"></el-option>
+                                            </el-select>
+                                        </el-form-item>
+                                    </el-col>
+                                    <el-col v-if="assetsForm.allotType === '指派'" :xs="24" :sm="12" :lg="4" :span="6">
                                         <el-form-item label="接单部门:" prop="departmentId"
                                             :rules="assetsFormRules.departmentId" label-width="120px"
                                             class="postInfo-container-item">
@@ -554,6 +563,9 @@ export default {
                 clientManager: [
                     { required: true, message: '客户经理不能为空', trigger: 'blur' }
                 ],
+                allotType: [
+                    { required: true, message: '请选择分单类型', trigger: 'change' }
+                ],
                 departmentId: [
                     { required: true, message: '请选择接单部门', trigger: 'change' }
                 ],
@@ -780,8 +792,10 @@ export default {
         this.getAllotDepartment();
         this.getCustomerCompany(0);
         this.getCustomerCompany(1);
-        if (this.pageParams.row.assetsId !== null && this.pageParams.row.assetsId !== undefined && this.pageParams.row.assetsId !== '') {
-            this.getAssetsDetailById(this.pageParams.row.assetsId);
+        if (this.pageParams.row !== null) {
+            if (this.pageParams.row.assetsId !== null && this.pageParams.row.assetsId !== undefined && this.pageParams.row.assetsId !== '') {
+                this.getAssetsDetailById(this.pageParams.row.assetsId);
+            }
         }
     },
     methods: {

+ 33 - 12
src/views/assets/orderDetail.vue

@@ -378,8 +378,8 @@
                   <el-button type="success" @click="takeAssetsReportProductionNo('REPORT')" round>报告取号</el-button>
                 </el-tooltip>
               </el-col>
-              <el-col :span="2" v-if="(currentNode.nodeCode === 'GENERATE_STATEMENT' && writeProductionStatementNos.length > 0) 
-              || (currentNode.nodeCode === 'WRITE_REPORT' && writeProductionReportNos.length > 0)
+              <el-col :span="2" v-if="(currentNode.nodeCode === 'GENERATE_STATEMENT' && writeProductionStatementNos.length > 0)
+                || (currentNode.nodeCode === 'WRITE_REPORT' && writeProductionReportNos.length > 0)
                 && couldEdit">
                 <el-tooltip class="item" effect="dark" content="请仔细确认产品内容" placement="right">
                   <el-button type="success" @click="openWriteProductionDialog(false, 'add')" round>撰写产品信息</el-button>
@@ -718,7 +718,7 @@
             </el-col>
             <el-col :xs="24" :sm="12" :lg="12" :span="6">
               <el-form-item label="实勘人:" prop="siteIds" label-width="120px" class="postInfo-container-item">
-                <el-select v-model="targetForm.siteIds" placeholder="请选择" readonly disabled multiple>
+                <el-select v-model="targetForm.siteIds" placeholder="请选择" multiple>
                   <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id" :key="u.id"></el-option>
                 </el-select>
               </el-form-item>
@@ -1228,6 +1228,13 @@ export default {
     ScanEntry
   },
   data() {
+    var checkSignatoryLength = (rule, value, callback) => {
+      if (this.assetsProductionForm.signatory !== undefined && this.assetsProductionForm.signatory !== null) {
+        if (this.assetsProductionForm.signatory.length < 2) {
+          return callback(new Error('需至少选择两个签字人'));
+        }
+      }
+    };
     return {
       editStatus: false,
       // 资产业务表单禁用状态
@@ -1620,7 +1627,8 @@ export default {
           { type: 'number', message: '请填写数字' }
         ],
         signatory: [
-          { required: true, message: '请选择签字人', trigger: 'change' }
+          { required: true, message: '请选择签字人', trigger: 'change' },
+          { required: true, validator: checkSignatoryLength, trigger: 'change' }
         ],
         clientName: [
           { required: true, message: '请填写委托方名称', trigger: 'blur' }
@@ -1729,7 +1737,6 @@ export default {
     this.getAssetsDetailById(this.pageParams.row.assetsId);
     // this.getProductionByBusinessId(this.pageParams.row.assetsId);
     this.getAETargetListByAssetsId();
-    this.getProductionList();
     this.nodeBusinessInfo.reportNos.push(this.pageParams.row.statementNo);
   },
   methods: {
@@ -2081,11 +2088,25 @@ export default {
       aETargetListSelectDTO.reportNo = this.pageParams.row.reportNo;
       // }
       this.$api.assets.getAETargetListByAssetsId(aETargetListSelectDTO).then(res => {
-        if (res.code === 200) {
+        if (res.code === 200 && res.data !== null) {
           this.assetsEvaluationTarget = res.data;
-          this.writeProductionStatementNos = this.assetsEvaluationTarget.filter(obj => obj.statementCreateProductionDate == null || obj.statementCreateProductionDate == '').map(obj => obj.statementNo);
-          this.writeProductionReportNos = this.assetsEvaluationTarget.filter(obj => obj.reportCreateProductionDate == null || obj.reportCreateProductionDate == '').map(obj => obj.reportNo);
+          this.writeProductionStatementNos = this.assetsEvaluationTarget
+          // 过滤
+          .filter(obj => obj.statementCreateProductionDate == null || obj.statementCreateProductionDate == '')
+          // 获取
+          .map(obj => obj.statementNo)
+          // 去重
+          .filter((value, index, self) => self.indexOf(value) === index);
+          this.writeProductionReportNos = this.assetsEvaluationTarget
+          // 过滤
+          .filter(obj => obj.reportCreateProductionDate == null || obj.reportCreateProductionDate == '')
+          // 获取
+          .map(obj => obj.reportNo)
+          // 去重
+          .filter((value, index, self) => self.indexOf(value) === index);
           this.flowDoFourthCheck();
+          // 获取资产产品列表
+          this.getProductionList();
         }
       })
     },
@@ -2618,11 +2639,11 @@ export default {
       let aProListSelectDTO = new Object();
       aProListSelectDTO.businessId = this.pageParams.row.assetsId;
       aProListSelectDTO.statementNo = this.pageParams.row.statementNo;
-      aProListSelectDTO.reportNo = this.pageParams.row.reportNo;
-      if (this.currentNode.nodeCode == 'WRITE_REPORT' && this.assetsEvaluationTarget[0].statementNo !== null) {
+      // aProListSelectDTO.reportNo = this.pageParams.row.reportNo;
+      // if (this.currentNode.nodeCode == 'WRITE_REPORT' && this.assetsEvaluationTarget[0].statementNo !== null) {
         // aProListSelectDTO.reportNo = this.assetsEvaluationTarget[0].reportNo;
-        aProListSelectDTO.reportNos = this.assetsEvaluationTarget.map(obj => obj.reportNo);
-      }
+        aProListSelectDTO.reportNos = this.assetsEvaluationTarget.filter(obj => obj.reportNo !== null && obj.reportNo !== '').map(obj => obj.reportNo);
+      // }
       this.$api.assets.getProductionList(aProListSelectDTO).then(res => {
         if (res.code == 200) {
           this.assetsProductionData = res.data;