Преглед изворни кода

1.将产品更新与产品选择类型区分开,修复产品更新时报错
2.修复归档审核修改产品附件时报错
3.优化取号逻辑
4.新增对资产报告取号节点提交前的校验,必须给所有评估对象完成取号才能提交流程
5.审核意见书修复已经进行了审核定价仍旧提示需要审核定价,以及只审核定价了一个评估对象也能进行审核意见书

GouGengquan пре 1 година
родитељ
комит
5ee778c07d
2 измењених фајлова са 62 додато и 43 уклоњено
  1. 2 2
      src/api/modules/assets.js
  2. 60 41
      src/views/assets/orderDetail.vue

+ 2 - 2
src/api/modules/assets.js

@@ -76,8 +76,8 @@ export default {
         return request.post(`assetsProduction/save`, params)
     },
     // 选择产品,更新产品信息
-    assetsProductionUpdate(params) {
-        return request.put(`assetsProduction/update`, params)
+    assetsProductionUpdateChoice(params) {
+        return request.put(`assetsProduction/update/choice`, params)
     },
     // 根据业务id获取产品信息类型集合
     getProductionTypes(params) {

+ 60 - 41
src/views/assets/orderDetail.vue

@@ -25,7 +25,8 @@
       </el-button>
       <el-button @click="openAssetsAchievementRatioDialog()" v-if="currentNode.nodeCode === 'CHECK_ARCHIVING'"
         type="danger" round>
-        <span v-if="currentNode.nodeCode === 'RECHECK_ARCHIVING'">复审部</span>归档审核
+        <!-- <span v-if="currentNode.nodeCode === 'RECHECK_ARCHIVING'">复审部</span> -->
+        归档审核
       </el-button>
       <el-button v-if="nodeBusinessInfo.currentNodePermission.commit" class="y-save" type="success" round
         @click="commit('PASS')" :disabled="!nodeBusinessInfo.doWorkflow">提交</el-button>
@@ -1046,7 +1047,7 @@
             <el-row class="row-style">
               <el-button v-if="productionChoiceStatus == 0" @click="assetsProductionSave"
                 style="width:100%;">提交</el-button>
-              <el-button v-if="productionChoiceStatus == 1" @click="assetsProductionUpdate"
+              <el-button v-if="productionChoiceStatus == 1" @click="assetsProductionUpdateChoice"
                 style="width:100%;">提交</el-button>
             </el-row>
           </div>
@@ -1391,15 +1392,15 @@
               </el-col>
             </el-row>
           </span>
-
         </div>
       </div>
       <span v-if="businessPerformanceDistributionForm.distributionList !== null" slot="footer" class="dialog-footer">
         <el-button @click="assetsAchievementRatioDialogVisible = false">取 消</el-button>
-        <el-button v-if="showDistributionButton" type="primary" @click="saveBusinessPerformanceDistribution()">新
+        <!-- <el-button v-if="showDistributionButton" type="primary" @click="saveBusinessPerformanceDistribution()">新
           增</el-button>
         <el-button v-if="!showDistributionButton" type="primary" @click="updateAssetsPerformanceDistribution()">修
-          改</el-button>
+          改</el-button> -->
+        <el-button @click="updateProductionFileInfo(), assetsAchievementRatioDialogVisible = false">确 认</el-button>
       </span>
     </el-dialog>
   </div>
@@ -1794,7 +1795,7 @@ export default {
       productionWriteDialogVisible: false,
       // 评估对象审核定价表单可视状态
       checkValueDialogVisible: false,
-      isCheckValue: false,
+      // isCheckValue: false,
       // 0:新增,1:更新
       productionChoiceStatus: 0,
       // 产品表单
@@ -1870,7 +1871,8 @@ export default {
         productionType: null,
         hasNotTakeNumTargetSelect: null,
         selectAll: null,
-        printCount: null
+        printCount: null,
+        statementNo: null
       },
       assetsProductionData: null,
       commitProductionNo: null,
@@ -1923,7 +1925,7 @@ export default {
     this.disabledStatus = this.$route.query.disabledStatus === 'true';
     this.couldEdit = this.$route.query.couldEdit === 'true';
     this.couldBack = this.$route.query.couldBack === 'true';
-    if(this.$route.query.activeTabName !== null && this.$route.query.activeTabName !== undefined){
+    if (this.$route.query.activeTabName !== null && this.$route.query.activeTabName !== undefined) {
       this.activeTabName = this.$route.query.activeTabName;
     }
     this.nodeBusinessInfo.doWorkflow = true;
@@ -2047,6 +2049,19 @@ export default {
               return;
             }
             break;
+          case 'ASSET_REPORT_TAKE_NO':
+            if (this.assetsEvaluationTarget.some(item => !item.reportNo)) {
+              this.$notify({
+                title: '提示',
+                message: '还有评估对象未取号,请先完成取号再提交。',
+                type: 'error',
+                duration: 3000
+              });
+              verify.state = false;
+              callback(verify);
+              return;
+            }
+            break;
         }
         callback(verify);
       }
@@ -2651,7 +2666,7 @@ export default {
       })
     },
     // 选择产品,更新已选择产品信息
-    assetsProductionUpdate() {
+    assetsProductionUpdateChoice() {
       this.$refs.assetsProductionForm.validate(valid => {
         if (valid) {
           this.assetsProductionForm.businessId = this.assetsForm.id;
@@ -2670,7 +2685,7 @@ export default {
           this.assetsProductionForm.targetIdList = this.assetsEvaluationTarget.map(item => item.id);
           this.taskRecordDTO.recordId = this.currentNode.tasks[0].recordId;
           this.taskRecordDTO.taskData = this.assetsProductionForm;
-          this.$api.assets.assetsProductionUpdate(this.taskRecordDTO).then(res => {
+          this.$api.assets.assetsProductionUpdateChoice(this.taskRecordDTO).then(res => {
             if (res.code === 200) {
               this.$notify({
                 title: '成功',
@@ -2690,11 +2705,11 @@ export default {
     takeAssetsStatementProductionNo() {
       this.takeAssetsProductionNoDTO.allTargetIdList = this.assetsEvaluationTarget.map(item => item.id);
       // 提交的要取号数组长度与table长度一致则是全部取号
-      if (this.takeAssetsProductionNoDTO.targetIdList.length === this.assetsEvaluationTarget.length) {
-        this.takeAssetsProductionNoDTO.selectAll = true;
-      } else {
-        this.takeAssetsProductionNoDTO.selectAll = false;
-      }
+      // if (this.takeAssetsProductionNoDTO.targetIdList.length === this.assetsEvaluationTarget.length) {
+      //   this.takeAssetsProductionNoDTO.selectAll = true;
+      // } else {
+      //   this.takeAssetsProductionNoDTO.selectAll = false;
+      // }
 
       // 判断表格中是否还有未选择且未取号的评估对象,返回布尔
       let notTakeNumTargetSelect = this.assetsEvaluationTarget.filter(item => !this.takeAssetsProductionNoDTO.targetIdList.includes(item.id));
@@ -2732,12 +2747,13 @@ export default {
     // 资产产品报告取号
     takeAssetsReportProductionNo() {
       this.takeAssetsProductionNoDTO.allTargetIdList = this.assetsEvaluationTarget.map(item => item.id);
+      this.takeAssetsProductionNoDTO.statementNo = this.assetsEvaluationTarget[0].statementNo;
       // 提交的要取号数组长度与table长度一致则是全部取号
-      if (this.takeAssetsProductionNoDTO.targetIdList.length === this.assetsEvaluationTarget.length) {
-        this.takeAssetsProductionNoDTO.selectAll = true;
-      } else {
-        this.takeAssetsProductionNoDTO.selectAll = false;
-      }
+      // if (this.takeAssetsProductionNoDTO.targetIdList.length === this.assetsEvaluationTarget.length) {
+      //   this.takeAssetsProductionNoDTO.selectAll = true;
+      // } else {
+      //   this.takeAssetsProductionNoDTO.selectAll = false;
+      // }
 
       // 判断表格中是否还有未选择且未取号的评估对象,返回布尔
       let notTakeNumTargetSelect = this.assetsEvaluationTarget.filter(item => !this.takeAssetsProductionNoDTO.targetIdList.includes(item.id));
@@ -2857,31 +2873,34 @@ export default {
     getProductionList() {
       let aProListSelectDTO = new Object();
       aProListSelectDTO.businessId = this.pageParams.row.assetsId;
-      aProListSelectDTO.statementNo = this.pageParams.row.statementNo;
+      // 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.assetsEvaluationTarget[0].reportNo;
       //获取评估对象中取的号
+      aProListSelectDTO.statementNos = this.assetsEvaluationTarget.filter(obj => obj.statementNo !== null && obj.statementNo !== '').map(obj => obj.statementNo);
       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;
-          this.assetsProductionData = this.assetsProductionData.map(item => {
-            // 检查 filePath 是否为字符串且不为空
-            if (typeof item.filePath === 'string' && item.filePath.trim() !== '') {
-              try {
-                // 使用 JSON.parse 解析 filePath 字符串
-                item.filePath = JSON.parse(item.filePath);
-              } catch (error) {
-                console.error('解析 filePath 时发生错误:', error);
+      if (aProListSelectDTO.statementNos.length > 0 || aProListSelectDTO.reportNos.length > 0) {
+        this.$api.assets.getProductionList(aProListSelectDTO).then(res => {
+          if (res.code == 200) {
+            this.assetsProductionData = res.data;
+            this.assetsProductionData = this.assetsProductionData.map(item => {
+              // 检查 filePath 是否为字符串且不为空
+              if (typeof item.filePath === 'string' && item.filePath.trim() !== '') {
+                try {
+                  // 使用 JSON.parse 解析 filePath 字符串
+                  item.filePath = JSON.parse(item.filePath);
+                } catch (error) {
+                  console.error('解析 filePath 时发生错误:', error);
+                }
               }
-            }
-            // 返回更新后的对象
-            return item;
-          });
-        }
-      })
+              // 返回更新后的对象
+              return item;
+            });
+          }
+        })
+      }
     },
     //选择要提交节点的产品号
     pushProductionNo() {
@@ -2965,7 +2984,7 @@ export default {
               });
               this.checkValueDialogVisible = false;
               this.getAETargetListByAssetsId();
-              this.isCheckValue = true;
+              // this.isCheckValue = true;
             }
           })
         }
@@ -3019,7 +3038,7 @@ export default {
       })
       const curNode = this.currentNode.nodeCode;
       if (curNode === 'REVIEW_STATEMENT' || curNode === 'CHECK_REPORT') {
-        if (this.isCheckValue) {
+        if (this.assetsEvaluationTarget.some(item => !item.checkValue)) {
           this.initProQuality(curNode);
         } else {
           this.$notify({
@@ -3233,7 +3252,7 @@ export default {
     },
     // 打开绩效比例分配弹窗
     openAssetsAchievementRatioDialog() {
-      this.businessPerformanceDistributionForm.distributionList = [];
+      // this.businessPerformanceDistributionForm.distributionList = [];
       //获取报告附件信息
       let assetsProductionDetailDTO = new Object();
       assetsProductionDetailDTO.businessId = this.pageParams.row.assetsId;