From 529061167e2cc6e67c7ee60a9355cdc0a7702502 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期二, 15 七月 2025 15:08:22 +0800
Subject: [PATCH] 1、技术鉴定工单审批维修室主人确认单项检查流程增加展示以及限制条件 2、设备台账页面新增真空热处理炉字段

---
 src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue                       |    1 
 src/views/eam/equipment/modules/EamEquipmentModal.vue                                            |   65 ++++++++++++++-------
 src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue |   70 ++++++++++++++++-------
 src/views/eam/equipment/EamEquipmentLedger.vue                                                   |   17 ++++-
 4 files changed, 107 insertions(+), 46 deletions(-)

diff --git a/src/views/eam/equipment/EamEquipmentLedger.vue b/src/views/eam/equipment/EamEquipmentLedger.vue
index 4564585..725b672 100644
--- a/src/views/eam/equipment/EamEquipmentLedger.vue
+++ b/src/views/eam/equipment/EamEquipmentLedger.vue
@@ -115,8 +115,13 @@
           <a-switch checked-children="鏄�" un-checked-children="鍚�" :checked="Boolean(+text)" disabled/>
         </template>
 
-        <!--鎿嶄綔绯荤粺-->
+        <!--鐏伀鍣�-->
         <template slot="fireExtinguisher" slot-scope="text">
+          <a-switch checked-children="鏄�" un-checked-children="鍚�" :checked="Boolean(+text)" disabled/>
+        </template>
+
+        <!--鐪熺┖鐑鐞嗙倝-->
+        <template slot="trueHeatTreatment" slot-scope="text">
           <a-switch checked-children="鏄�" un-checked-children="鍚�" :checked="Boolean(+text)" disabled/>
         </template>
 
@@ -170,7 +175,7 @@
     mixins: [JeecgListMixin],
     components: {
       ResumeDrawer,
-      EamEquipmentModal,
+      EamEquipmentModal
     },
     data() {
       return {
@@ -282,6 +287,12 @@
             dataIndex: 'system'
           },
           {
+            title: '鐪熺┖鐑鐞嗙倝',
+            align: 'center',
+            dataIndex: 'trueHeatTreatment',
+            scopedSlots: { customRender: 'trueHeatTreatment' }
+          },
+          {
             title: '璁惧绔彛',
             align: 'center',
             dataIndex: 'equipmentPort'
@@ -341,7 +352,7 @@
             title: '璧勪骇鍒堕�犲晢',
             align: 'center',
             dataIndex: 'manufacturingEnterprise',
-            scopedSlots: { customRender: 'manufacturingEnterprise' },
+            scopedSlots: { customRender: 'manufacturingEnterprise' }
           },
           {
             title: '璧勪骇鏉ユ簮鍥藉',
diff --git a/src/views/eam/equipment/modules/EamEquipmentModal.vue b/src/views/eam/equipment/modules/EamEquipmentModal.vue
index 1f381e5..6609f5a 100644
--- a/src/views/eam/equipment/modules/EamEquipmentModal.vue
+++ b/src/views/eam/equipment/modules/EamEquipmentModal.vue
@@ -85,7 +85,8 @@
                 </a-col>
                 <a-col :span="customSpan">
                   <a-form-model-item label="鐏伀鍣�">
-                    <j-dict-select-tag dict-code="yn" type="radio" v-model="model.fireExtinguisher"/>
+                    <j-dict-select-tag dict-code="yn" type="radio" v-model="model.fireExtinguisher"
+                                       @change="handleRadioChange($event,'fireExtinguisherExpirationDate')"/>
                   </a-form-model-item>
                 </a-col>
                 <a-col :span="customSpan">
@@ -100,7 +101,8 @@
               <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="鎿嶄綔绯荤粺">
-                    <j-dict-select-tag dict-code="yn " type="radio" v-model="model.operationSystem"/>
+                    <j-dict-select-tag dict-code="yn " type="radio" v-model="model.operationSystem"
+                                       @change="handleRadioChange($event,'system')"/>
                   </a-form-model-item>
                 </a-col>
                 <a-col :span="customSpan">
@@ -109,20 +111,24 @@
                   </a-form-model-item>
                 </a-col>
                 <a-col :span="customSpan">
+                  <a-form-model-item label="鐪熺┖鐑鐞嗙倝">
+                    <j-dict-select-tag dict-code="yn " type="radio" v-model="model.trueHeatTreatment"/>
+                  </a-form-model-item>
+                </a-col>
+                <a-col :span="customSpan">
                   <a-form-model-item label="璁惧绔彛">
                     <a-input placeholder="璇疯緭鍏ヨ澶囩鍙�" v-model="model.equipmentPort"/>
                   </a-form-model-item>
                 </a-col>
+              </a-row>
+
+              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="鍧愭爣鏁伴噺">
                     <a-input-number placeholder="璇疯緭鍏ュ潗鏍囨暟閲�" v-model="model.coordinateNum" :min="0" :max="12"
                                     style="width: 100%"/>
                   </a-form-model-item>
                 </a-col>
-
-              </a-row>
-
-              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="閲嶉噺">
                     <a-input-number placeholder="璇疯緭鍏ラ噸閲�" v-model="model.equipmentWeight" :min="0" style="width: 100%"/>
@@ -138,14 +144,15 @@
                     <a-input placeholder="璇疯緭鍏ュ姛鑳戒綅缃�" v-model="model.functionalLocation"/>
                   </a-form-model-item>
                 </a-col>
+
+              </a-row>
+
+              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="瀹夎浣嶇疆">
                     <a-input placeholder="璇疯緭鍏ュ畨瑁呬綅缃�" v-model="model.installationPosition"/>
                   </a-form-model-item>
                 </a-col>
-              </a-row>
-
-              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="鍑哄巶鏃ユ湡">
                     <a-date-picker v-model="model.leaveFactoryDate" value-format="YYYY-MM-DD" style="width:100%"/>
@@ -161,14 +168,15 @@
                     <a-input placeholder="璇疯緭鍏ヨ祫閲戞潵婧�" v-model="model.fundingSource"/>
                   </a-form-model-item>
                 </a-col>
+
+              </a-row>
+
+              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="楠屾敹鏃ユ湡">
                     <a-date-picker v-model="model.acceptanceCheckDate" value-format="YYYY-MM-DD" style="width:100%"/>
                   </a-form-model-item>
                 </a-col>
-              </a-row>
-
-              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="鍑哄巶缂栧彿">
                     <a-input placeholder="璇疯緭鍏ュ嚭鍘傜紪鍙�" v-model="model.factoryNumber"/>
@@ -184,14 +192,15 @@
                     <a-input placeholder="璇疯緭鍏ヨ祫浜ф潵婧愬浗瀹�" v-model="model.originCountry"/>
                   </a-form-model-item>
                 </a-col>
+
+              </a-row>
+
+              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="璁惧瑙勬牸">
                     <a-input placeholder="璇疯緭鍏ヨ澶囪鏍�" v-model="model.equipmentSpecification"/>
                   </a-form-model-item>
                 </a-col>
-              </a-row>
-
-              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="鎬诲姛鐜�(KW)">
                     <a-input-number placeholder="璇疯緭鍏ユ�诲姛鐜�(KW)" v-model="model.equipmentPower" :min="0"
@@ -208,14 +217,15 @@
                     <a-date-picker v-model="model.warrantyEndDate" value-format="YYYY-MM-DD" style="width:100%"/>
                   </a-form-model-item>
                 </a-col>
+
+              </a-row>
+
+              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="璧勪骇鐘舵��">
                     <j-dict-select-tag dict-code="asset_status" placeholder="璇烽�夋嫨璧勪骇鐘舵��" v-model="model.assetStatus"/>
                   </a-form-model-item>
                 </a-col>
-              </a-row>
-
-              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="鏈涓変繚鏃ユ湡">
                     <a-date-picker v-model="model.latestThirdMaintenance" value-format="YYYY-MM-DD"
@@ -233,15 +243,16 @@
                                     style="width: 100%"/>
                   </a-form-model-item>
                 </a-col>
+
+              </a-row>
+
+              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="鎶�鏈姸鎬�">
                     <j-dict-select-tag placeholder="璇烽�夋嫨鎶�鏈姸鎬�" dict-code="equipment_technology_status"
                                        v-model="model.technologyStatus"/>
                   </a-form-model-item>
                 </a-col>
-              </a-row>
-
-              <a-row>
                 <a-col :span="customSpan">
                   <a-form-model-item label="鏈鎶�鏈壌瀹氭棩鏈�">
                     <a-date-picker v-model="model.latestTechnologyCheck" value-format="YYYY-MM-DD"
@@ -359,7 +370,8 @@
         //鍒濆鍖栭粯璁ゅ��
         this.model = {
           operationSystem: 1,
-          fireExtinguisher: 0
+          fireExtinguisher: 0,
+          trueHeatTreatment: 0
         }
         this.visible = true
       },
@@ -370,6 +382,15 @@
         this.visible = true
       },
 
+      /**\
+       * 鍗曢�夋鍊煎彂鐢熸敼鍙樻椂瑙﹀彂
+       * @param value 鍗曢�夋鍊�
+       * @param key 鍗曢�夋鍏宠仈瀛楁
+       */
+      handleRadioChange(value, key) {
+        if (value == '0') delete this.model[key]
+      },
+
       handleOk() {
         const that = this
         // 瑙﹀彂琛ㄥ崟楠岃瘉
diff --git a/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue b/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
index 6e1288f..d95a5b7 100644
--- a/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
+++ b/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
@@ -171,6 +171,7 @@
       },
 
       getDetailDataByOrderId({ id }) {
+        this.detail.safetyEquipmentCheckList = this.detail.precisionCheckList = this.detail.otherCheckList = []
         this.model.standardId = id
         this.spinning = true
         getAction(this.url.detail, { standardId: id })
diff --git a/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue b/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue
index 963c6bf..bbcdedd 100644
--- a/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue
+++ b/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue
@@ -4,8 +4,8 @@
            @cancel="handleCancel" centered cancelText="鍏抽棴">
     <a-spin :spinning="spinning">
       <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
-        <a-row :gutter="24">
-          <a-col :span="8">
+        <a-row id="outer-row" :gutter="24">
+          <a-col :span="8" class="scroll-col">
             <a-tabs>
               <a-tab-pane tab="鍩虹淇℃伅">
                 <a-row>
@@ -44,17 +44,20 @@
             </a-tabs>
           </a-col>
 
-          <a-col :span="model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'?10:16">
+          <a-col
+            :span="model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'&&model.evaluationStatus!='WAIT_EVALUATION'?10:16"
+            class="scroll-col">
 
             <a-tabs :active-key="activeTabKey" @change="handleTabChange">
               <a-tab-pane :key="1" tab="瀹夊叏瑁呯疆妫�鏌�" forceRender
-                          v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='safety_equipment_check'||!Boolean(selectShenpiData.taskDefKey)">
+                          v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='safety_equipment_check'||selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='safety_equipment_check_confirm'||!Boolean(selectShenpiData.taskDefKey)">
                 <j-vxe-table ref="editableDetailTable1" rowNumber bordered alwaysEdit keep-source :height="300"
                              :dataSource="detail.safetyEquipmentCheckList"
                              :columns="detail.safetyEquipmentCheckColumns">
                   <template v-slot:safetyEquipmentCheckResult="props">
-                    <j-dict-select-tag v-model="props.row.safetyEquipmentCheckResult" :disabled="disableSubmit"
+                    <j-dict-select-tag v-model="props.row.safetyEquipmentCheckResult"
                                        placeholder="璇烽�夋嫨妫�鏌ョ粨鏋�"
+                                       :disabled="disableSubmit||(model.evaluationStatus!='UNDER_EVALUATION'&&model.evaluationStatus!='WAIT_EVALUATION')||(model.evaluationStatus=='UNDER_EVALUATION'&&selectShenpiData.taskDefKey=='safety_equipment_check_confirm')"
                                        @change="$refs['editableDetailTable'+activeTabKey].validateTable()"
                                        dictCode="yes_no_none" style="width: 100%"/>
                   </template>
@@ -72,8 +75,7 @@
                         </a-form-model-item>
                       </a-col>
                       <a-col :span="24">
-                        <a-form-model-item prop="safetyCheckConfirmComment" :labelCol="labelColLong"
-                                           :wrapperCol="wrapperColLong" label="纭鎰忚">
+                        <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="纭鎰忚">
                           <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.safetyCheckConfirmComment"/>
                         </a-form-model-item>
                       </a-col>
@@ -83,12 +85,13 @@
               </a-tab-pane>
 
               <a-tab-pane :key="2" tab="璁惧绮惧害妫�鏌�" forceRender
-                          v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='equipment_precision_check'||!Boolean(selectShenpiData.taskDefKey)">
+                          v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='equipment_precision_check'||selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='equipment_precision_check_confirm'||!Boolean(selectShenpiData.taskDefKey)">
                 <j-vxe-table ref="editableDetailTable2" rowNumber bordered
                              alwaysEdit keep-source :height="300"
                              :dataSource="detail.precisionCheckList" :columns="detail.precisionCheckColumns">
                   <template v-slot:precisionCheckResult="props">
-                    <a-input-number v-model="props.row.precisionCheckResult" :disabled="disableSubmit"
+                    <a-input-number v-model="props.row.precisionCheckResult"
+                                    :disabled="disableSubmit||(model.evaluationStatus!='UNDER_EVALUATION'&&model.evaluationStatus!='WAIT_EVALUATION')||(model.evaluationStatus=='UNDER_EVALUATION'&&selectShenpiData.taskDefKey=='safety_equipment_check_confirm')"
                                     @blur="$refs['editableDetailTable'+activeTabKey].validateTable()"
                                     placeholder="璇疯緭鍏ユ鏌ョ粨鏋�" style="width: 100%"/>
                   </template>
@@ -117,12 +120,13 @@
               </a-tab-pane>
 
               <a-tab-pane :key="3" tab="鍏朵粬妫�鏌�" forceRender
-                          v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='other_check'||!Boolean(selectShenpiData.taskDefKey)">
+                          v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='other_check'||selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='other_check_confirm'||!Boolean(selectShenpiData.taskDefKey)">
                 <j-vxe-table ref="editableDetailTable3" rowNumber bordered
                              alwaysEdit keep-source :height="300"
                              :dataSource="detail.otherCheckList" :columns="detail.otherCheckColumns">
                   <template v-slot:otherCheckResult="props">
-                    <a-textarea v-model="props.row.otherCheckResult" :rows="1" :disabled="disableSubmit"
+                    <a-textarea v-model="props.row.otherCheckResult" :rows="1"
+                                :disabled="disableSubmit||(model.evaluationStatus!='UNDER_EVALUATION'&&model.evaluationStatus!='WAIT_EVALUATION')||(model.evaluationStatus=='UNDER_EVALUATION'&&selectShenpiData.taskDefKey=='safety_equipment_check_confirm')"
                                 @blur="$refs['editableDetailTable'+activeTabKey].validateTable()"
                                 placeholder="璇疯緭鍏ユ鏌ョ粨鏋�"
                                 :autoSize="false"/>
@@ -159,7 +163,8 @@
             </a-tabs>
           </a-col>
 
-          <a-col :span="6" v-if="model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'">
+          <a-col :span="6"
+                 v-if="model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'&&model.evaluationStatus!='WAIT_EVALUATION'">
             <a-tabs>
               <a-tab-pane tab="缁翠慨宸ョ‘璁�">
                 <a-row>
@@ -349,8 +354,8 @@
         imageSrc: null,
         activeTabKey: 1,
         validatorRules: {
-          confirmDealType: [
-            { required: true, message: '璇烽�夋嫨閫氳繃鎴栭┏鍥�!' }
+          safetyCheckConfirmResult: [
+            { required: true, message: '璇烽�夋嫨纭绫诲瀷' }
           ],
           confirmComment: [
             { required: true, message: '璇疯緭鍏ョ‘璁ゆ剰瑙�!' }
@@ -541,7 +546,7 @@
           .catch(err => {
             this.$notification.error({
               message: '娑堟伅',
-              description: res.message
+              description: err.message
             })
           })
       },
@@ -577,13 +582,15 @@
         this.$refs.form.validate(valid => {
           if (valid) {
             that.confirmLoading = that.spinning = true
-            for (let index = 1; index <= 3; index++) {
-              if (that.$refs['editableDetailTable' + index]) {
-                this.model.tableDetailList = that.$refs['editableDetailTable' + index].getTableData()
-                break
+
+            if (this.model.evaluationStatus == 'UNDER_EVALUATION') {
+              for (let index = 1; index <= 3; index++) {
+                if (that.$refs['editableDetailTable' + index]) {
+                  this.model.tableDetailList = that.$refs['editableDetailTable' + index].getTableData()
+                  break
+                }
               }
             }
-            console.log('model', this.model.tableDetailList)
 
             httpAction(this.url.approval, this.model, 'put')
               .then((res) => {
@@ -682,8 +689,29 @@
   }
 </script>
 
-<style scoped>
+<style scoped lang="less">
   /deep/ .ant-select-dropdown-menu {
     text-align: left;
   }
+
+  /deep/ .ant-spin-nested-loading {
+    height: 100%;
+
+    .ant-spin-container {
+      height: 100%;
+
+      .ant-form {
+        height: 100%;
+
+        #outer-row {
+          height: 100%;
+
+          .scroll-col {
+            height: 100%;
+            overflow: auto;
+          }
+        }
+      }
+    }
+  }
 </style>
\ No newline at end of file

--
Gitblit v1.9.3