From c852aa9f6ecec2953ca3a5c11ce7d9f79f8fc5bc Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期一, 14 七月 2025 14:15:32 +0800
Subject: [PATCH] 鉴定工单审批弹窗维修工填写检查结果

---
 src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue                       |    8 
 src/views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue                 |    2 
 src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue |  689 +++++++++++++++++++++++++++++++
 src/views/flowable/workflow/FlowTodo.vue                                                         |  116 ++--
 src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue                                |  457 ++++++++++---------
 5 files changed, 995 insertions(+), 277 deletions(-)

diff --git a/src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue b/src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue
index c45aab9..2232cf7 100644
--- a/src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue
+++ b/src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue
@@ -6,18 +6,23 @@
         <a-row :gutter="24">
           <a-col :xl="5" :lg="6" :md="8" :sm="12">
             <a-form-item label="缁熶竴缂栫爜">
-              <technical-status-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�"
-                                                 v-model="queryParam.equipmentId" />
+              <lx-search-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="queryParam.equipmentId"/>
             </a-form-item>
           </a-col>
           <a-col :xl="5" :lg="6" :md="8" :sm="12">
             <a-form-item label="宸ュ崟鍙�">
-              <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="queryParam.orderNum" />
+              <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="queryParam.orderNum"/>
             </a-form-item>
           </a-col>
           <a-col :xl="5" :lg="6" :md="8" :sm="12">
             <a-form-item label="璁″垝閴村畾鏃ユ湡">
-              <a-date-picker v-model="queryParam.evaluationDate" style="width: 100%" />
+              <a-date-picker v-model="queryParam.evaluationDate" style="width: 100%"/>
+            </a-form-item>
+          </a-col>
+          <a-col :xl="5" :lg="6" :md="8" :sm="12">
+            <a-form-item label="閴村畾鐘舵��">
+              <j-dict-select-tag placeholder="璇烽�夋嫨閴村畾鐘舵��" dict-code="technical_status_evaluation_order_status"
+                                 v-model="queryParam.evaluationStatus"/>
             </a-form-item>
           </a-col>
           <a-col :xl="4" :lg="6" :md="8" :sm="12">
@@ -40,235 +45,251 @@
              :scroll="{ x: 'max-content' }" :loading="loading" @change="handleTableChange">
 
         <span slot="action" slot-scope="text, record">
-          <a-popconfirm v-if="record.evaluationStatus === 'WAIT_EVALUATION'" title="纭畾棰嗗彇鍚楋紵"
-                        @confirm="handleReceive(record.id)">
+          <template v-if="record.evaluationStatus === 'WAIT_EVALUATION'">
+            <a-popconfirm title="纭畾棰嗗彇鍚楋紵"
+                          @confirm="handleReceive(record.id)">
             <a>棰嗗彇</a>
           </a-popconfirm>
+
+           <a-divider type="vertical"/>
+          </template>
+
+            <a @click="handleDetail(record)">璇︽儏</a>
         </span>
     </a-table>
     <!-- table鍖哄煙-end -->
 
     <!-- 琛ㄥ崟鍖哄煙 -->
-    <eamTechnicalStatusEvaluationOrder-modal ref="modalForm" @ok="modalFormOk" />
+    <eamTechnicalStatusEvaluationOrder-modal ref="modalForm" @ok="modalFormOk"/>
+
+    <technical-status-evaluation-approval-modal ref="technicalStatusEvaluationApprovalModal"
+                                                :selectShenpiData="selectedOrderData"/>
   </a-card>
 </template>
 
 <script>
-import EamTechnicalStatusEvaluationOrderModal from './modules/EamTechnicalStatusEvaluationOrderModal'
-import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-import TechnicalStatusEquipmentSelect from '../equipment/modules/TechnicalStatusEquipmentSelect'
-import { getAction } from '@/api/manage'
+  import EamTechnicalStatusEvaluationOrderModal from './modules/EamTechnicalStatusEvaluationOrderModal'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import { getAction } from '@/api/manage'
+  import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect'
+  import TechnicalStatusEvaluationApprovalModal
+    from '../../flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal'
 
-export default {
-  name: 'EamTechnicalStatusEvaluationOrderList',
-  mixins: [JeecgListMixin],
-  components: {
-    TechnicalStatusEquipmentSelect,
-    EamTechnicalStatusEvaluationOrderModal
-  },
-  data() {
-    return {
-      description: '鎶�鏈姸鎬侀壌瀹氬伐鍗曠鐞嗛〉闈�',
-      // 琛ㄥご
-      columns: [
-        {
-          title: '#',
-          dataIndex: '',
-          key: 'rowIndex',
-          width: 60,
-          align: 'center',
-          customRender: function(t, r, index) {
-            return parseInt(index) + 1
+  export default {
+    name: 'EamTechnicalStatusEvaluationOrderList',
+    mixins: [JeecgListMixin],
+    components: {
+      TechnicalStatusEvaluationApprovalModal,
+      LxSearchEquipmentSelect,
+      EamTechnicalStatusEvaluationOrderModal
+    },
+    data() {
+      return {
+        description: '鎶�鏈姸鎬侀壌瀹氬伐鍗曠鐞嗛〉闈�',
+        selectedOrderData: {},
+        // 琛ㄥご
+        columns: [
+          {
+            title: '#',
+            dataIndex: '',
+            key: 'rowIndex',
+            width: 60,
+            align: 'center',
+            customRender: function(t, r, index) {
+              return parseInt(index) + 1
+            },
+            fixed: 'left'
           },
-          fixed: 'left'
-        },
-        {
-          title: '缁熶竴缂栫爜',
-          align: 'center',
-          dataIndex: 'equipmentCode',
-          fixed: 'left'
-        },
-        {
-          title: '璁惧鍚嶇О',
-          align: 'center',
-          dataIndex: 'equipmentName',
-          fixed: 'left'
-        },
-        {
-          title: '璁惧鍨嬪彿',
-          align: 'center',
-          dataIndex: 'equipmentModel',
-          fixed: 'left'
-        },
-        {
-          title: '宸ュ崟鍙�',
-          align: 'center',
-          dataIndex: 'orderNum',
-          fixed: 'left'
-        },
-        {
-          title: '璁″垝閴村畾鏃ユ湡',
-          align: 'center',
-          dataIndex: 'evaluationDate',
-          fixed: 'left'
-        },
-        {
-          title: '閿佸畾宸ュ崟鏃ユ湡',
-          align: 'center',
-          dataIndex: 'freezeOrderDate'
-        },
-        {
-          title: '宸ュ崟杩囨湡鏃ユ湡',
-          align: 'center',
-          dataIndex: 'orderExpirationDate'
-        },
-        {
-          title: '瀹為檯寮�濮嬫椂闂�',
-          align: 'center',
-          dataIndex: 'actualStartTime'
-        },
-        {
-          title: '瀹為檯缁撴潫鏃堕棿',
-          align: 'center',
-          dataIndex: 'actualEndTime'
-        },
-        {
-          title: '閴村畾浜�',
-          align: 'center',
-          dataIndex: 'evaluator'
-        },
-        {
-          title: '閴村畾鐘舵��',
-          align: 'center',
-          dataIndex: 'evaluationStatus_dictText'
-        },
-        {
-          title: '鍒涘缓鏂瑰紡',
-          align: 'center',
-          dataIndex: 'creationMethod_dictText'
-        },
-        {
-          title: '瀹夊叏瑁呯疆妫�鏌ョ粨鏋�',
-          align: 'center',
-          dataIndex: 'safetyEquipmentCheckResult'
-        },
-        {
-          title: '绮惧害鍙傛暟妫�鏌ョ粨鏋�',
-          align: 'center',
-          dataIndex: 'precisionCheckResult'
-        },
-        {
-          title: '鍔熻兘鐘舵�佹鏌ョ粨鏋�',
-          align: 'center',
-          dataIndex: 'functionalCheckResult'
-        },
-        {
-          title: '鍏朵粬妫�鏌ョ粨鏋�',
-          align: 'center',
-          dataIndex: 'otherCheckResult'
-        },
-        {
-          title: '缁翠慨瀹や富浠荤瀛�',
-          align: 'center',
-          dataIndex: 'repairManagerSignature'
-        },
-        {
-          title: '缁翠慨瀹や富浠荤瀛楁椂闂�',
-          align: 'center',
-          dataIndex: 'repairManagerSignatureTime1'
-        },
-        {
-          title: '璇曚欢妫�鏌ョ粨鏋�',
-          align: 'center',
-          dataIndex: 'sampleCheckResult'
-        },
-        {
-          title: '宸ヨ壓鍛樼瀛�',
-          align: 'center',
-          dataIndex: 'processTechnicianSignature'
-        },
-        {
-          title: '宸ヨ壓鍛樼瀛楁椂闂�',
-          align: 'center',
-          dataIndex: 'processTechnicianSignatureTime'
-        },
-        {
-          title: '閴村畾缁撴灉',
-          align: 'center',
-          dataIndex: 'evaluationResult'
-        },
-        {
-          title: '闄�/绂佺敤鍘熷洜',
-          align: 'center',
-          dataIndex: 'evaluationReason'
-        },
-        {
-          title: '璁惧妫�鏌ヤ汉绛惧瓧',
-          align: 'center',
-          dataIndex: 'inspectorSignature'
-        },
-        {
-          title: '璁惧妫�鏌ヤ汉绛惧瓧鏃堕棿',
-          align: 'center',
-          dataIndex: 'inspectorSignatureTime'
-        },
-        {
-          title: '闄勫綍A HF缂栫爜',
-          align: 'center',
-          dataIndex: 'hfCodeA'
-        },
-        {
-          title: '闄勫綍B HF缂栫爜',
-          align: 'center',
-          dataIndex: 'hfCodeB'
-        },
-        {
-          title: '闄勫綍C HF缂栫爜',
-          align: 'center',
-          dataIndex: 'hfCodeC'
-        },
-        {
-          title: '闄勫綍D HF缂栫爜',
-          align: 'center',
-          dataIndex: 'hfCodeD'
-        },
-        {
-          title: '鎿嶄綔',
-          dataIndex: 'action',
-          align: 'center',
-          scopedSlots: { customRender: 'action' },
-          fixed: 'right'
+          {
+            title: '缁熶竴缂栫爜',
+            align: 'center',
+            dataIndex: 'equipmentCode',
+            fixed: 'left'
+          },
+          {
+            title: '璁惧鍚嶇О',
+            align: 'center',
+            dataIndex: 'equipmentName',
+            fixed: 'left'
+          },
+          {
+            title: '璁惧鍨嬪彿',
+            align: 'center',
+            dataIndex: 'equipmentModel',
+            fixed: 'left'
+          },
+          {
+            title: '宸ュ崟鍙�',
+            align: 'center',
+            dataIndex: 'orderNum'
+          },
+          {
+            title: '璁″垝閴村畾鏃ユ湡',
+            align: 'center',
+            dataIndex: 'evaluationDate'
+          },
+          {
+            title: '閿佸畾宸ュ崟鏃ユ湡',
+            align: 'center',
+            dataIndex: 'freezeOrderDate'
+          },
+          {
+            title: '宸ュ崟杩囨湡鏃ユ湡',
+            align: 'center',
+            dataIndex: 'orderExpirationDate'
+          },
+          {
+            title: '瀹為檯寮�濮嬫椂闂�',
+            align: 'center',
+            dataIndex: 'actualStartTime'
+          },
+          {
+            title: '瀹為檯缁撴潫鏃堕棿',
+            align: 'center',
+            dataIndex: 'actualEndTime'
+          },
+          {
+            title: '棰嗗彇浜�',
+            align: 'center',
+            dataIndex: 'evaluator_dictText'
+          },
+          {
+            title: '閴村畾鐘舵��',
+            align: 'center',
+            dataIndex: 'evaluationStatus_dictText'
+          },
+          {
+            title: '鍒涘缓鏂瑰紡',
+            align: 'center',
+            dataIndex: 'creationMethod_dictText'
+          },
+          {
+            title: '瀹夊叏瑁呯疆妫�鏌ョ粨鏋�',
+            align: 'center',
+            dataIndex: 'safetyEquipmentCheckResult'
+          },
+          {
+            title: '绮惧害鍙傛暟妫�鏌ョ粨鏋�',
+            align: 'center',
+            dataIndex: 'precisionCheckResult'
+          },
+          {
+            title: '鍔熻兘鐘舵�佹鏌ョ粨鏋�',
+            align: 'center',
+            dataIndex: 'functionalCheckResult'
+          },
+          {
+            title: '鍏朵粬妫�鏌ョ粨鏋�',
+            align: 'center',
+            dataIndex: 'otherCheckResult'
+          },
+          {
+            title: '缁翠慨瀹や富浠荤瀛�',
+            align: 'center',
+            dataIndex: 'repairManagerSignature'
+          },
+          {
+            title: '缁翠慨瀹や富浠荤瀛楁椂闂�',
+            align: 'center',
+            dataIndex: 'repairManagerSignatureTime1'
+          },
+          {
+            title: '璇曚欢妫�鏌ョ粨鏋�',
+            align: 'center',
+            dataIndex: 'sampleCheckResult'
+          },
+          {
+            title: '宸ヨ壓鍛樼瀛�',
+            align: 'center',
+            dataIndex: 'processTechnicianSignature'
+          },
+          {
+            title: '宸ヨ壓鍛樼瀛楁椂闂�',
+            align: 'center',
+            dataIndex: 'processTechnicianSignatureTime'
+          },
+          {
+            title: '閴村畾缁撴灉',
+            align: 'center',
+            dataIndex: 'evaluationResult'
+          },
+          {
+            title: '闄�/绂佺敤鍘熷洜',
+            align: 'center',
+            dataIndex: 'evaluationReason'
+          },
+          {
+            title: '璁惧妫�鏌ヤ汉绛惧瓧',
+            align: 'center',
+            dataIndex: 'inspectorSignature'
+          },
+          {
+            title: '璁惧妫�鏌ヤ汉绛惧瓧鏃堕棿',
+            align: 'center',
+            dataIndex: 'inspectorSignatureTime'
+          },
+          {
+            title: '闄勫綍A HF缂栫爜',
+            align: 'center',
+            dataIndex: 'hfCodeA'
+          },
+          {
+            title: '闄勫綍B HF缂栫爜',
+            align: 'center',
+            dataIndex: 'hfCodeB'
+          },
+          {
+            title: '闄勫綍C HF缂栫爜',
+            align: 'center',
+            dataIndex: 'hfCodeC'
+          },
+          {
+            title: '闄勫綍D HF缂栫爜',
+            align: 'center',
+            dataIndex: 'hfCodeD'
+          },
+          {
+            title: '鎿嶄綔',
+            dataIndex: 'action',
+            align: 'center',
+            scopedSlots: { customRender: 'action' },
+            fixed: 'right'
+          }
+        ],
+        url: {
+          list: '/eam/eamTechnicalStatusEvaluationOrder/list',
+          receive: '/eam/eamTechnicalStatusEvaluationOrder/collect'
         }
-      ],
-      url: {
-        list: '/eam/eamTechnicalStatusEvaluationOrder/list',
-        receive: '/eam/eamTechnicalStatusEvaluationOrder/collect',
+      }
+    },
+    methods: {
+      handleReceive(id) {
+        let that = this
+        this.loading = true
+        getAction(that.url.receive, { id })
+          .then(res => {
+            if (res.success) {
+              that.$notification.success({
+                message: '娑堟伅',
+                description: res.message
+              })
+              that.loadData()
+            } else {
+              that.$notification.warning({
+                message: '娑堟伅',
+                description: res.message
+              })
+              that.loading = false
+            }
+          })
+      },
+
+      handleDetail(record) {
+        this.selectedOrderData = Object.assign({}, record)
+        this.$refs.technicalStatusEvaluationApprovalModal.recordDetail(record)
+        this.$refs.technicalStatusEvaluationApprovalModal.title = '璇︽儏'
+        this.$refs.technicalStatusEvaluationApprovalModal.disableSubmit = true
       }
     }
-  },
-  computed: {
-  },
-  methods: {
-    handleReceive(id) {
-      let that = this
-      this.loading = true
-      getAction(that.url.receive, { id })
-        .then(res => {
-          if (res.success) {
-            that.$notification.success({
-              message: '娑堟伅',
-              description: res.message
-            })
-            that.loadData();
-          } else {
-            that.$notification.warning({
-              message: '娑堟伅',
-              description: res.message
-            })
-            that.loading = false
-          }
-        })
-    }
   }
-}
 </script>
\ No newline at end of file
diff --git a/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue b/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
index b1dea0d..6e1288f 100644
--- a/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
+++ b/src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
@@ -101,11 +101,11 @@
               type: JVXETypes.hidden
             },
             {
-              title: '椤圭洰搴忓彿',
+              title: '搴忓彿',
               key: 'itemCode',
               type: JVXETypes.normal,
               align: 'center',
-              width: 150
+              width: 60
             },
             {
               title: '妫�鏌ラ」鐩�',
@@ -126,11 +126,11 @@
               type: JVXETypes.hidden
             },
             {
-              title: '椤圭洰搴忓彿',
+              title: '搴忓彿',
               key: 'itemCode',
               type: JVXETypes.normal,
               align: 'center',
-              width: 150
+              width: 60
             },
             {
               title: '妫�鏌ラ」鐩�',
diff --git a/src/views/flowable/workflow/FlowTodo.vue b/src/views/flowable/workflow/FlowTodo.vue
index cd203f2..3270b82 100644
--- a/src/views/flowable/workflow/FlowTodo.vue
+++ b/src/views/flowable/workflow/FlowTodo.vue
@@ -91,8 +91,11 @@
     <maintenance-standard-approval-modal ref="maintenanceStandardApprovalModal" @modalFormOk="modalFormOk"
                                          :selectShenpiData="selectedRowData"/>
 
-    <inspection-order-handle ref="modalFormInspectionOrder" :selectShenpiData="selectedRowData"
+    <inspection-order-handle ref="inspectionOrderHandle" :selectShenpiData="selectedRowData"
                              @modalFormOk="modalFormOk"/>
+
+    <technical-status-evaluation-approval-modal ref="technicalStatusApprovalModal" :selectShenpiData="selectedRowData"
+                                                @modalFormOk="modalFormOk"/>
   </a-card>
 </template>
 
@@ -102,11 +105,13 @@
   import { getAction } from '@api/manage'
   import MaintenanceStandardApprovalModal from './MaintenanceStandard/MaintenanceStandardApprovalModal'
   import InspectionOrderHandle from './InspectionOrder/InspectionOrderHandle'
+  import TechnicalStatusEvaluationApprovalModal
+    from './TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal'
 
   export default {
     name: 'NcDeviceCharactersList',
     mixins: [JeecgListMixin, mixinDevice],
-    components: { InspectionOrderHandle, MaintenanceStandardApprovalModal },
+    components: { TechnicalStatusEvaluationApprovalModal, InspectionOrderHandle, MaintenanceStandardApprovalModal },
     data() {
       return {
         description: '宸ヤ綔娴�-鎴戠殑寰呭姙',
@@ -203,9 +208,6 @@
           case 'sbdjApproval':
             this.handInspectionOrder(item)
             break
-          case 'WEEK_MAINTENANCE':
-            this.handleWeekMaintenance(item)
-            break
           case 'eam_repair':
             this.handleRepairOrder(item)
             break
@@ -215,8 +217,8 @@
           case 'third_maintenance':
             this.handleThirdMaintenance(item)
             break
-          case 'toolOutStorageApproval':
-            this.handleToolOutStorageApproval(item)
+          case 'TECHNICAL_STATUS_EVALUATION':
+            this.handleTechnicalStatusEvaluation(item)
             break
           case 'toolsStocktakingBound':
             this.handleToolStocktakingApproval(item)
@@ -230,7 +232,7 @@
       },
 
       /**
-       * 鐐瑰嚮淇濆吇瑙勮寖鍒嗙被娴佺▼璇︽儏鏃惰Е鍙�
+       * 鐐瑰嚮淇濆吇瑙勮寖鍒嗙被娴佺▼鎵ц瀹℃壒鏃惰Е鍙�
        * @param record
        */
       handleMaintenanceStandard(record) {
@@ -239,6 +241,58 @@
         this.$refs.maintenanceStandardApprovalModal.title = '淇濆吇瑙勮寖'
         this.$refs.maintenanceStandardApprovalModal.getAllApproveData(record)
         this.$refs.maintenanceStandardApprovalModal.getBasicInformation(record)
+      },
+
+      /**
+       * 鐐瑰嚮鎶�鏈姸鎬侀壌瀹氭祦绋嬫墽琛屽鎵规椂瑙﹀彂
+       * @param record
+       */
+      handleTechnicalStatusEvaluation(record) {
+        this.selectedRowData = Object.assign({}, record)
+        this.$refs.technicalStatusApprovalModal.visible = true
+        this.$refs.technicalStatusApprovalModal.title = record.name
+        this.$refs.technicalStatusApprovalModal.handleDetail(record)
+      },
+
+      /**
+       * 鐐瑰嚮鐐规宸ュ崟娴佺▼鎵ц瀹℃壒鏃惰Е鍙�
+       * @param record
+       */
+      handInspectionOrder(record) {
+        console.log('record----->', record)
+        this.selectedRowData = Object.assign({}, record)
+        this.$refs.inspectionOrderHandle.visible = true
+        this.$refs.inspectionOrderHandle.title = record.name
+        this.$refs.inspectionOrderHandle.getAllApproveData(record)
+        this.$refs.inspectionOrderHandle.getBasicInformation(record)
+      },
+
+      /**
+       * 鐐瑰嚮璁惧缁翠慨鍒嗙被娴佺▼鎵ц瀹℃壒鏃惰Е鍙�
+       * @param record
+       */
+      handleRepairOrder(record) {
+        this.selectRepairOrderData = Object.assign({}, record)
+        this.$refs.repairOrderApprovalModal.visible = true
+        this.$refs.repairOrderApprovalModal.title = record.name
+        this.$refs.repairOrderApprovalModal.getAllApproveData(record)
+        this.$refs.repairOrderApprovalModal.getBasicInformation(record)
+      },
+      handleSecondMaintenance(item) {
+        if (item && item.dataId) {
+          this.selectSecondMaintenanceData = Object.assign({}, item)
+          this.$refs.secondMaintenanceApprovalModal.handleDetail(item)
+          this.$refs.secondMaintenanceApprovalModal.title = item.name
+          this.$refs.secondMaintenanceApprovalModal.disableSubmit = false
+        }
+      },
+      handleThirdMaintenance(item) {
+        if (item && item.dataId) {
+          this.selectThirdMaintenanceData = Object.assign({}, item)
+          this.$refs.thirdMaintenanceApprovalModal.handleDetail(item)
+          this.$refs.thirdMaintenanceApprovalModal.title = item.name
+          this.$refs.thirdMaintenanceApprovalModal.disableSubmit = false
+        }
       },
 
       batchHandle() {
@@ -275,52 +329,6 @@
         let parts = title.split('锛�') // 娉ㄦ剰鍐掑彿鏄叏瑙掑瓧绗︼紝浣跨敤瀵瑰簲鐨勫瓧杩涜鍒嗗壊
         let result = parts[0]
         return result
-      },
-
-      handInspectionOrder(record) {
-        console.log('record----->', record)
-        this.selectedRowData = Object.assign({}, record)
-        this.$refs.modalFormInspectionOrder.visible = true
-        this.$refs.modalFormInspectionOrder.title = record.name
-        this.$refs.modalFormInspectionOrder.getAllApproveData(record)
-        this.$refs.modalFormInspectionOrder.getBasicInformation(record)
-      },
-
-      handleWeekMaintenance(item) {
-        if (item && item.dataId) {
-          this.selectWeekMaintenanceData = Object.assign({}, item)
-          this.$refs.weekMaintenanceApprovalModal.handleDetail(item)
-          this.$refs.weekMaintenanceApprovalModal.title = item.name
-          this.$refs.weekMaintenanceApprovalModal.disableSubmit = false
-        }
-      },
-
-      /**
-       * 鐐瑰嚮璁惧缁翠慨鍒嗙被娴佺▼璇︽儏鏃惰Е鍙�
-       * @param record
-       */
-      handleRepairOrder(record) {
-        this.selectRepairOrderData = Object.assign({}, record)
-        this.$refs.repairOrderApprovalModal.visible = true
-        this.$refs.repairOrderApprovalModal.title = record.name
-        this.$refs.repairOrderApprovalModal.getAllApproveData(record)
-        this.$refs.repairOrderApprovalModal.getBasicInformation(record)
-      },
-      handleSecondMaintenance(item) {
-        if (item && item.dataId) {
-          this.selectSecondMaintenanceData = Object.assign({}, item)
-          this.$refs.secondMaintenanceApprovalModal.handleDetail(item)
-          this.$refs.secondMaintenanceApprovalModal.title = item.name
-          this.$refs.secondMaintenanceApprovalModal.disableSubmit = false
-        }
-      },
-      handleThirdMaintenance(item) {
-        if (item && item.dataId) {
-          this.selectThirdMaintenanceData = Object.assign({}, item)
-          this.$refs.thirdMaintenanceApprovalModal.handleDetail(item)
-          this.$refs.thirdMaintenanceApprovalModal.title = item.name
-          this.$refs.thirdMaintenanceApprovalModal.disableSubmit = false
-        }
       }
     }
   }
diff --git a/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue b/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue
new file mode 100644
index 0000000..ed0fd40
--- /dev/null
+++ b/src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue
@@ -0,0 +1,689 @@
+<template>
+  <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading"
+           :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" fullscreen @ok="handleOk"
+           @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-tabs>
+              <a-tab-pane tab="鍩虹淇℃伅">
+                <a-row>
+                  <a-col :span="12">
+                    <a-form-model-item label="宸ュ崟鍙�">
+                      <a-input v-model="model.orderNum" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="12">
+                    <a-form-model-item label="缁熶竴缂栫爜">
+                      <technical-status-equipment-select v-model="model.equipmentId"
+                                                         @autocompleteForm="autocompleteForm" disabled/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+
+                <a-row>
+                  <a-col :span="12">
+                    <a-form-model-item label="璁″垝閴村畾鏃ユ湡">
+                      <a-input v-model="model.evaluationDate" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="12">
+                    <a-form-model-item label="棰嗗彇浜�">
+                      <a-input v-model="model.evaluator_dictText" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+
+                <a-row>
+                  <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="澶囨敞">
+                    <a-textarea v-model="model.remark" readOnly/>
+                  </a-form-model-item>
+                </a-row>
+              </a-tab-pane>
+            </a-tabs>
+          </a-col>
+
+          <a-col :span="model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'?10:16">
+
+            <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)">
+                <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"
+                                       placeholder="璇烽�夋嫨妫�鏌ョ粨鏋�"
+                                       @change="$refs['editableDetailTable'+activeTabKey].validateTable()"
+                                       dictCode="yes_no_none" style="width: 100%"/>
+                  </template>
+                </j-vxe-table>
+
+                <a-tabs v-if="model.safetyCheckCompleted">
+                  <a-tab-pane tab="缁翠慨瀹や富浠荤‘璁�">
+                    <a-row>
+                      <a-col :span="24">
+                        <a-form-model-item prop="safetyCheckConfirmResult" :labelCol="labelColLong"
+                                           :wrapperCol="wrapperColLong" label="纭绫诲瀷">
+                          <j-dict-select-tag type='radio' v-model='model.safetyCheckConfirmResult'
+                                             dictCode='approved_rejected'
+                                             placeholder="璇烽�夋嫨纭绫诲瀷"/>
+                        </a-form-model-item>
+                      </a-col>
+                      <a-col :span="24">
+                        <a-form-model-item prop="safetyCheckConfirmComment" :labelCol="labelColLong"
+                                           :wrapperCol="wrapperColLong" label="纭鎰忚">
+                          <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.safetyCheckConfirmComment"/>
+                        </a-form-model-item>
+                      </a-col>
+                    </a-row>
+                  </a-tab-pane>
+                </a-tabs>
+              </a-tab-pane>
+
+              <a-tab-pane :key="2" tab="璁惧绮惧害妫�鏌�" forceRender
+                          v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='equipment_precision_check'||!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"
+                                    @blur="$refs['editableDetailTable'+activeTabKey].validateTable()"
+                                    placeholder="璇疯緭鍏ユ鏌ョ粨鏋�" style="width: 100%"/>
+                  </template>
+                </j-vxe-table>
+
+                <a-tabs v-if="model.precisionCheckCompleted">
+                  <a-tab-pane tab="缁翠慨瀹や富浠荤‘璁�">
+                    <a-row>
+                      <a-col :span="24">
+                        <a-form-model-item prop="precisionCheckConfirmResult" :labelCol="labelColLong"
+                                           :wrapperCol="wrapperColLong" label="纭绫诲瀷">
+                          <j-dict-select-tag type='radio' v-model='model.precisionCheckConfirmResult'
+                                             dictCode='approved_rejected'
+                                             placeholder="璇烽�夋嫨纭绫诲瀷"/>
+                        </a-form-model-item>
+                      </a-col>
+                      <a-col :span="24">
+                        <a-form-model-item prop="precisionCheckConfirmComment" :labelCol="labelColLong"
+                                           :wrapperCol="wrapperColLong" label="纭鎰忚">
+                          <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.precisionCheckConfirmComment"/>
+                        </a-form-model-item>
+                      </a-col>
+                    </a-row>
+                  </a-tab-pane>
+                </a-tabs>
+              </a-tab-pane>
+
+              <a-tab-pane :key="3" tab="鍏朵粬妫�鏌�" forceRender
+                          v-if="selectShenpiData.taskDefKey&&selectShenpiData.taskDefKey=='other_check'||!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"
+                                @blur="$refs['editableDetailTable'+activeTabKey].validateTable()"
+                                placeholder="璇疯緭鍏ユ鏌ョ粨鏋�"
+                                :autoSize="false"/>
+                  </template>
+                </j-vxe-table>
+
+                <a-tabs v-if="model.otherCheckCompleted">
+                  <a-tab-pane tab="缁翠慨瀹や富浠荤‘璁�">
+                    <a-row>
+                      <a-col :span="24">
+                        <a-form-model-item prop="otherCheckConfirmResult" :labelCol="labelColLong"
+                                           :wrapperCol="wrapperColLong" label="纭绫诲瀷">
+                          <j-dict-select-tag type='radio' v-model='model.otherCheckConfirmResult'
+                                             dictCode='approved_rejected'
+                                             placeholder="璇烽�夋嫨纭绫诲瀷"/>
+                        </a-form-model-item>
+                      </a-col>
+                      <a-col :span="24">
+                        <a-form-model-item prop="otherCheckConfirmComment" :labelCol="labelColLong"
+                                           :wrapperCol="wrapperColLong" label="纭鎰忚">
+                          <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.otherCheckConfirmComment"/>
+                        </a-form-model-item>
+                      </a-col>
+                    </a-row>
+                  </a-tab-pane>
+                </a-tabs>
+              </a-tab-pane>
+
+              <template v-if="selectShenpiData.procInstId">
+                <a-tab-pane key='4' tab='娴佺▼鍥�'>
+                  <img :src="imageSrc" alt="Fetched Image"/>
+                </a-tab-pane>
+              </template>
+            </a-tabs>
+          </a-col>
+
+          <a-col :span="6" v-if="model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'">
+            <a-tabs>
+              <a-tab-pane tab="缁翠慨宸ョ‘璁�">
+                <a-row>
+                  <a-col :span="24">
+                    <a-form-model-item prop="confirmDealType" label="瀹夊叏瑁呯疆鏄惁榻愬叏" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <j-dict-select-tag type='radio' v-model='model.safetyEquipmentCheckResult' dictCode='yn'
+                                         :disabled="disableSubmit || inspectorConfirmDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="24">
+                    <a-form-model-item prop="confirmDealType" label="璁惧鍔熻兘鏄惁榻愬叏" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <j-dict-select-tag type='radio' v-model='model.precisionCheckResult' dictCode='yn'
+                                         placeholder="璇烽�夋嫨纭绫诲瀷" :disabled="disableSubmit || inspectorConfirmDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="24">
+                    <a-form-model-item prop="confirmDealType" label="绮惧害鏄惁杈惧埌瑕佹眰" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <j-dict-select-tag type='radio' v-model='model.functionalCheckResult' dictCode='yes_no_none'
+                                         placeholder="璇烽�夋嫨纭绫诲瀷" :disabled="disableSubmit || inspectorConfirmDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="24">
+                    <a-form-model-item prop="confirmDealType" label="妫�鏌ユ槸鍚﹀悎鏍�" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <j-dict-select-tag type='radio' v-model='model.otherCheckResult' dictCode='yes_no_none'
+                                         placeholder="璇烽�夋嫨纭绫诲瀷" :disabled="disableSubmit || inspectorConfirmDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+              </a-tab-pane>
+            </a-tabs>
+
+            <a-tabs>
+              <a-tab-pane tab="缁翠慨瀹や富浠荤‘璁�">
+                <a-row>
+                  <a-col :span="24">
+                    <a-form-model-item prop="repairManagerSignatureResult" label="纭绫诲瀷" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <j-dict-select-tag type='radio' v-model='model.repairManagerSignatureResult'
+                                         dictCode='approved_rejected'
+                                         placeholder="璇烽�夋嫨纭绫诲瀷" :disabled="disableSubmit || inspectorConfirmDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="24">
+                    <a-form-model-item prop="repairManagerComment" label="纭鎰忚" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.repairManagerComment"
+                                  :disabled="disableSubmit || completionDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+              </a-tab-pane>
+            </a-tabs>
+
+            <a-tabs>
+              <a-tab-pane tab="宸ヨ壓鍛樼‘璁�">
+                <a-row>
+                  <a-col :span="24">
+                    <a-form-model-item prop="sampleCheckResult" label="璇曚欢妫�鏌ョ粨鏋�" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <j-dict-select-tag type='radio' v-model='model.sampleCheckResult' dictCode='yn'
+                                         :disabled="disableSubmit || inspectorConfirmDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="24">
+                    <a-form-model-item prop="processTechnicianComment" label="纭鎰忚" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.processTechnicianComment"
+                                  :disabled="disableSubmit || completionDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+              </a-tab-pane>
+            </a-tabs>
+
+            <a-tabs>
+              <a-tab-pane tab="浣跨敤鍗曚綅鎶�鏈富绠$‘璁�">
+                <a-row>
+                  <a-col :span="24">
+                    <a-form-model-item prop="departTechnicalLeaderSignatureResult" label="纭绫诲瀷"
+                                       :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol">
+                      <j-dict-select-tag type='radio' v-model='model.departTechnicalLeaderSignatureResult'
+                                         dictCode='approved_rejected'
+                                         :disabled="disableSubmit || inspectorConfirmDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="24">
+                    <a-form-model-item prop="departTechnicalLeaderComment" label="纭鎰忚" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.departTechnicalLeaderComment"
+                                  :disabled="disableSubmit || completionDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+              </a-tab-pane>
+            </a-tabs>
+
+            <a-tabs>
+              <a-tab-pane tab="璁惧妫�楠屽憳纭">
+                <a-row>
+                  <a-col :span="24">
+                    <a-form-model-item prop="evaluationResult" label="閴村畾缁撴灉" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <j-dict-select-tag type='radio' v-model='model.evaluationResult'
+                                         dictCode='equipment_technology_status'
+                                         placeholder="璇烽�夋嫨纭绫诲瀷" :disabled="disableSubmit || inspectorConfirmDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="24">
+                    <a-form-model-item prop="evaluationReason" label="闄�/绂佺敤鍘熷洜" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <j-select-multiple v-model='model.evaluationReason'
+                                         dictCode='technical_status_evaluation_result_reason'
+                                         placeholder="璇烽�夋嫨闄�/绂佺敤鍘熷洜"/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="24">
+                    <a-form-model-item prop="inspectorComment" label="纭鎰忚" :labelCol="rightColLabelCol"
+                                       :wrapperCol="rightColWrapperCol">
+                      <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.inspectorComment"
+                                  :disabled="disableSubmit || completionDisable"/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+              </a-tab-pane>
+            </a-tabs>
+          </a-col>
+        </a-row>
+      </a-form-model>
+    </a-spin>
+  </j-modal>
+</template>
+
+<script>
+  import { downFile, getAction, httpAction } from '@/api/manage'
+  import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
+  import { JVXETypes } from '@comp/jeecg/JVxeTable'
+  import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect'
+  import TechnicalStatusEquipmentSelect from '../../../eam/equipment/modules/TechnicalStatusEquipmentSelect'
+
+  export default {
+    name: 'TechnicalStatusEvaluationApprovalModal',
+    mixins: [JVxeTableModelMixin],
+    components: {
+      TechnicalStatusEquipmentSelect,
+      MaintenanceEquipmentSelect
+    },
+    props: {
+      selectShenpiData: {
+        type: Object
+      }
+    },
+    data() {
+      return {
+        title: '鎿嶄綔',
+        visible: false,
+        model: {},
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 8 }
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 16 }
+        },
+        labelColLong: {
+          xs: { span: 24 },
+          sm: { span: 4 }
+        },
+        wrapperColLong: {
+          xs: { span: 24 },
+          sm: { span: 20 }
+        },
+        rightColLabelCol: {
+          xs: { span: 24 },
+          sm: { span: 9 }
+        },
+        rightColWrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 15 }
+        },
+        confirmLoading: false,
+        spinning: false,
+        imageSrc: null,
+        activeTabKey: 1,
+        validatorRules: {
+          confirmDealType: [
+            { required: true, message: '璇烽�夋嫨閫氳繃鎴栭┏鍥�!' }
+          ],
+          confirmComment: [
+            { required: true, message: '璇疯緭鍏ョ‘璁ゆ剰瑙�!' }
+          ],
+          leaderConfirmComment: [
+            { required: true, message: '璇疯緭鍏ュ垵楠屾敹鎰忚!' }
+          ]
+        },
+        url: {
+          queryById: '/eam/eamTechnicalStatusEvaluationOrder/queryById',
+          detail: '/eam/eamTechnicalStatusEvaluationOrderDetail/queryList',
+          approval: '/eam/eamTechnicalStatusEvaluationOrder/approval',
+          diagramView: '/assign/flow/diagramView'
+        },
+        disableSubmit: false,
+        selectedRowKeys: [],
+        detail: {
+          safetyEquipmentCheckList: [],
+          precisionCheckList: [],
+          otherCheckList: [],
+          safetyEquipmentCheckColumns: [
+            {
+              title: 'ID',
+              key: 'id',
+              type: JVXETypes.hidden
+            },
+            {
+              title: 'standardId',
+              key: 'standardId',
+              type: JVXETypes.hidden
+            },
+            {
+              title: '搴忓彿',
+              key: 'itemCode',
+              type: JVXETypes.normal,
+              align: 'center',
+              width: 60
+            },
+            {
+              title: '妫�鏌ラ」鐩�',
+              key: 'itemName',
+              type: JVXETypes.normal,
+              align: 'center'
+            },
+            {
+              title: '妫�鏌ョ粨鏋�',
+              key: 'safetyEquipmentCheckResult',
+              type: JVXETypes.slot,
+              slotName: 'safetyEquipmentCheckResult',
+              validateRules: [{ handler: this.customValidate }],
+              align: 'center'
+            }
+          ],
+          precisionCheckColumns: [
+            {
+              title: 'ID',
+              key: 'id',
+              type: JVXETypes.hidden
+            },
+            {
+              title: 'standardId',
+              key: 'standardId',
+              type: JVXETypes.hidden
+            },
+            {
+              title: '搴忓彿',
+              key: 'itemCode',
+              type: JVXETypes.normal,
+              align: 'center',
+              width: 60
+            },
+            {
+              title: '妫�鏌ラ」鐩�',
+              key: 'itemName',
+              type: JVXETypes.normal,
+              align: 'center'
+            },
+            {
+              title: '妫�鏌ュ瓙椤圭洰',
+              key: 'subItemName',
+              type: JVXETypes.normal,
+              align: 'center'
+            },
+            {
+              title: '鍏佸樊鍊�',
+              key: 'toleranceValue',
+              type: JVXETypes.normal,
+              align: 'center'
+            },
+            {
+              title: '妫�鏌ョ粨鏋�',
+              key: 'precisionCheckResult',
+              type: JVXETypes.slot,
+              slotName: 'precisionCheckResult',
+              align: 'center',
+              validateRules: [{ handler: this.customValidate }]
+            }
+          ],
+          otherCheckColumns: [
+            {
+              title: 'ID',
+              key: 'id',
+              type: JVXETypes.hidden
+            },
+            {
+              title: 'standardId',
+              key: 'standardId',
+              type: JVXETypes.hidden
+            },
+            {
+              title: '搴忓彿',
+              key: 'itemCode',
+              type: JVXETypes.normal,
+              align: 'center',
+              width: 60
+            },
+            {
+              title: '妫�鏌ラ」鐩�',
+              key: 'itemName',
+              type: JVXETypes.normal,
+              align: 'center'
+            },
+            {
+              title: '妫�鏌ョ粨鏋�',
+              key: 'otherCheckResult',
+              type: JVXETypes.slot,
+              slotName: 'otherCheckResult',
+              align: 'center',
+              validateRules: [{ handler: this.customValidate }]
+            }
+          ]
+        }
+      }
+    },
+    computed: {
+      confirmDisable: function() {
+        return ['WAIT_ADMIN_CONFIRM', 'WAIT_INSPECTOR_CONFIRM', 'COMPLETE'].includes(this.model.maintenanceStatus)
+      },
+      inspectorConfirmDisable: function() {
+        return ['WAIT_INSPECTOR_CONFIRM', 'COMPLETE'].includes(this.model.maintenanceStatus)
+      },
+      completionDisable: function() {
+        return ['COMPLETE'].includes(this.model.maintenanceStatus)
+      }
+    },
+    methods: {
+      /**
+       * 涓婚〉闈㈢偣鍑绘墽琛屽鎵规椂瑙﹀彂
+       * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍
+       */
+      async handleDetail(record) {
+        this.initParams()
+        this.getFlowChartImageByApi(record)
+        let res = await getAction(this.url.queryById, { id: record.dataId })
+        this.model = Object.assign({}, res.result)
+        this.model.dataId = record.dataId
+        this.model.taskId = record.id
+        this.model.userId = record.assignee
+        this.model.instanceId = record.procInstId
+        this.loadDetail(record.dataId)
+      },
+
+      /**
+       * 涓婚〉闈㈢偣鍑昏鎯呮椂瑙﹀彂
+       * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍
+       */
+      recordDetail(record) {
+        this.initParams()
+        this.model = Object.assign({}, record)
+        this.loadDetail(record.id)
+      },
+
+      /**
+       * 鑾峰彇娴佺▼鍥�
+       * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍
+       */
+      getFlowChartImageByApi(record) {
+        const { processDefinitionId, processInstanceId, processDefinitionKey } = record
+
+        downFile(this.url.diagramView, {
+          processDefinitionId,
+          processInstanceId,
+          TaskDefinitionKey: processDefinitionKey
+        }, 'get')
+          .then((res => {
+            this.imageSrc = window.URL.createObjectURL(new Blob([res]))
+          }))
+          .catch(err => {
+            this.$notification.error({
+              message: '娑堟伅',
+              description: res.message
+            })
+          })
+      },
+
+      async handleOk() {
+        const that = this
+
+        let errMap
+        if (that.$refs['editableDetailTable' + this.activeTabKey]) {
+          // 鏍¢獙褰撳墠tab琛ㄦ牸
+          errMap = await that.$refs['editableDetailTable' + this.activeTabKey].validateTable()
+        } else {
+          // 褰撳墠tab涓嶆槸琛ㄦ牸鏃跺垯鏍¢獙鏈夎〃鏍肩殑
+          for (let index = 1; index <= 3; index++) {
+            if (that.$refs['editableDetailTable' + index]) {
+              errMap = await that.$refs['editableDetailTable' + index].validateTable()
+              if (errMap) {
+                that.activeTabKey = index
+                that.$refs['editableDetailTable' + this.activeTabKey].clearValidate()
+                that.$notification.warning({
+                  message: '娑堟伅',
+                  description: '妫�鏌ョ粨鏋滀笉鑳戒负绌�'
+                })
+                break
+              }
+            }
+          }
+        }
+        if (errMap) return
+
+
+        // 瑙﹀彂琛ㄥ崟楠岃瘉
+        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
+              }
+            }
+            console.log('model', this.model.tableDetailList)
+            //
+            // httpAction(this.url.approval, this.model, 'put')
+            //   .then((res) => {
+            //     if (res.success) {
+            //       that.$notification.success({
+            //         message: '娑堟伅',
+            //         description: res.message
+            //       })
+            //       that.$emit('modalFormOk')
+            //       that.close()
+            //     } else {
+            //       that.$notification.warning({
+            //         message: '娑堟伅',
+            //         description: res.message
+            //       })
+            //     }
+            //   })
+            //   .finally(() => {
+            //     that.confirmLoading = that.spinning = false
+            //   })
+          } else {
+            return false
+          }
+        })
+      },
+
+      autocompleteForm(selectObj) {
+        this.$set(this.model, 'standardName', selectObj.standardName)
+        this.$set(this.model, 'standardId', selectObj.id)
+        this.$set(this.model, 'equipmentId', selectObj.equipmentId)
+      },
+
+      //瑙勮寖閫夋嫨鍙樺寲
+      loadDetail(orderId) {
+        getAction(this.url.detail, { orderId })
+          .then(res => {
+            if (res.success) {
+              this.detail.safetyEquipmentCheckList = res.result.filter(item => item.checkCategory == 'SAFETY_EQUIPMENT_CHECK')
+              this.detail.precisionCheckList = res.result.filter(item => item.checkCategory == 'PRECISION_CHECK')
+              this.detail.otherCheckList = res.result.filter(item => item.checkCategory == 'OTHER_CHECK')
+            }
+          })
+          .finally(() => {
+            this.spinning = false
+          })
+      },
+
+      // 鍒濆鍖栨暟鎹�
+      initParams() {
+        this.model = {}
+        this.detail.safetyEquipmentCheckList = this.detail.precisionCheckList = this.detail.otherCheckList = []
+        this.visible = true
+        this.spinning = true
+        this.$nextTick(() => {
+          for (let index = 1; index <= 3; index++) {
+            if (this.$refs['editableDetailTable' + index]) {
+              this.activeTabKey = index
+              return
+            }
+          }
+        })
+      },
+
+      /**
+       * 妫�鏌ユ槑缁嗘爣绛惧垏鎹㈡椂瑙﹀彂
+       * @param tabKey 鍒囨崲鍚庣殑tabKey
+       */
+      handleTabChange(tabKey) {
+        if (this.$refs['editableDetailTable' + this.activeTabKey]) this.$refs['editableDetailTable' + this.activeTabKey].clearValidate()
+        this.activeTabKey = tabKey
+      },
+
+      /**
+       * 鑷畾涔夎〃鏍煎崟鍏冩牸鏍¢獙
+       * @param cellValue 鍗曞厓鏍煎��
+       * @param callback 缁撴灉鍥炶皟鍑芥暟
+       */
+      customValidate({ cellValue }, callback) {
+        if (cellValue) {
+          callback(true)
+        } else {
+          callback(false, '${title}涓嶈兘涓虹┖')
+        }
+      },
+
+      handleCancel() {
+        this.close()
+      },
+
+      close() {
+        this.$emit('close')
+        this.visible = false
+        this.$refs.form.clearValidate()
+      }
+    }
+  }
+</script>
+
+<style scoped>
+  /deep/ .ant-select-dropdown-menu {
+    text-align: left;
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue b/src/views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue
index a84d56e..ddf1a35 100644
--- a/src/views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue
+++ b/src/views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue
@@ -15,7 +15,7 @@
                     </a-form-model-item>
                   </a-col>
                   <a-col :span="12">
-                    <a-form-model-item label="璁惧缂栫爜">
+                    <a-form-model-item label="缁熶竴缂栫爜">
                       <maintenance-equipment-select v-model="model.equipmentId" maintenanceCategory="SECOND_MAINTENANCE"
                                                     @autocompleteForm="autocompleteForm" disabled/>
                     </a-form-model-item>

--
Gitblit v1.9.3