From 257ef0490f66229f983429f01872fac33eef13d0 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期四, 17 七月 2025 15:52:34 +0800
Subject: [PATCH] 三保工单审批流程

---
 src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue            |  561 ++++++--------------
 src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue                     |   60 -
 src/views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue |  999 ++++++++++++++++++++----------------
 3 files changed, 752 insertions(+), 868 deletions(-)

diff --git a/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue b/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue
index 8a321a6..215c2a4 100644
--- a/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue
+++ b/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue
@@ -47,38 +47,24 @@
              @change="handleTableChange">
         <span slot="action" slot-scope="text, record">
           <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'">
-            <a @click="handleEdit(record)">缂栬緫</a>
-
-            <a-divider type="vertical"/>
-
             <a-popconfirm title="纭畾棰嗗彇鍚�?" @confirm="() => handlerCollect(record.id)">
               <a>棰嗗彇</a>
             </a-popconfirm>
 
             <a-divider type="vertical"/>
 
-            <a-dropdown>
-              <a class="ant-dropdown-link">鏇村 <a-icon type="down"/></a>
-              <a-menu slot="overlay">
-                <a-menu-item>
-                  <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handlerAbolish(record.id)">
-                    <a>浣滃簾</a>
-                  </a-popconfirm>
-                </a-menu-item>
-                <a-menu-item>
-                  <a @click="handleDetail(record)">璇︽儏</a>
-                </a-menu-item>
-              </a-menu>
-            </a-dropdown>
+            <a @click="handlerAbolish(record.id)">浣滃簾</a>
+
+            <a-divider type="vertical"/>
           </template>
 
-          <template v-else>
-            <a @click="handleDetail(record)">璇︽儏</a>
+          <a @click="handleDetail(record)">璇︽儏</a>
+
+          <template v-if="record.maintenanceStatus === 'COMPLETE'">
+          <a-divider type="vertical"/>
+
+          <a @click="handlePrint(record)">鎵撳嵃</a>
           </template>
-
-          <a-divider v-if="record.maintenanceStatus === 'COMPLETE'" type="vertical"/>
-
-          <a v-if="record.maintenanceStatus === 'COMPLETE'" @click="handlePrint(record)">鎵撳嵃</a>
         </span>
     </a-table>
     <!-- table鍖哄煙-end -->
@@ -163,16 +149,6 @@
             title: '璁″垝淇濆吇鏃ユ湡',
             align: 'center',
             dataIndex: 'maintenanceDate'
-          },
-          {
-            title: '閿佸畾宸ュ崟鏃ユ湡',
-            align: 'center',
-            dataIndex: 'freezeOrderDate'
-          },
-          {
-            title: '宸ュ崟杩囨湡鏃ユ湡',
-            align: 'center',
-            dataIndex: 'orderExpirationDate'
           },
           {
             title: '瀹為檯寮�濮嬫椂闂�',
@@ -269,13 +245,21 @@
             align: 'center',
             dataIndex: 'inspectorSignatureTime'
           },
+          {
+            title: '绉讳氦鍗旽F缂栫爜',
+            align: 'center',
+            dataIndex: 'hfCodeA'
+          },
+          {
+            title: '楠屾敹鍗旽F缂栫爜',
+            align: 'center',
+            dataIndex: 'hfCodeB'
+          }
         ],
         url: {
           list: '/eam/thirdMaintenanceOrder/list',
           abolish: '/eam/thirdMaintenanceOrder/abolish',
-          abolishBatch: '/eam/thirdMaintenanceOrder/abolishBatch',
-          collect: '/eam/thirdMaintenanceOrder/collect',
-          collectBatch: '/eam/thirdMaintenanceOrder/collectBatch'
+          collect: '/eam/thirdMaintenanceOrder/collect'
         }
       }
     },
@@ -288,7 +272,6 @@
         dataIndex: 'action',
         align: 'center',
         fixed: 'right',
-        width: 200,
         scopedSlots: { customRender: 'action' }
       }
       this.columns = [...this.columns, operationColumn]
@@ -352,9 +335,10 @@
        */
       handleDetail(record) {
         this.selectThirdMaintenanceData = Object.assign({}, record)
-        this.$refs.thirdMaintenanceApprovalModal.recordDetail(record)
         this.$refs.thirdMaintenanceApprovalModal.title = '璇︽儏'
+        this.$refs.thirdMaintenanceApprovalModal.visible = true
         this.$refs.thirdMaintenanceApprovalModal.disableSubmit = true
+        this.$refs.thirdMaintenanceApprovalModal.recordDetail(record)
       },
 
       onMaintenanceDateChange(dateString) {
diff --git a/src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue b/src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue
index 47c06d1..144ba61 100644
--- a/src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue
+++ b/src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue
@@ -1,437 +1,220 @@
 <template>
-  <j-modal
-    :title="title"
-    :width="1200"
-    :visible="visible"
-    :confirmLoading="confirmLoading"
-    switchFullscreen
-    :mask-closable="false"
-    @ok="handleOk"
-    @cancel="handleCancel"
-    cancelText="鍏抽棴">
+  <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen centered
+           :mask-closable="false" @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴">
 
     <a-spin :spinning="spinning">
       <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
-        <a-row :gutter="24">
+        <a-row>
           <a-col :span="8">
             <a-form-model-item prop="orderNum" label="宸ュ崟鍙�">
-              <a-input placeholder="宸ュ崟鍙风郴缁熻嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled />
+              <a-input placeholder="宸ュ崟鍙风郴缁熻嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled/>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
-            <a-form-model-item prop="equipmentId" label="璁惧缂栫爜">
-              <maintenance-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="model.equipmentId"
-                                            :maintenanceCategory="maintenanceCategory"
-                                            @autocompleteForm="autocompleteForm"
-                                            :disabled="editable"></maintenance-equipment-select>
+            <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜">
+              <maintenance-equipment-select placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId"
+                                            maintenanceCategory="THIRD_MAINTENANCE" @autocompleteForm="autocompleteForm"
+                                            :disabled="editable"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
-            <a-form-model-item prop="standardName" label="鏍囧噯鍚嶇О">
-              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.standardName" disabled />
+            <a-form-model-item prop="standardName" label="瑙勮寖鍚嶇О">
+              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.standardName" disabled/>
             </a-form-model-item>
           </a-col>
         </a-row>
-        <a-row :gutter="24">
+
+        <a-row>
           <a-col :span="8">
             <a-form-model-item prop="maintenanceDate" label="淇濆吇鏃ユ湡">
               <a-date-picker placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" v-model="model.maintenanceDate" format="YYYY-MM-DD"
-                             style="width: 100%" />
+                             style="width: 100%"/>
             </a-form-model-item>
           </a-col>
-<!--          <a-col :span="8">-->
-<!--            <a-form-model-item prop="operator" label="淇濆吇浜�">-->
-<!--              <j-search-select-tag v-model="model.operator" placeholder="璇烽�夋嫨淇濆吇浜�" :disabled="!model.equipmentId"-->
-<!--                                   :dictOptions="maintenanceOperatorOptions" />-->
-<!--            </a-form-model-item>-->
-<!--          </a-col>-->
+
           <a-col :span="8">
             <a-form-model-item prop="maintenancePeriod" label="淇濆吇鍛ㄦ湡">
-              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled />
+              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled/>
             </a-form-model-item>
           </a-col>
         </a-row>
-        <a-row :gutter="24">
-          <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="remark" label="澶囨敞">
-            <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark" />
+
+        <a-row>
+          <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="澶囨敞">
+            <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark"/>
           </a-form-model-item>
         </a-row>
-        <a-row :gutter="24">
-          <a-tabs v-model="activeTabKey">
-            <a-tab-pane key="1" tab="淇濆吇椤�" :forceRender="true">
-              <j-vxe-table
-                ref="editableDetailTable"
-                :rowNumber="true"
-                :rowSelection="true"
-                :bordered="true"
-                :alwaysEdit="true"
-                :toolbar="true"
-                :toolbarConfig="detail.toolbarConfig"
-                keep-source
-                :height="300"
-                :dataSource="detail.dataSource"
-                :columns="detail.columns"
-                style="margin-top: 8px;" />
-            </a-tab-pane>
-          </a-tabs>
-        </a-row>
+
+        <a-tabs default-active-key="1">
+          <a-tab-pane key="1" tab="淇濆吇椤规槑缁�">
+            <j-vxe-table ref="editableDetailTable" bordered keep-source
+                         :height="300" :dataSource="detail.dataSource" :columns="detail.columns"/>
+          </a-tab-pane>
+        </a-tabs>
       </a-form-model>
     </a-spin>
   </j-modal>
 </template>
 
 <script>
-import { getAction, httpAction } from '@/api/manage'
-import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
-import { JVXETypes } from '@comp/jeecg/JVxeTable'
+  import { getAction, httpAction } from '@/api/manage'
+  import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
+  import { JVXETypes } from '@comp/jeecg/JVxeTable'
 
-export default {
-  name: 'EamThirdMaintenanceOrderModal',
-  components: { MaintenanceEquipmentSelect },
-  data() {
-    return {
-      title: '鎿嶄綔',
-      visible: false,
-      editable: false,
-      maintenanceCategory: 'THIRD_MAINTENANCE',
-      model: {},
-      labelCol: {
-        xs: { span: 24 },
-        sm: { span: 6 }
-      },
-      wrapperCol: {
-        xs: { span: 24 },
-        sm: { span: 16 }
-      },
-      labelColLong: {
-        xs: { span: 24 },
-        sm: { span: 2 }
-      },
-      wrapperColLong: {
-        xs: { span: 24 },
-        sm: { span: 21 }
-      },
-      confirmLoading: false,
-      spinning: false,
-      activeTabKey: '1',
-      maintenanceOperatorOptions: [],
-      validatorRules: {
-        equipmentId: [
-          { required: true, message: '璇烽�夋嫨璁惧!' }
-        ],
-        maintenanceDate: [
-          { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡!' }
-        ]
-      },
-      url: {
-        add: '/eam/thirdMaintenanceOrder/add',
-        edit: '/eam/thirdMaintenanceOrder/edit',
-        standardDetail: '/eam/eamMaintenanceStandardDetail/queryList',
-        detail: '/eam/thirdMaintenanceOrderDetail/queryList',
-        userSelect: '/eam/user_select/list',
-      },
-      detail: {
-        loading: false,
-        dataSource: [],
-        columns: [
-          {
-            title: 'ID',
-            key: 'id',
-            type: JVXETypes.hidden
-          },
-          {
-            title: 'orderId',
-            key: 'orderId',
-            type: JVXETypes.hidden
-          },
-          {
-            title: '搴忓彿',
-            key: 'itemCode',
-            type: JVXETypes.inputNumber,
-            width: '10%',
-            align: 'center',
-            validateRules: [
-              { required: true, unique: true, message: '搴忓彿涓嶈兘閲嶅' }
-            ]
-          },
-          {
-            title: '閮ㄤ綅',
-            key: 'itemPart',
-            type: JVXETypes.textarea,
-            width: '25%',
-            align: 'center'
-          },
-          {
-            title: '淇濆吇椤�',
-            key: 'itemName',
-            type: JVXETypes.textarea,
-            width: '20%',
-            align: 'center',
-            validateRules: [
-              { required: true, message: '淇濆吇椤逛笉鑳戒负绌猴紒' }
-            ]
-          },
-          {
-            title: '淇濆吇瑕佹眰',
-            key: 'itemDemand',
-            type: JVXETypes.textarea,
-            width: '30%',
-            align: 'center',
-            validateRules: [
-              { required: true, message: '淇濆吇瑕佹眰涓嶈兘涓虹┖锛�' }
-            ]
-          }
-        ],
-        toolbarConfig: {
-          // prefix 鍓嶇紑锛泂uffix 鍚庣紑
-          slot: ['prefix', 'suffix'],
-          // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳
-          btn: ['add', 'remove', 'clearSelection']
-        }
-      },
-      // precisionDetail: {
-      //   loading: false,
-      //   dataSource: [],
-      //   columns: [
-      //     {
-      //       title: 'ID',
-      //       key: 'id',
-      //       type: JVXETypes.hidden
-      //     },
-      //     {
-      //       title: 'orderId',
-      //       key: 'orderId',
-      //       type: JVXETypes.hidden
-      //     },
-      //     {
-      //       title: 'equipmentId',
-      //       key: 'equipmentId',
-      //       type: JVXETypes.hidden
-      //     },
-      //     {
-      //       title: 'parameterId',
-      //       key: 'parameterId',
-      //       type: JVXETypes.hidden
-      //     },
-      //     {
-      //       title: '妫�娴嬮」鐩�',
-      //       key: 'parameterId_dictText',
-      //       type: JVXETypes.normal,
-      //       width: '25%',
-      //       align: 'center'
-      //     },
-      //     {
-      //       title: '鍙傛暟缂栫爜',
-      //       key: 'parameterCode_dictText',
-      //       type: JVXETypes.normal,
-      //       width: '20%',
-      //       align: 'center',
-      //     },
-      //     {
-      //       title: '鍏佸樊鍊�',
-      //       key: 'parameterValue',
-      //       type: JVXETypes.normal,
-      //       width: '30%',
-      //       align: 'center',
-      //     }
-      //   ],
-      //   toolbarConfig: {
-      //     // prefix 鍓嶇紑锛泂uffix 鍚庣紑
-      //     slot: ['prefix', 'suffix'],
-      //     // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳
-      //     btn: ['add', 'remove', 'clearSelection']
-      //   }
-      // }
-    }
-  },
-  created() {
-  },
-  methods: {
-    add() {
-      this.initParams();
-      //鍒濆鍖栭粯璁ゅ��
-      this.model = {}
-      this.visible = true
-      this.editable = false
-      this.detail.dataSource = []
-    },
-    edit(record) {
-      this.initParams();
-      this.model = Object.assign({}, record)
-      this.visible = true
-      this.editable = true
-      this.detail.dataSource = []
-      this.loadDetail(record.id)
-      // this.loadPrecisionDetail(record.id)
-    },
-    close() {
-      this.$emit('close')
-      this.visible = false
-      this.$refs.form.clearValidate()
-    },
-    async handleOk() {
-      const that = this
-      let errMap = await that.$refs.editableDetailTable.validateTable()
-      if (errMap) {
-        this.$message.warning('鏁版嵁鏍¢獙澶辫触锛�')
-        return
-      }
-      // 瑙﹀彂琛ㄥ崟楠岃瘉
-      this.$refs.form.validate(valid => {
-        if (valid) {
-          let tableData = that.$refs.editableDetailTable.getTableData()
-          let removeData = that.$refs.editableDetailTable.getDeleteData()
-          that.model.tableDetailList = [...tableData]
-          that.model.removeDetailList = [...removeData]
-
-          that.confirmLoading = true
-          let httpurl = ''
-          let method = ''
-          if (!this.model.id) {
-            httpurl += this.url.add
-            method = 'post'
-          } else {
-            httpurl += this.url.edit
-            method = 'put'
-          }
-          httpAction(httpurl, this.model, method).then((res) => {
-            if (res.success) {
-              that.$message.success(res.message)
-              that.$emit('ok')
-              that.close()
-            } else {
-              that.$message.warning(res.message)
+  export default {
+    name: 'EamThirdMaintenanceOrderModal',
+    components: { MaintenanceEquipmentSelect },
+    data() {
+      return {
+        title: '鎿嶄綔',
+        visible: false,
+        model: {},
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 6 }
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 15 }
+        },
+        labelColLong: {
+          xs: { span: 24 },
+          sm: { span: 2 }
+        },
+        wrapperColLong: {
+          xs: { span: 24 },
+          sm: { span: 21 }
+        },
+        confirmLoading: false,
+        spinning: false,
+        validatorRules: {
+          equipmentId: [
+            { required: true, message: '璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�' }
+          ],
+          maintenanceDate: [
+            { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡!' }
+          ]
+        },
+        url: {
+          add: '/eam/thirdMaintenanceOrder/add',
+          standardDetail: '/eam/eamMaintenanceStandardDetail/queryList'
+        },
+        detail: {
+          dataSource: [],
+          columns: [
+            {
+              title: 'ID',
+              key: 'id',
+              type: JVXETypes.hidden
+            },
+            {
+              title: 'orderId',
+              key: 'orderId',
+              type: JVXETypes.hidden
+            },
+            {
+              title: '搴忓彿',
+              key: 'itemCode',
+              type: JVXETypes.normal,
+              width: 60,
+              align: 'center'
+            },
+            {
+              title: '淇濆吇閮ㄤ綅',
+              key: 'itemPart',
+              type: JVXETypes.normal,
+              align: 'center'
+            },
+            {
+              title: '淇濆吇鍐呭',
+              key: 'itemName',
+              type: JVXETypes.normal,
+              align: 'center'
+            },
+            {
+              title: '楠屾敹鏍囧噯',
+              key: 'itemDemand',
+              type: JVXETypes.normal,
+              align: 'center'
             }
-          }).finally(() => {
-            that.confirmLoading = false
-          })
-        } else {
-          return false
+          ]
         }
-      })
-    },
-    handleCancel() {
-      this.close()
-    },
-    autocompleteForm(selectObj) {
-      //鏍囧噯鍚嶇О锛屼繚鍏诲懆鏈熶笉鍒锋柊瑙e喅鍔炴硶
-      //鍔炴硶涓�  validatorRules equipmentId 杩樻槸鏈夐棶棰�
-      // const newObj = {
-      //   standardName: selectObj.standardName,
-      //   maintenancePeriod: selectObj.maintenancePeriod,
-      //   standardId : selectObj.id,
-      //   equipmentId: selectObj.equipmentId,
-      // };
-      // this.model = Object.assign({}, newObj, this.model)
-      //鍔炴硶浜�
-      this.$set(this.model, 'standardName', selectObj.standardName)
-      this.$set(this.model, 'maintenancePeriod', selectObj.maintenancePeriod)
-      this.$set(this.model, 'standardId', selectObj.id)
-      this.$set(this.model, 'equipmentId', selectObj.equipmentId)
-      // console.log('model', this.model)
-      if (!this.model.equipmentId) delete this.model.operator
-      if (!this.model.id) {
-        this.loadStandardDetail(selectObj.id)
-        this.loadPrecisionParameterList(selectObj.equipmentId)
       }
-      this.loadMaintenanceOperatorList(this.model.equipmentId)
     },
-    //鍔犺浇璇︽儏鏁版嵁
-    loadStandardDetail(standardId) {
-      this.detail.dataSource = []
-      if (standardId) {
+    methods: {
+      add() {
+        //鍒濆鍖栭粯璁ゅ��
+        this.model = {}
+        this.detail.dataSource = []
+        this.visible = true
+      },
+
+      async handleOk() {
+        const that = this
+        let errMap = await that.$refs.editableDetailTable.validateTable()
+        if (errMap) return
+        // 瑙﹀彂琛ㄥ崟楠岃瘉
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            that.model.tableDetailList = that.$refs.editableDetailTable.getTableData()
+            that.confirmLoading = that.spinning = true
+            httpAction(that.url.add, that.model, 'post')
+              .then((res) => {
+                if (res.success) {
+                  that.$notification.success({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                  that.$emit('ok')
+                  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, 'maintenancePeriod', selectObj.maintenancePeriod)
+        this.$set(this.model, 'standardId', selectObj.id)
+        this.$set(this.model, 'equipmentId', selectObj.equipmentId)
+        this.loadStandardDetail(selectObj.id)
+      },
+
+      //鍔犺浇璇︽儏鏁版嵁
+      loadStandardDetail(standardId) {
+        this.detail.dataSource = []
         this.spinning = true
-        getAction(this.url.standardDetail, { standardId: standardId })
+        getAction(this.url.standardDetail, { standardId })
           .then(res => {
             if (res.success) {
-              this.detail.dataSource = res.result.map(item => ({
-                itemCode: item.itemCode,
-                itemName: item.itemName,
-                itemPart: item.itemPart,
-                itemDemand: item.itemDemand
-              }))
+              this.detail.dataSource = res.result
             }
           })
           .finally(() => {
             this.spinning = false
           })
+      },
+
+      handleCancel() {
+        this.close()
+      },
+
+      close() {
+        this.$emit('close')
+        this.visible = false
+        this.$refs.form.clearValidate()
       }
-    },
-    //鏍囧噯閫夋嫨鍙樺寲
-    loadDetail(orderId) {
-      if (orderId) {
-        getAction(this.url.detail, { orderId: orderId }).then(res => {
-          if (res.success) {
-            this.detail.dataSource = [...res.result]
-          }
-        })
-      }
-    },
-    loadMaintenanceOperatorList(equipmentId) {
-      this.maintenanceOperatorOptions = []
-      let params = { positionCode: 'PCR0001' }
-      if (equipmentId) {
-        params.equipmentId = equipmentId
-      } else {
-        return
-      }
-      const that = this
-      getAction(this.url.userSelect, params)
-        .then(res => {
-          if (res.success) {
-            that.maintenanceOperatorOptions = res.result.map(item => ({
-              key: item.id,
-              value: item.username,
-              text: item.realname
-            }))
-            if (!that.maintenanceOperatorOptions.find(item => item.value === that.model.operator)) delete that.model.operator
-          } else {
-            if (that.model.operator) delete that.model.operator
-          }
-        })
-        .catch(err => {
-          if (that.model.operator) delete that.model.operator
-        })
-    },
-    // loadPrecisionParameterList(equipmentId) {
-    //   this.precisionDetail.dataSource = []
-    //   if (equipmentId) {
-    //     this.spinning = true
-    //     getAction(this.url.precisionDetail, { equipmentId: equipmentId })
-    //       .then(res => {
-    //         if (res.success) {
-    //           this.precisionDetail.dataSource = res.result.map(item => ({
-    //             equipmentId: item.equipmentId,
-    //             parameterId: item.parameterId,
-    //             parameterId_dictText: item.parameterId_dictText,
-    //             parameterCode_dictText: item.parameterCode_dictText,
-    //             parameterValue: item.parameterValue,
-    //           }))
-    //         }
-    //       })
-    //       .finally(() => {
-    //         this.spinning = false
-    //       })
-    //   }
-    // },
-    // loadPrecisionDetail(orderId) {
-    //   if (orderId) {
-    //     getAction(this.url.precisionCheckDetail, { orderId: orderId }).then(res => {
-    //       if (res.success) {
-    //         this.precisionDetail.dataSource = [...res.result]
-    //       }
-    //     })
-    //   }
-    // },
-    initParams() {
-      this.detail.dataSource = []
-      // this.precisionDetail.dataSource = []
-      this.activeTabKey = '1'
-    },
+    }
   }
-}
-</script>
-
-<style lang="less" scoped>
-
-</style>
\ No newline at end of file
+</script>
\ No newline at end of file
diff --git a/src/views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue b/src/views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue
index 8d86f59..db0962e 100644
--- a/src/views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue
+++ b/src/views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue
@@ -1,184 +1,223 @@
 <template>
-  <j-modal
-    :title="title"
-    :width="1200"
-    :visible="visible"
-    :confirmLoading="confirmLoading"
-    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
-    switchFullscreen
-    @ok="handleOk"
-    @cancel="handleCancel"
-    centered
-    cancelText="鍏抽棴">
+  <j-modal :title="title" :visible="visible" :confirmLoading="confirmLoading"
+           :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" fullscreen @ok="handleOk" @cancel="handleCancel"
+           cancelText="鍏抽棴">
 
     <a-spin :spinning="spinning">
-      <a-form-model ref="form" :model="model" :rules="validatorRules">
-        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 淇濆吇鍩虹淇℃伅
-        </a-divider>
-        <a-row :gutter="24">
-          <a-col :span="8">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderNum" label="宸ュ崟鍙�">
-              <a-input placeholder="宸ュ崟鍙风郴缁熻嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="8">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="璁惧缂栫爜">
-              <maintenance-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="model.equipmentId"
-                                            :maintenanceCategory="maintenanceCategory"
-                                            @autocompleteForm="autocompleteForm"
-                                            disabled></maintenance-equipment-select>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="8">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardName" label="鏍囧噯鍚嶇О">
-              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.standardName" disabled/>
-            </a-form-model-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-col :span="8">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="maintenanceDate" label="淇濆吇鏃ユ湡">
-              <a-date-picker placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" v-model="model.maintenanceDate" format="YYYY-MM-DD"
-                             disabled
-                             style="width: 100%"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="8">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator" label="淇濆吇浜�">
-              <j-search-select-tag v-model="model.operator" placeholder="璇烽�夋嫨淇濆吇浜�" disabled
-                                   :dictOptions="maintenanceOperatorOptions"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="8">
-            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="maintenancePeriod" label="淇濆吇鍛ㄦ湡">
-              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled/>
-            </a-form-model-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="remark" label="澶囨敞">
-            <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.remark" disabled/>
-          </a-form-model-item>
-        </a-row>
-        <a-row :gutter="24">
-          <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="淇濆吇鍥剧墖">
-            <lx-upload :returnUrl="false"
-                       :isMultiple="true"
-                       file-type="image"
-                       :disabled="confirmDisable"
-                       :number="3"
-                       v-model="model.imageFilesResult"/>
-          </a-form-model-item>
-        </a-row>
-        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 淇濆吇椤逛俊鎭�
-        </a-divider>
-        <a-row :gutter="24">
-          <a-tabs v-model="activeTabKey">
-            <a-tab-pane key="1" tab="淇濆吇椤规槑缁�" v-if="!isPrecisionCheck">
-              <j-vxe-table
-                ref="editableDetailTable"
-                :rowNumber="false"
-                :rowSelection="true"
-                :bordered="true"
-                :alwaysEdit="true"
-                :toolbar="false"
-                keep-source
-                :height="300"
-                :loading="detail.loading"
-                :dataSource="detail.dataSource"
-                :columns="detail.columns"
-                @selectRowChange="handleTableSelectRowChange"
-              >
-                <template v-slot:maintenanceResult="props">
-                  <j-dict-select-tag v-model="props.row.maintenanceResult" dictCode="eam_inspection_result"
-                                     placeholder="璇烽�夋嫨淇濆吇缁撴灉"
-                                     :disabled="disableSubmit || confirmDisable"
-                                     @change="handleInspectionResultSelectChange($event,props.row)"
-                                     style="width: 100%"/>
-                </template>
+      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
+        <a-row :gutter="24" id="outer-row">
+          <a-col :span="8" class="scroll-col">
+            <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="缁熶竴缂栫爜">
+                      <maintenance-equipment-select v-model="model.equipmentId" maintenanceCategory="THIRD_MAINTENANCE"
+                                                    @autocompleteForm="autocompleteForm" disabled/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
 
-                <template v-slot:exceptionDescription="props">
-                  <a-textarea style="height: 32px" v-model="props.row.exceptionDescription"
-                              :disabled="disableSubmit || confirmDisable || !props.row.maintenanceResult || props.row.maintenanceResult === '1'"/>
-                </template>
+                <a-row>
+                  <a-col :span="12">
+                    <a-form-model-item label="瑙勮寖鍚嶇О">
+                      <a-input v-model="model.standardName" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="12">
+                    <a-form-model-item label="淇濆吇鏃ユ湡">
+                      <a-input v-model="model.maintenanceDate" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
 
-                <template v-slot:reportFlag="props">
-                  <j-dict-select-tag v-model="props.row.reportFlag"
-                                     :disabled="disableSubmit || confirmDisable || !props.row.maintenanceResult || props.row.maintenanceResult === '1'"
-                                     dictCode="yn"
-                                     style="width: 100%"/>
-                </template>
-              </j-vxe-table>
-            </a-tab-pane>
-<!--            <a-tab-pane key='4' tab='绮惧害妫�楠�' v-if="!isMaintenance">-->
-<!--              <j-vxe-table-->
-<!--                ref="editablePrecisionDetailTable"-->
-<!--                :rowNumber="true"-->
-<!--                :rowSelection="true"-->
-<!--                :bordered="true"-->
-<!--                :alwaysEdit="true"-->
-<!--                :toolbar="false"-->
-<!--                :toolbarConfig="precisionDetail.toolbarConfig"-->
-<!--                keep-source-->
-<!--                :height="300"-->
-<!--                :dataSource="precisionDetail.dataSource"-->
-<!--                :columns="precisionDetail.columns"-->
-<!--                style="margin-top: 8px;" >-->
-<!--                <template v-slot:actualValue="props">-->
-<!--                  <a-input-number v-model="props.row.actualValue" :disabled="disableSubmit || confirmDisable" style="width: 100%" />-->
-<!--                </template>-->
-<!--              </j-vxe-table>-->
-<!--            </a-tab-pane>-->
-            <template v-if="selectShenpiData.procInstId">
-              <a-tab-pane key='2' tab='娴佺▼鑺傜偣'>
-                <a-card :bordered="false">
-                  <a-timeline>
-                    <a-timeline-item v-for="(item,index) in taskData" :key="index">
-                      <div>
-                        <h3 style="font-weight: bold;">{{item.taskName}}</h3>
-                        <div>澶勭悊浜猴細{{item.assignee_dictText}}</div>
-                        <div v-if="index !==0">澶勭悊鏃堕暱锛歿{item.duration}}</div>
-                        <div v-if="item.name !== '鎻愪氦鐢宠'">澶勭悊绫诲瀷锛歿{item.sequenceFlowName}}</div>
-                        <div v-if="item.description">澶勭悊鎰忚锛歿{item.description}}</div>
-                      </div>
-                    </a-timeline-item>
-                  </a-timeline>
-                </a-card>
+                <a-row>
+                  <a-col :span="12">
+                    <a-form-model-item label="缁翠慨浜�">
+                      <a-input v-model="model.repairman_dictText" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span="12">
+                    <a-form-model-item label="淇濆吇鍛ㄦ湡">
+                      <a-input v-model="model.maintenancePeriod" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+
+                <a-row>
+                  <a-col :span="24">
+                    <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" label="澶囨敞">
+                      <a-textarea v-model="model.remark" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
               </a-tab-pane>
-              <a-tab-pane key='3' tab='娴佺▼鍥�'>
-                <img :src="imageSrc" alt="Fetched Image"/>
+            </a-tabs>
+          </a-col>
+
+          <a-col :span="model.maintenanceStatus&&model.maintenanceStatus!='WAIT_MAINTENANCE'?10:16" class="scroll-col">
+            <a-tabs v-model="activeTabKey" @change="$refs.editableDetailTable.clearValidate()">
+              <a-tab-pane key="1" tab="淇濆吇椤规槑缁�">
+                <j-vxe-table ref="editableDetailTable" rowSelection bordered alwaysEdit keep-source :height="300"
+                             :dataSource="detail.dataSource" :columns="detail.columns"
+                             @selectRowChange="handleTableSelectRowChange">
+                  <!--淇濆吇缁撴灉-->
+                  <template v-slot:maintenanceResult="props">
+                    <j-dict-select-tag v-model="props.row.maintenanceResult" dictCode="third_maintenance_result"
+                                       placeholder="璇烽�夋嫨淇濆吇缁撴灉"
+                                       :disabled="disableSubmit || (model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')"
+                                       @change="handleResultSelectChange($event,props.row,'exceptionDescription')"
+                                       style="width: 100%"/>
+                  </template>
+
+                  <!--淇濆吇寮傚父鎻忚堪-->
+                  <template v-slot:exceptionDescription="props">
+                    <a-textarea :rows="1" :autoSize="false" v-model="props.row.exceptionDescription"
+                                :placeholder="props.row.maintenanceResult&&props.row.maintenanceResult!='NORMAL'?'璇疯緭鍏ュ紓甯告弿杩�':''"
+                                @blur="$refs.editableDetailTable.validateTable"
+                                :disabled="disableSubmit ||
+                                (model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE') ||
+                                !props.row.maintenanceResult ||
+                                props.row.maintenanceResult === 'NORMAL'"/>
+                  </template>
+
+                  <!--绗竴娆¢獙鏀剁粨鏋�-->
+                  <template v-slot:firstInspectResult="props">
+                    <j-dict-select-tag v-model="props.row.firstInspectResult"
+                                       placeholder="璇烽�夋嫨楠屾敹缁撴灉"
+                                       @change="handleResultSelectChange($event,props.row,'firstInspectException')"
+                                       :disabled="disableSubmit ||(model.maintenanceStatus&&model.maintenanceStatus!='UNDER_FIRST_ACCEPTANCE')"
+                                       dictCode="check_status" style="width: 100%"/>
+                  </template>
+
+                  <!--绗竴娆¢獙鏀跺紓甯告弿杩�-->
+                  <template v-slot:firstInspectException="props">
+                    <a-textarea :rows="1" v-model="props.row.firstInspectException"
+                                :placeholder="props.row.firstInspectResult&&props.row.firstInspectResult!='1'?'璇疯緭鍏ュ紓甯告弿杩�':''"
+                                @blur="$refs.editableDetailTable.validateTable"
+                                :disabled="disableSubmit ||
+                                (model.maintenanceStatus&&model.maintenanceStatus!='UNDER_FIRST_ACCEPTANCE')||
+                                !props.row.firstInspectResult ||
+                                props.row.firstInspectResult === '1'"
+                                dictCode="check_status" style="width: 100%;resize:none"/>
+                  </template>
+
+                  <!--绗簩娆¢獙鏀剁粨鏋�-->
+                  <template v-slot:secondInspectResult="props">
+                    <j-dict-select-tag v-model="props.row.secondInspectResult"
+                                       placeholder="璇烽�夋嫨楠屾敹缁撴灉"
+                                       @change="handleResultSelectChange($event,props.row,'secondInspectException')"
+                                       disabled dictCode="check_status" style="width: 100%"/>
+                  </template>
+
+                  <!--绗簩娆¢獙鏀跺紓甯告弿杩�-->
+                  <template v-slot:secondInspectException="props">
+                    <a-textarea :rows="1" v-model="props.row.secondInspectException"
+                                :placeholder="props.row.secondInspectResult&&props.row.secondInspectResult!='1'?'璇疯緭鍏ュ紓甯告弿杩�':''"
+                                @blur="$refs.editableDetailTable.validateTable"
+                                :disabled="disableSubmit ||
+                                (model.maintenanceStatus&&model.maintenanceStatus!='UNDER_SECOND_ACCEPTANCE')||
+                                !props.row.secondInspectResult ||
+                                props.row.secondInspectResult === '1'"
+                                dictCode="check_status" style="width: 100%;resize:none"/>
+                  </template>
+                </j-vxe-table>
               </a-tab-pane>
-            </template>
-            <a-button v-if="!disableSubmit &&!confirmDisable&& selectedRowKeys.length > 0" slot="tabBarExtraContent"
-                      type="primary" @click="handleSelectAllInspectionResult">淇濆吇姝e父
-            </a-button>
-          </a-tabs>
+              <template v-if="selectShenpiData.procInstId">
+                <a-tab-pane key='2' tab='娴佺▼鍥�'>
+                  <img :src="imageSrc" alt="Fetched Image"/>
+                </a-tab-pane>
+              </template>
+
+              <template slot="tabBarExtraContent">
+                <a-space>
+                  <a-button
+                    v-if="activeTabKey=='1'"
+                    :disabled="disableSubmit || (model.maintenanceStatus&&model.maintenanceStatus!='UNDER_MAINTENANCE')||selectedRowKeys.length == 0"
+                    type="primary" @click="handleSelectAllMaintenanceResult">鎵归噺淇濆吇姝e父
+                  </a-button>
+                  <a-button
+                    v-if="activeTabKey=='1'"
+                    :disabled="disableSubmit || (model.maintenanceStatus&&model.maintenanceStatus!='UNDER_FIRST_ACCEPTANCE')||selectedRowKeys.length == 0"
+                    type="primary" @click="handleSelectAllFirstAcceptanceResult">鎵归噺楠屾敹閫氳繃
+                  </a-button>
+                </a-space>
+              </template>
+            </a-tabs>
+          </a-col>
+
+          <a-col v-if="model.maintenanceStatus&&model.maintenanceStatus!='WAIT_MAINTENANCE'" :span="6"
+                 class="scroll-col">
+            <a-tabs v-if="displayEvaluationFlag">
+              <a-tab-pane tab="淇濆吇鍓嶆妧鏈姸鎬侀壌瀹�">
+                <a-form-model-item :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol"
+                                   prop="fullyFunctional" label="璁惧鍔熻兘鏄惁榻愬叏">
+                  <j-dict-select-tag type='radio' v-model='model.fullyFunctional' dictCode='yn'
+                                     @change="handleCheckRadioChange"
+                                     :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='WAIT_CHECK')"/>
+                </a-form-model-item>
+                <a-form-model-item :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol"
+                                   prop="runningNormally" label="璁惧鑳藉惁姝e父杩愯浆">
+                  <j-dict-select-tag type='radio' v-model='model.runningNormally' dictCode='yn'
+                                     @change="handleCheckRadioChange"
+                                     :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='WAIT_CHECK')"/>
+                </a-form-model-item>
+                <a-form-model-item v-if="model.fullyFunctional=='0'||model.runningNormally=='0'"
+                                   :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol" label="闂鎻忚堪">
+                  <a-textarea v-model='model.problemDescription' placeholder="璇锋弿杩伴棶棰�"
+                              :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='WAIT_CHECK')"/>
+                </a-form-model-item>
+              </a-tab-pane>
+            </a-tabs>
+
+            <a-tabs v-if="displayOperatorFlag">
+              <a-tab-pane tab="鎿嶄綔浜虹‘璁�">
+                <a-form-model-item :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol" label="纭绫诲瀷">
+                  <j-dict-select-tag v-model="model.operatorSignatureResult" type="radio" disabled dict-code="yn"/>
+                </a-form-model-item>
+                <a-form-model-item :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol" label="鍗忓姪鎿嶄綔浜�">
+                  <a-input v-model="model.assistantOperator"
+                           :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='OPERATOR_SIGNATURE')"
+                           placeholder="璇疯緭鍏ュ崗鍔╂搷浣滀汉"/>
+                </a-form-model-item>
+              </a-tab-pane>
+            </a-tabs>
+
+            <a-tabs v-if="displayRepairerFlag">
+              <a-tab-pane tab="缁翠慨浜虹‘璁�">
+                <a-form-model-item :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol" label="纭绫诲瀷">
+                  <j-dict-select-tag v-model="model.repairmanSignatureResult" type="radio" disabled dict-code="yn"/>
+                </a-form-model-item>
+                <a-form-model-item :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol" label="鍗忓姪缁翠慨浜�">
+                  <a-input v-model="model.assistantRepairman"
+                           :disabled="disableSubmit||(model.maintenanceStatus&&model.maintenanceStatus!='REPAIRMAN_SIGNATURE')"
+                           placeholder="璇疯緭鍏ュ崗鍔╃淮淇汉"/>
+                </a-form-model-item>
+              </a-tab-pane>
+            </a-tabs>
+
+            <a-tabs v-if="displayRepairLeaderFlag">
+              <a-tab-pane tab="缁翠慨瀹や富浠荤‘璁�">
+                <a-form-model-item :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol" label="纭绫诲瀷">
+                  <j-dict-select-tag v-model="model.repairManagerSignatureResult" type="radio" disabled dict-code="yn"/>
+                </a-form-model-item>
+              </a-tab-pane>
+            </a-tabs>
+
+            <a-tabs v-if="displayInspectorFlag">
+              <a-tab-pane tab="妫�鏌ヤ汉纭">
+                <a-form-model-item :labelCol="rightColLabelCol" :wrapperCol="rightColWrapperCol" label="纭绫诲瀷">
+                  <j-dict-select-tag v-model="model.inspectorSignatureResult" type="radio" disabled dict-code="yn"/>
+                </a-form-model-item>
+              </a-tab-pane>
+            </a-tabs>
+          </a-col>
         </a-row>
-        <div v-if="confirmDisable">
-          <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 鏈哄姩鍔炵‘璁や俊鎭�
-          </a-divider>
-          <a-row :gutter="24">
-            <a-col :span="24">
-              <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="confirmComment" label="纭鎰忚">
-                <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.confirmComment"
-                            :disabled="disableSubmit || leaderConfirmDisable"/>
-              </a-form-model-item>
-            </a-col>
-          </a-row>
-        </div>
-        <div v-if="leaderConfirmDisable">
-          <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 棰嗗纭淇℃伅
-          </a-divider>
-          <a-row :gutter="24">
-            <a-col :span="24">
-              <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="leaderConfirmComment"
-                                 label="棰嗗鎰忚">
-                <a-textarea placeholder="璇疯緭鍏ユ剰瑙�" v-model="model.leaderConfirmComment"
-                            :disabled="disableSubmit || completionDisable"/>
-              </a-form-model-item>
-            </a-col>
-          </a-row>
-        </div>
       </a-form-model>
     </a-spin>
   </j-modal>
@@ -189,11 +228,13 @@
   import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
   import { JVXETypes } from '@comp/jeecg/JVxeTable'
   import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect'
+  import ATextarea from 'ant-design-vue/es/input/TextArea'
 
   export default {
     name: 'ThirdMaintenanceApprovalModal',
     mixins: [JVxeTableModelMixin],
     components: {
+      ATextarea,
       MaintenanceEquipmentSelect
     },
     props: {
@@ -205,15 +246,7 @@
       return {
         title: '鎿嶄綔',
         visible: false,
-        //鐘舵�佹帶鍒�
-        //淇濆吇涓� 涓嶅彲缂栬緫
-        // confirmDisable: false,
-        // initialAcceptanceDisable: false,
-        // finalAcceptanceDisable: false,
-        editable: false,
         model: {},
-        maintenanceCategory: 'SECOND_MAINTENANCE',
-        maintenanceOperatorOptions: [],
         labelCol: {
           xs: { span: 24 },
           sm: { span: 6 }
@@ -224,42 +257,40 @@
         },
         labelColLong: {
           xs: { span: 24 },
-          sm: { span: 2 }
+          sm: { span: 3 }
         },
         wrapperColLong: {
           xs: { span: 24 },
-          sm: { span: 21 }
+          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: {
-          confirmComment: [
-            { required: true, message: '璇疯緭鍏ョ‘璁ゆ剰瑙�!' }
-          ],
-          leaderConfirmComment: [
-            { required: true, message: '璇疯緭鍏ュ垵楠屾敹鎰忚!' }
-          ],
+          fullyFunctional: [{ required: true, message: '璇烽�夋嫨璁惧鍔熻兘鏄惁榻愬叏' }],
+          runningNormally: [{ required: true, message: '璇烽�夋嫨璁惧鑳藉惁姝e父杩愯浆' }]
         },
         url: {
           queryById: '/eam/thirdMaintenanceOrder/queryById',
           detail: '/eam/thirdMaintenanceOrderDetail/queryList',
           approval: '/eam/thirdMaintenanceOrder/approval',
-          userSelect: '/eam/user_select/list',
-          queryHisTaskList: '/assign/flow/queryHisTaskList',
-          diagramView: '/assign/flow/diagramView',
-          // precisionCheckDetail: '/eam/precisionCheckDetail/queryList',
+          diagramView: '/assign/flow/diagramView'
         },
         disableSubmit: false,
-        taskData: [],
-        isDisplayBmp: false,
-        showBmpButtonLoading: false,
         selectedRowKeys: [],
         detail: {
-          loading: false,
           dataSource: [],
-          columns: [
+          columns: [],
+          defaultColumns: [
             {
               title: 'ID',
               key: 'id',
@@ -274,322 +305,338 @@
               title: '搴忓彿',
               key: 'itemCode',
               type: JVXETypes.normal,
-              width: '5%',
+              width: 60,
               align: 'center'
             },
             {
-              title: '淇濆吇椤�',
+              title: '淇濆吇閮ㄤ綅',
+              key: 'itemPart',
+              type: JVXETypes.normal,
+              width: 120,
+              align: 'center'
+            },
+            {
+              title: '淇濆吇鍐呭',
               key: 'itemName',
               type: JVXETypes.normal,
-              width: '10%',
+              width: 120,
               align: 'center'
             },
             {
-              title: '淇濆吇瑕佹眰',
+              title: '楠屾敹鏍囧噯',
               key: 'itemDemand',
               type: JVXETypes.normal,
-              width: '20%',
+              width: 120,
               align: 'center'
             },
             {
               title: '淇濆吇缁撴灉',
               key: 'maintenanceResult',
               type: JVXETypes.slot,
-              width: '10%',
               align: 'center',
+              width: 200,
               slotName: 'maintenanceResult',
               validateRules: [
-                { required: true, message: '淇濆吇缁撴灉涓嶈兘涓虹┖锛�' }
+                { required: true, message: '璇烽�夋嫨${title}' }
               ]
             },
             {
-              title: '寮傚父鎻忚堪',
+              title: '淇濆吇寮傚父鎻忚堪',
               key: 'exceptionDescription',
               type: JVXETypes.slot,
-              width: '20%',
               align: 'center',
+              width: 200,
               slotName: 'exceptionDescription',
               validateRules: [
-                { handler: this.customValidator }
-              ]
-            },
-            {
-              title: '鏄惁鎶ヤ慨',
-              key: 'reportFlag',
-              type: JVXETypes.slot,
-              width: '10%',
-              align: 'center',
-              slotName: 'reportFlag',
-              validateRules: [
-                { handler: this.customValidator }
+                { handler: this.maintenanceExceptionDescriptionValidator }
               ]
             }
-          ],
-          toolbarConfig: {
-            // prefix 鍓嶇紑锛泂uffix 鍚庣紑
-            slot: ['prefix', 'suffix'],
-            // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳
-            btn: ['clearSelection']
-          }
-        },
-        // precisionDetail: {
-        //   loading: false,
-        //   dataSource: [],
-        //   columns: [
-        //     {
-        //       title: 'ID',
-        //       key: 'id',
-        //       type: JVXETypes.hidden
-        //     },
-        //     {
-        //       title: 'orderId',
-        //       key: 'orderId',
-        //       type: JVXETypes.hidden
-        //     },
-        //     {
-        //       title: 'equipmentId',
-        //       key: 'equipmentId',
-        //       type: JVXETypes.hidden
-        //     },
-        //     {
-        //       title: 'parameterId',
-        //       key: 'parameterId',
-        //       type: JVXETypes.hidden
-        //     },
-        //     {
-        //       title: '妫�娴嬮」鐩�',
-        //       key: 'parameterId_dictText',
-        //       type: JVXETypes.normal,
-        //       width: '25%',
-        //       align: 'center'
-        //     },
-        //     {
-        //       title: '鍙傛暟缂栫爜',
-        //       key: 'parameterCode_dictText',
-        //       type: JVXETypes.normal,
-        //       width: '20%',
-        //       align: 'center',
-        //     },
-        //     {
-        //       title: '鍏佸樊鍊�',
-        //       key: 'parameterValue',
-        //       type: JVXETypes.normal,
-        //       width: '15%',
-        //       align: 'center',
-        //     },
-        //     {
-        //       title: '瀹炴祴鍊�',
-        //       key: 'actualValue',
-        //       type: JVXETypes.slot,
-        //       width: '15%',
-        //       align: 'center',
-        //       slotName: 'actualValue',
-        //       validateRules: [
-        //         { required: true, message: '璇疯緭鍏ュ疄娴嬪�硷紒' }
-        //       ]
-        //     }
-        //   ],
-        //   toolbarConfig: {
-        //     // prefix 鍓嶇紑锛泂uffix 鍚庣紑
-        //     slot: ['prefix', 'suffix'],
-        //     // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳
-        //     btn: ['add', 'remove', 'clearSelection']
-        //   }
-        // }
+          ]
+        }
       }
     },
-    created() {
-    },
     computed: {
-      confirmDisable: function() {
-        return ['WAIT_CONFIRM', 'WAIT_LEADER_CONFIRM', 'COMPLETE'].includes(this.model.maintenanceStatus)
+      displayEvaluationFlag() {
+        return this.model.maintenanceStatus && ['WAIT_CHECK', 'UNDER_MAINTENANCE', 'UNDER_FIRST_ACCEPTANCE', 'UNDER_SECOND_ACCEPTANCE', 'OPERATOR_SIGNATURE', 'REPAIRMAN_SIGNATURE', 'REPAIR_MANAGER_SIGNATURE', 'INSPECTOR_SIGNATURE', 'COMPLETE'].includes(this.model.maintenanceStatus)
       },
-      leaderConfirmDisable: function() {
-        return ['WAIT_LEADER_CONFIRM', 'COMPLETE'].includes(this.model.maintenanceStatus)
+      displayFirstAcceptanceFlag() {
+        return this.model.maintenanceStatus && ['UNDER_FIRST_ACCEPTANCE', 'UNDER_SECOND_ACCEPTANCE', 'OPERATOR_SIGNATURE', 'REPAIRMAN_SIGNATURE', 'REPAIR_MANAGER_SIGNATURE', 'INSPECTOR_SIGNATURE', 'COMPLETE'].includes(this.model.maintenanceStatus)
       },
-      completionDisable: function() {
-        return ['COMPLETE', 'ABOLISH'].includes(this.model.maintenanceStatus)
+      displaySecondAcceptanceFlag() {
+        return this.model.maintenanceStatus && ['UNDER_SECOND_ACCEPTANCE', 'OPERATOR_SIGNATURE', 'REPAIRMAN_SIGNATURE', 'REPAIR_MANAGER_SIGNATURE', 'INSPECTOR_SIGNATURE', 'COMPLETE'].includes(this.model.maintenanceStatus)
       },
-      isMaintenance: function() {
-        return this.selectShenpiData && this.selectShenpiData.taskDefKey === 'maintenance_execution';
+      displayOperatorFlag() {
+        return this.model.maintenanceStatus && ['OPERATOR_SIGNATURE', 'REPAIRMAN_SIGNATURE', 'REPAIR_MANAGER_SIGNATURE', 'INSPECTOR_SIGNATURE', 'COMPLETE'].includes(this.model.maintenanceStatus)
       },
-      isPrecisionCheck: function() {
-        return this.selectShenpiData && this.selectShenpiData.taskDefKey === 'precision_check';
+      displayRepairerFlag() {
+        return this.model.maintenanceStatus && ['REPAIRMAN_SIGNATURE', 'REPAIR_MANAGER_SIGNATURE', 'INSPECTOR_SIGNATURE', 'COMPLETE'].includes(this.model.maintenanceStatus)
       },
+      displayRepairLeaderFlag() {
+        return this.model.maintenanceStatus && ['REPAIR_MANAGER_SIGNATURE', 'INSPECTOR_SIGNATURE', 'COMPLETE'].includes(this.model.maintenanceStatus)
+      },
+      displayInspectorFlag() {
+        return this.model.maintenanceStatus && ['INSPECTOR_SIGNATURE', 'COMPLETE'].includes(this.model.maintenanceStatus)
+      }
     },
     methods: {
-      async handleDetail(item) {
-        this.initParams()
-        //閲嶆柊璁$畻defaultKey
-        if(item && item.taskDefKey === 'precision_check') {
-          this.activeTabKey = '4';
-        }
+      /**
+       * 涓婚〉闈㈢偣鍑绘墽琛屽鎵规椂瑙﹀彂
+       * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍
+       */
+      async handleDetail(record) {
         this.model = {}
-        if (item.procInstId) {
-          const { processDefinitionId, processInstanceId, processDefinitionKey, procInstId } = item
+        this.detail.dataSource = []
+        this.getBasicInformationByApi(record)
+        this.getFlowChartImageByApi(record)
+      },
 
-          let taskDataList = await getAction(this.url.queryHisTaskList, { procInstId })
-          this.taskData = [...taskDataList.result]
+      /**
+       * 涓婚〉闈㈢偣鍑昏鎯呮椂瑙﹀彂
+       * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍
+       */
+      recordDetail(record) {
+        this.spinning = true
+        this.detail.dataSource = []
+        this.model = Object.assign({
+          operatorSignatureResult: '1',
+          repairmanSignatureResult: '1',
+          repairManagerSignatureResult: '1',
+          inspectorSignatureResult: '1'
+        }, record)
+        this.handleDynamicColumns()
+        this.loadDetail(record.id)
+      },
 
-          downFile(this.url.diagramView, {
-            processDefinitionId,
-            processInstanceId,
-            TaskDefinitionKey: processDefinitionKey
-          }, 'get')
-            .then((res => {
-              const urlObject = window.URL.createObjectURL(new Blob([res]))
-              this.imageSrc = urlObject
-            }))
-            .catch(err => {
-              this.$notification.error({
+      /**
+       * 鑾峰彇鍩虹淇℃伅
+       * @param record 涓婚〉闈㈠垪琛ㄨ璁板綍
+       */
+      getBasicInformationByApi(record) {
+        this.spinning = true
+        const that = this
+        getAction(this.url.queryById, { id: record.dataId })
+          .then(res => {
+            if (res.success) {
+              that.model = Object.assign({
+                operatorSignatureResult: '1',
+                repairmanSignatureResult: '1',
+                repairManagerSignatureResult: '1',
+                inspectorSignatureResult: '1'
+              }, res.result)
+              that.model.dataId = record.dataId
+              that.model.taskId = record.id
+              that.model.userId = record.assignee
+              that.model.instanceId = record.procInstId
+              that.handleDynamicColumns()
+            }
+            else {
+              that.$notification.warning({
                 message: '娑堟伅',
                 description: res.message
               })
-            })
-        }
-        let res = await getAction(this.url.queryById, { id: item.dataId })
-        this.model = Object.assign({}, res.result)
-        if (this.model.imageFiles) {
-          let obj = JSON.parse(this.model.imageFiles)
-          this.model.imageFilesResult = [...obj]
-        }
-        this.model.dataId = item.dataId
-        this.model.taskId = item.id
-        this.model.userId = item.assignee
-        this.model.instanceId = item.procInstId
-        this.model.values = item.variables
-        await this.loadDetail(item.dataId)
-        // await this.loadPrecisionDetail(item.dataId);
+            }
+          })
+          .finally(() => {
+            this.loadDetail(record.dataId)
+          })
+
       },
 
-      recordDetail(record) {
-        console.log('record', record)
-        this.initParams()
-        this.model = Object.assign({}, record)
-        if (this.model.imageFiles) {
-          let obj = JSON.parse(this.model.imageFiles)
-          this.model.imageFilesResult = [...obj]
-        }
-        this.loadDetail(record.id)
-        this.loadPrecisionDetail(record.id);
+      /**
+       * 鑾峰彇淇濆吇鏄庣粏
+       * @param orderId 宸ュ崟鍙�
+       */
+      loadDetail(orderId) {
+        getAction(this.url.detail, { orderId })
+          .then(res => {
+            if (res.success) {
+              if (this.model.maintenanceStatus && this.model.maintenanceStatus == 'UNDER_SECOND_ACCEPTANCE') {
+                this.detail.dataSource = res.result.map(item => {
+                  return {
+                    ...item,
+                    secondInspectResult: '1'
+                  }
+                })
+                return
+              }
+              this.detail.dataSource = res.result
+            }
+          })
+          .finally(() => {
+            this.spinning = false
+          })
       },
-      initParams() {
-        this.detail.dataSource = []
-        this.visible = true
-        this.activeTabKey = '1';
-        if(this.selectShenpiData &&  this.selectShenpiData.taskDefKey === 'precision_check') {
-          this.activeTabKey = '4';
-        }
-        this.spinning = true
+
+      /**
+       * 鑾峰彇娴佺▼鍥�
+       * @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: err.message
+            })
+          })
       },
+
       async handleOk() {
         const that = this
-        if(that.$refs.editableDetailTable) {
+
+        if (this.model.maintenanceStatus == 'UNDER_MAINTENANCE' || this.model.maintenanceStatus == 'UNDER_FIRST_ACCEPTANCE' || this.model.maintenanceStatus == 'UNDER_SECOND_ACCEPTANCE') {
           let errMap = await that.$refs.editableDetailTable.validateTable()
-          if (errMap) {
-            this.$message.warning('鏁版嵁鏍¢獙澶辫触锛�')
-            return
+          if (this.activeTabKey != '1') {
+            this.activeTabKey = '1'
+            if (errMap) {
+              that.$refs.editableDetailTable.clearValidate()
+              that.$notification.warning({
+                message: '娑堟伅',
+                description: '淇濆吇鎴栭獙鏀朵笉鑳戒负绌�'
+              })
+              return
+            }
           }
+          if (errMap) return
         }
+
         // 瑙﹀彂琛ㄥ崟楠岃瘉
         this.$refs.form.validate(valid => {
           if (valid) {
             that.confirmLoading = that.spinning = true
-            let tableData = [];
-            let precisionTableData = [];
-            if(that.$refs.editableDetailTable) {
-              tableData = that.$refs.editableDetailTable.getTableData()
-            }
-            if(that.$refs.editablePrecisionDetailTable) {
-              precisionTableData = that.$refs.editablePrecisionDetailTable.getTableData()
-            }
-            that.model.tableDetailList = [...tableData]
-            that.model.precisionDetailList = [...precisionTableData]
-            let httpurl = this.url.approval
-            let method = 'put'
+            that.model.tableDetailList = that.$refs.editableDetailTable.getTableData()
 
-            httpAction(httpurl, this.model, method).then((res) => {
-              if (res.success) {
-                that.$message.success(res.message)
-                that.$emit('searchReset')
-                that.close()
-              } else {
-                that.$message.warning(res.message)
-              }
-            }).finally(() => {
-              that.confirmLoading = that.spinning = false
-            })
+            httpAction(that.url.approval, that.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
           }
         })
       },
+
+      handleDynamicColumns() {
+        let columns = []
+        if (this.displayFirstAcceptanceFlag) {
+          columns = [
+            {
+              title: '绗竴娆¢獙鏀剁粨鏋�',
+              key: 'firstInspectResult',
+              type: JVXETypes.slot,
+              align: 'center',
+              width: 200,
+              slotName: 'firstInspectResult',
+              validateRules: [{ required: true, message: '璇烽�夋嫨${title}' }]
+            },
+            {
+              title: '绗竴娆¢獙鏀跺紓甯告弿杩�',
+              key: 'firstInspectException',
+              type: JVXETypes.slot,
+              align: 'center',
+              width: 200,
+              slotName: 'firstInspectException',
+              validateRules: [
+                { handler: this.firstAcceptanceExceptionDescriptionValidator }
+              ]
+            }
+          ]
+        }
+
+        if (this.displaySecondAcceptanceFlag) {
+          columns = [
+            ...columns,
+            {
+              title: '绗簩娆¢獙鏀剁粨鏋�',
+              key: 'secondInspectResult',
+              type: JVXETypes.slot,
+              align: 'center',
+              width: 200,
+              slotName: 'secondInspectResult',
+              validateRules: [{ required: true, message: '璇烽�夋嫨${title}' }]
+            },
+            {
+              title: '绗簩娆¢獙鏀跺紓甯告弿杩�',
+              key: 'secondInspectException',
+              type: JVXETypes.slot,
+              align: 'center',
+              width: 200,
+              slotName: 'secondInspectException',
+              validateRules: [
+                { handler: this.secondAcceptanceExceptionDescriptionValidator }
+              ]
+            }
+          ]
+        }
+        this.detail.columns = [...this.detail.defaultColumns, ...columns]
+      },
+
       autocompleteForm(selectObj) {
         this.$set(this.model, 'standardName', selectObj.standardName)
         this.$set(this.model, 'maintenancePeriod', selectObj.maintenancePeriod)
         this.$set(this.model, 'standardId', selectObj.id)
         this.$set(this.model, 'equipmentId', selectObj.equipmentId)
-        // console.log('model', this.model)
-        if (!this.model.id) {
-          this.loadStandardDetail(selectObj.id)
-        }
-        this.loadMaintenanceOperatorList(this.model.equipmentId)
       },
-      //鏍囧噯閫夋嫨鍙樺寲
-      loadDetail(orderId) {
-        if (orderId) {
-          getAction(this.url.detail, { orderId: orderId })
-            .then(res => {
-              if (res.success) {
-                this.detail.dataSource = [...res.result]
-              }
-            })
-            .finally(() => {
-              this.spinning = false
-            })
-        }
+
+      /**
+       * 淇濆吇銆侀獙鏀剁粨鏋滃彂鐢熸敼鍙樻椂瑙﹀彂
+       * @param value 鏀瑰彉鍚庣殑鍊�
+       * @param record 琛ㄦ牸琛岃褰�
+       * @param key 瀵硅薄灞炴�у悕绉�
+       */
+      handleResultSelectChange(value, record, key) {
+        if (record[key]) delete record[key]
+        this.$refs.editableDetailTable.validateTable()
       },
-      // loadPrecisionDetail(orderId) {
-      //   if (orderId) {
-      //     getAction(this.url.precisionCheckDetail, { orderId: orderId }).then(res => {
-      //       if (res.success) {
-      //         this.precisionDetail.dataSource = [...res.result]
-      //       }
-      //     })
-      //   }
-      // },
-      loadMaintenanceOperatorList(equipmentId) {
-        this.maintenanceOperatorOptions = []
-        let params = { positionCode: 'PCR0001' }
-        if (equipmentId) {
-          params.equipmentId = equipmentId
-        }
-        getAction(this.url.userSelect, params).then(res => {
-          if (res.success) {
-            this.maintenanceOperatorOptions = res.result.map(item => ({
-              key: item.id,
-              value: item.username,
-              text: item.realname
-            }))
-          }
-        })
-      },
-      handleInspectionResultSelectChange(value, record) {
-        if (record.exceptionDescription) delete record.exceptionDescription
-        if (record.reportFlag) delete record.reportFlag
-      },
-      // 鎵归噺閫夋嫨鎵�鏈夌偣妫�缁撴灉
-      handleSelectAllInspectionResult() {
+
+      // 鎵归噺閫夋嫨淇濆吇缁撴灉姝e父
+      handleSelectAllMaintenanceResult() {
         this.selectedRowKeys.forEach(key => {
           const dataItem = this.detail.dataSource.find(item => item.id === key)
-          if (dataItem && dataItem.maintenanceResult !== '1') {
-            console.log('dataItem', dataItem)
+          if (dataItem && dataItem.maintenanceResult !== 'NORMAL') {
             delete dataItem.exceptionDescription
-            delete dataItem.reportFlag
-            dataItem.maintenanceResult = '1'
+            dataItem.maintenanceResult = 'NORMAL'
           }
         })
         this.$refs.editableDetailTable.clearCheckboxRow()
+        this.selectedRowKeys = []
+      },
+
+      // 鎵归噺閫夋嫨绗竴娆¢獙鏀剁粨鏋滈�氳繃
+      handleSelectAllFirstAcceptanceResult() {
+        this.selectedRowKeys.forEach(key => {
+          const dataItem = this.detail.dataSource.find(item => item.id === key)
+          if (dataItem && dataItem.firstInspectResult !== '1') {
+            delete dataItem.firstInspectException
+            dataItem.firstInspectResult = '1'
+          }
+        })
+        this.$refs.editableDetailTable.clearCheckboxRow()
+        this.$refs.editableDetailTable.clearValidate()
         this.selectedRowKeys = []
       },
 
@@ -601,10 +648,57 @@
         this.selectedRowKeys = selectedRowIds
       },
 
-      customValidator({ cellValue, row }, callback) {
+      // 淇濆吇鍓嶆妧鏈姸鎬佸崟閫夊彂鐢熸敼鍙樻椂瑙﹀彂
+      handleCheckRadioChange() {
+        if (this.model.fullyFunctional == '1' && this.model.runningNormally == '1') this.model.problemDescription = ''
+      },
+
+      /**
+       * 淇濆吇寮傚父鎻忚堪鍗曞厓鏍兼牎楠�
+       * @param cellValue 鍗曞厓鏍煎��
+       * @param row 琛ㄦ牸琛岃褰�
+       * @param callback 缁撴灉鍥炶皟鍑芥暟
+       */
+      maintenanceExceptionDescriptionValidator({ cellValue, row }, callback) {
         if (row.maintenanceResult === '2') {
           if (!cellValue) {
-            callback(false, '${title}涓嶈兘涓虹┖锛�') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀�
+            callback(false, '璇疯緭鍏�${title}') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀�
+          } else {
+            callback(true) // true = 閫氳繃楠岃瘉
+          }
+        } else {
+          callback(true)
+        }
+      },
+
+      /**
+       * 绗竴娆¢獙鏀跺紓甯告弿杩板崟鍏冩牸鏍¢獙
+       * @param cellValue 鍗曞厓鏍煎��
+       * @param row 琛ㄦ牸琛岃褰�
+       * @param callback 缁撴灉鍥炶皟鍑芥暟
+       */
+      firstAcceptanceExceptionDescriptionValidator({ cellValue, row }, callback) {
+        if (row.firstInspectResult === '2') {
+          if (!cellValue) {
+            callback(false, '璇疯緭鍏�${title}') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀�
+          } else {
+            callback(true) // true = 閫氳繃楠岃瘉
+          }
+        } else {
+          callback(true)
+        }
+      },
+
+      /**
+       * 绗簩娆¢獙鏀跺紓甯告弿杩板崟鍏冩牸鏍¢獙
+       * @param cellValue 鍗曞厓鏍煎��
+       * @param row 琛ㄦ牸琛岃褰�
+       * @param callback 缁撴灉鍥炶皟鍑芥暟
+       */
+      secondAcceptanceExceptionDescriptionValidator({ cellValue, row }, callback) {
+        if (row.secondInspectResult === '2') {
+          if (!cellValue) {
+            callback(false, '璇疯緭鍏�${title}') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀�
           } else {
             callback(true) // true = 閫氳繃楠岃瘉
           }
@@ -626,6 +720,29 @@
   }
 </script>
 
-<style lang="less" scoped>
+<style scoped lang="less">
+  /deep/ .ant-select-dropdown-menu {
+    text-align: left;
+  }
 
-</style>
\ No newline at end of file
+  /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>

--
Gitblit v1.9.3