From 033c329be810727208e8e124f5f31314305b0808 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期四, 10 七月 2025 20:18:55 +0800
Subject: [PATCH] 1、点检工单流程开发 2、点检工单领取时增加列表loading提示

---
 src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue |  521 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 273 insertions(+), 248 deletions(-)

diff --git a/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue b/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue
index 156c30d..4a6b56f 100644
--- a/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue
+++ b/src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue
@@ -1,201 +1,184 @@
 <template>
-  <j-modal
-    :title="title"
-    :width="1200"
-    :visible="visible"
-    :okButtonProps="{ class:{'jee-hidden': disableSubmit||!hasInspectionDateArrived} }"
-    @ok="submitForm"
-    @cancel="handleCancel"
-    :mask-closable="false"
-    :confirmLoading="confirmLoading"
-    switchFullscreen
-    centered
-  >
+  <j-modal :title="title" :width="1200" :visible="visible"
+           :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @ok="submitForm"
+           @cancel="handleCancel" :mask-closable="false" :confirmLoading="confirmLoading" fullscreen>
     <a-spin :spinning="spinning">
       <a-form-model ref='form' :model='tableRowRecord' :labelCol="labelCol" :wrapperCol="wrapperCol"
                     :rules="validatorRules">
-        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 鐐规鍩虹淇℃伅</a-divider>
+        <a-row :gutter="48">
+          <a-col :span="8">
+            <a-tabs>
+              <a-tab-pane tab="鍩虹淇℃伅">
+                <a-row>
+                  <a-col :span='span'>
+                    <a-form-model-item label="宸ュ崟鍙�">
+                      <a-input readOnly v-model="tableRowRecord.orderNum"/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span='span'>
+                    <a-form-model-item label="璁惧缂栧彿">
+                      <MaintenanceEquipmentSelect v-model="tableRowRecord.equipmentId"
+                                                  :maintenanceCategory="'POINT_INSPECTION'"
+                                                  disabled @autocompleteForm="autoCompleteForm"/>
+                    </a-form-model-item>
+                  </a-col>
 
-        <a-row>
-          <a-col :span='span'>
-            <a-form-model-item label="宸ュ崟鍙�">
-              <a-input readOnly v-model="tableRowRecord.orderNum"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span='span'>
-            <a-form-model-item label="璁惧缂栧彿">
-              <MaintenanceEquipmentSelect v-model="tableRowRecord.equipmentId"
-                                          :maintenanceCategory="'POINT_INSPECTION'" disabled
-                                          @autocompleteForm="autoCompleteForm"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span='span'>
-            <a-form-model-item label="鏍囧噯鍚嶇О">
-              <a-input readOnly v-model="tableRowRecord.standardName"/>
-            </a-form-model-item>
-          </a-col>
-        </a-row>
+                </a-row>
 
-        <a-row>
-          <a-col :span='span'>
-            <a-form-model-item label="鏍囧噯缂栫爜">
-              <a-input readOnly v-model="tableRowRecord.standardCode"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span='span'>
-            <a-form-model-item label="鐐规鏃ユ湡">
-              <a-input v-model="tableRowRecord.inspectionDate" readOnly/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span='span'>
-            <a-form-model-item label="鐐规杩囨湡鏃堕棿">
-              <a-input v-model="tableRowRecord.expirationTime" readOnly/>
-            </a-form-model-item>
-          </a-col>
-        </a-row>
+                <a-row>
+                  <a-col :span='span'>
+                    <a-form-model-item label="瑙勮寖鍚嶇О">
+                      <a-input readOnly v-model="tableRowRecord.standardName"/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span='span'>
+                    <a-form-model-item label="瑙勮寖缂栫爜">
+                      <a-input readOnly v-model="tableRowRecord.standardCode"/>
+                    </a-form-model-item>
+                  </a-col>
 
-        <a-row>
-          <a-col :span='span'>
-            <a-form-model-item label="淇濆吇鍛ㄦ湡">
-              <a-input v-model="tableRowRecord.maintenancePeriod" readOnly/>
-            </a-form-model-item>
+                </a-row>
+
+                <a-row>
+                  <a-col :span='span'>
+                    <a-form-model-item label="鐐规鏃ユ湡">
+                      <a-input v-model="tableRowRecord.inspectionDate" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span='span'>
+                    <a-form-model-item label="鐐规杩囨湡鏃堕棿">
+                      <a-input v-model="tableRowRecord.expirationTime" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+
+                <a-row>
+                  <a-col :span='span'>
+                    <a-form-model-item label="淇濆吇鍛ㄦ湡">
+                      <a-input v-model="tableRowRecord.maintenancePeriod" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                  <a-col :span='span'>
+                    <a-form-model-item label="鐐规浜�">
+                      <a-input v-model="tableRowRecord.operator_dictText" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+
+                <a-row>
+                  <a-col :span="span*2">
+                    <a-form-model-item label="澶囨敞" :labelCol="{span:4}" :wrapperCol="{span:20}">
+                      <a-textarea v-model="tableRowRecord.remark" rows="3" readOnly/>
+                    </a-form-model-item>
+                  </a-col>
+                </a-row>
+              </a-tab-pane>
+            </a-tabs>
           </a-col>
-          <a-col :span='span'>
-            <a-form-model-item label="鐐规浜�">
-              <a-input v-model="tableRowRecord.operator_dictText" readOnly/>
-            </a-form-model-item>
-          </a-col>
-        </a-row>
 
-        <a-row>
-          <a-col :span="span*3">
-            <a-form-model-item label="澶囨敞" :labelCol="{span:2}" :wrapperCol="{span:21}">
-              <a-textarea v-model="tableRowRecord.remark" rows="3" readOnly/>
-            </a-form-model-item>
-          </a-col>
-        </a-row>
+          <a-col :span="!isDisplayConfirm?16:10">
+            <a-tabs :active-key="activeTabKey" @change="handleTabChange">
+              <a-tab-pane key="1" tab="鏃ョ偣妫�">
+                <j-vxe-table ref="editableDetailTable1" :rowNumber="false" rowSelection bordered
+                             alwaysEdit :toolbar="false" keep-source :height="300" :loading="detail.loading"
+                             :dataSource="detail.dayInspectionList" :columns="detail.columns"
+                             @selectRowChange="handleTableSelectRowChange($event,'Day')">
+                  <template v-slot:inspectionResult="props">
+                    <j-dict-select-tag v-model="props.row.inspectionResult" dictCode="inspection_project_result"
+                                       :disabled="isDisableOperation" placeholder="璇烽�夋嫨鐐规缁撴灉"
+                                       @change="handleInspectionResultSelectChange($event,props.row)"
+                                       style="width: 100%"/>
+                  </template>
 
-        <a-row>
-          <a-form-model-item prop="imageFilesResult" label="鐐规鍥剧墖" :labelCol="{span:2}" :wrapperCol="{span:21}">
-            <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
-                       :disabled="isDisableOperation||!hasInspectionDateArrived"
-                       v-model="tableRowRecord.fileList"/>
-          </a-form-model-item>
-        </a-row>
+                  <template v-slot:exceptionDescription="props">
+                    <a-textarea style="height: 32px" v-model="props.row.exceptionDescription"
+                                :placeholder="props.row.inspectionResult&&props.row.inspectionResult!='NORMAL'?'璇疯緭鍏ュ紓甯告弿杩�':''"
+                                :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult=='NORMAL'"/>
+                  </template>
 
-        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">
-          淇濆吇椤逛俊鎭�
-        </a-divider>
+                  <template v-slot:reportFlag="props">
+                    <j-dict-select-tag v-model="props.row.reportFlag"
+                                       :placeholder="props.row.inspectionResult&&props.row.inspectionResult!='NORMAL'?'璇烽�夋嫨寮傚父鏄惁鎶ヤ慨':''"
+                                       :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult=='NORMAL'"
+                                       dictCode="yn" style="width: 100%"/>
+                  </template>
+                </j-vxe-table>
+              </a-tab-pane>
 
-        <a-tabs v-model="activeTabKey">
-          <a-tab-pane key="1" tab="淇濆吇椤规槑缁�">
-            <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:inspectionResult="props">
-                <j-dict-select-tag v-model="props.row.inspectionResult" dictCode="eam_inspection_result"
-                                   :disabled="isDisableOperation"
-                                   placeholder="璇烽�夋嫨鐐规缁撴灉"
-                                   @change="handleInspectionResultSelectChange($event,props.row)"
-                                   style="width: 100%"/>
+              <a-tab-pane key="2" tab="鍛ㄧ偣妫�" forceRender>
+                <j-vxe-table ref="editableDetailTable2" :rowNumber="false" rowSelection bordered
+                             alwaysEdit :toolbar="false" keep-source :height="300" :loading="detail.loading"
+                             :dataSource="detail.weekInspectionList" :columns="detail.columns"
+                             @selectRowChange="handleTableSelectRowChange($event,'Week')">
+                  <template v-slot:inspectionResult="props">
+                    <j-dict-select-tag v-model="props.row.inspectionResult" dictCode="inspection_project_result"
+                                       :disabled="isDisableOperation||detail.weekInspectionFinishedFlag"
+                                       placeholder="璇烽�夋嫨鐐规缁撴灉"
+                                       @change="handleInspectionResultSelectChange($event,props.row)"
+                                       style="width: 100%"/>
+                  </template>
+
+                  <template v-slot:exceptionDescription="props">
+                    <a-textarea style="height: 32px" v-model="props.row.exceptionDescription"
+                                :placeholder="props.row.inspectionResult&&props.row.inspectionResult!='NORMAL'?'璇疯緭鍏ュ紓甯告弿杩�':''"
+                                :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult=='NORMAL'"/>
+                  </template>
+
+                  <template v-slot:reportFlag="props">
+                    <j-dict-select-tag v-model="props.row.reportFlag"
+                                       :placeholder="props.row.inspectionResult&&props.row.inspectionResult!='NORMAL'?'璇烽�夋嫨寮傚父鏄惁鎶ヤ慨':''"
+                                       :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult=='NORMAL'"
+                                       dictCode="yn" style="width: 100%"/>
+                  </template>
+                </j-vxe-table>
+              </a-tab-pane>
+
+              <template v-if="selectShenpiData.procInstId">
+                <a-tab-pane key='3' tab='娴佺▼鍥�'>
+                  <img :src="imageSrc" v-if="imageSrc"/>
+                </a-tab-pane>
               </template>
 
-              <template v-slot:exceptionDescription="props">
-                <a-textarea style="height: 32px" v-model="props.row.exceptionDescription"
-                            :placeholder="props.row.inspectionResult==='2'?'璇疯緭鍏ュ紓甯告弿杩�':''"
-                            :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'"/>
-              </template>
+              <a-button
+                v-if="activeTabKey=='1'||activeTabKey=='2'"
+                :disabled="(activeTabKey=='1'&&selectedDayInspectionRowKeys.length==0)||(activeTabKey=='2'&&selectedWeekInspectionRowKeys.length==0)||(activeTabKey=='2'&&detail.weekInspectionFinishedFlag)||isDisableOperation"
+                slot="tabBarExtraContent" type="primary"
+                @click="handleSelectAllInspectionResult">鎵归噺鐐规姝e父
+              </a-button>
+            </a-tabs>
+          </a-col>
 
-              <template v-slot:reportFlag="props">
-                <j-dict-select-tag v-model="props.row.reportFlag"
-                                   :placeholder="props.row.inspectionResult==='2'?'璇烽�夋嫨寮傚父鏄惁鎶ヤ慨':''"
-                                   :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'"
-                                   dictCode="yn"
-                                   style="width: 100%"/>
-              </template>
-            </j-vxe-table>
-          </a-tab-pane>
+          <a-col v-if="isDisplayConfirm" :span="6">
+            <a-tabs>
+              <a-tab-pane tab="缁翠慨宸ョ‘璁�">
+                <a-row>
+                  <a-col :span="24">
+                    <a-form-model-item prop="confirmDealType" label="澶勭悊绫诲瀷">
+                      <j-dict-select-tag type='radio' v-model='tableRowRecord.confirmDealType'
+                                         dictCode='approved_rejected'
+                                         :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"/>
+                    </a-form-model-item>
+                  </a-col>
 
-          <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 hitaskDataSource" :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-tab-pane>
-
-            <a-tab-pane key='3' tab='娴佺▼鍥�'>
-              <img :src="imageSrc" alt="Fetched Image"/>
-            </a-tab-pane>
-          </template>
-
-          <a-button
-            v-if="selectedRowKeys.length>0&&!isDisableOperation&&hasInspectionDateArrived&&activeTabKey==='1'"
-            slot="tabBarExtraContent" type="primary"
-            @click="handleSelectAllInspectionResult">鎵归噺鐐规姝e父
-          </a-button>
-
-          <!--<a-dropdown slot="tabBarExtraContent" v-if="selectedRowKeys.length>0">-->
-          <!--<a-menu slot="overlay">-->
-          <!--<a-menu-item key="1" @click="handleSelectAllInspectionResult('姝e父')">姝e父</a-menu-item>-->
-          <!--<a-menu-item key="2" @click="handleSelectAllInspectionResult('寮傚父')">寮傚父</a-menu-item>-->
-          <!--</a-menu>-->
-
-          <!--<a-button> 鎵归噺閫夋嫨鐐规缁撴灉-->
-          <!--<a-icon type="down"/>-->
-          <!--</a-button>-->
-          <!--</a-dropdown>-->
-        </a-tabs>
-
-        <template v-if="isDisplayConfirm">
-          <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 绠$悊鍛樼‘璁や俊鎭�
-          </a-divider>
-
-          <a-row :gutter="24">
-            <a-col :span="12">
-              <a-form-model-item prop="confirmDealType" label="澶勭悊绫诲瀷">
-                <j-dict-select-tag type='radio' v-model='tableRowRecord.confirmDealType' dictCode='approved_rejected'
-                                   :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"/>
-              </a-form-model-item>
-            </a-col>
-
-            <a-col :span="12">
-              <a-form-model-item prop="confirmComment" label="澶勭悊鎰忚">
-                <a-textarea placeholder="璇疯緭鍏ュ鐞嗘剰瑙�"
-                            :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"
-                            v-model="tableRowRecord.confirmComment"/>
-              </a-form-model-item>
-            </a-col>
-          </a-row>
-        </template>
+                  <a-col :span="24">
+                    <a-form-model-item prop="confirmComment" label="澶勭悊鎰忚">
+                      <a-textarea placeholder="璇疯緭鍏ュ鐞嗘剰瑙�"
+                                  :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"
+                                  v-model="tableRowRecord.confirmComment"/>
+                    </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 '@assets/less/TableExpand.less'
-  import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage'
+  import { getAction, postAction, downFile } from '@api/manage'
   import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
   import { JVXETypes } from '@comp/jeecg/JVxeTable'
   import moment from 'moment'
@@ -210,12 +193,10 @@
     },
     data() {
       return {
-        span: 8,
+        span: 12,
         confirmLoading: false,
         spinning: false,
         tableRowRecord: {},
-        assignFileStream: {},
-        hitaskDataSource: [],
         validatorRules: {
           confirmDealType: [
             { required: true, message: '璇烽�夋嫨澶勭悊绫诲瀷' }
@@ -227,31 +208,29 @@
         imageSrc: null,
         labelCol: {
           xs: { span: 24 },
-          sm: { span: 6 }
+          sm: { span: 9 }
         },
         wrapperCol: {
           xs: { span: 30 },
-          sm: { span: 16 }
+          sm: { span: 15 }
         },
         visible: false,
         // 琛ㄥご
         url: {
-          // queryBomDataById: '/eam/eamInspectionOrder/selectVoById',
           diagramView: '/assign/flow/diagramView',
           queryHisTaskList: '/assign/flow/queryHisTaskList',
           approve: '/eam/eamInspectionOrder/approval',
           queryById: '/eam/eamInspectionOrder/queryById',
-          detailList: '/eam/eamInspectionOrderDetail/queryList'
+          detailList: '/eam/eamInspectionOrderDetail/queryList',
+          weekInspectionOrderList: '/eam/eamWeekInspectionDetail/queryStandardList'
         },
         detail: {
-          loading: false,
-          dataSource: [],
           columns: [
             {
               title: '搴忓彿',
               key: 'itemCode',
               type: JVXETypes.normal,
-              width: '5%',
+              width: 60,
               align: 'center',
               fixed: 'left'
             },
@@ -259,7 +238,6 @@
               title: '淇濆吇椤�',
               key: 'itemName',
               type: JVXETypes.normal,
-              width: '15%',
               align: 'center',
               fixed: 'left'
             },
@@ -267,7 +245,6 @@
               title: '淇濆吇瑕佹眰',
               key: 'itemDemand',
               type: JVXETypes.normal,
-              width: '15%',
               align: 'center',
               fixed: 'left'
             },
@@ -276,10 +253,9 @@
               key: 'inspectionResult',
               type: JVXETypes.slot,
               slotName: 'inspectionResult',
-              width: '15%',
               align: 'center',
               validateRules: [
-                { required: true, message: '${title}涓嶈兘涓虹┖锛�' }
+                { required: true, message: '${title}涓嶈兘涓虹┖' }
               ]
             },
             {
@@ -287,7 +263,6 @@
               key: 'exceptionDescription',
               type: JVXETypes.slot,
               slotName: 'exceptionDescription',
-              width: '20%',
               align: 'center',
               validateRules: [
                 { handler: this.customValidator }
@@ -298,24 +273,24 @@
               key: 'reportFlag',
               type: JVXETypes.slot,
               slotName: 'reportFlag',
-              width: '20%',
               align: 'center',
               validateRules: [
                 { handler: this.customValidator }
               ]
             }
-          ]
+          ],
+          dayInspectionList: [],
+          weekInspectionList: [],
+          weekInspectionFinishedFlag: false
         },
-        selectedRowKeys: [],
+        selectedDayInspectionRowKeys: [],
+        selectedWeekInspectionRowKeys: [],
         disableSubmit: false,
         activeTabKey: '1',
         title: ''
       }
     },
     computed: {
-      hasInspectionDateArrived() {
-        return moment(this.tableRowRecord.inspectionDate).diff(moment(), 'hours') <= 0
-      },
       isDisplayConfirm() {
         return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.inspectionStatus)
       },
@@ -334,11 +309,6 @@
           const param = { procInstId }
           const imageParam = { processDefinitionId, processInstanceId, TaskDefinitionKey: processDefinitionKey }
           const that = this
-
-          getAction(this.url.queryHisTaskList, param)
-            .then(res => {
-              that.hitaskDataSource = res.result
-            })
 
           downFile(this.url.diagramView, imageParam, 'get')
             .then((res => {
@@ -360,22 +330,70 @@
        */
       async getBasicInformation(record) {
         this.activeTabKey = '1'
-        this.detail.dataSource = []
+        this.detail.dayInspectionList = this.detail.weekInspectionList = []
         this.spinning = true
         const param = { id: record.dataId }
-        let res = await getAction(this.url.queryById, param);
-        this.tableRowRecord = Object.assign({}, res.result);
-        if (this.tableRowRecord.imageFiles) {
-          let obj = JSON.parse(this.tableRowRecord.imageFiles)
-          this.tableRowRecord.fileList = [...obj]
-        }
-        await this.loadDetail(record.dataId)
+        let res = await getAction(this.url.queryById, param)
+        this.tableRowRecord = Object.assign({}, res.result)
+        this.getDayInspectionOrderListByApi(record.dataId)
+        console.log('record', record)
+        this.getWeekInspectionOrderListByApi(this.tableRowRecord.standardId)
       },
 
+      /**
+       * 鑾峰彇鐐规宸ュ崟涓殑鏃ョ偣妫�鍒楄〃
+       * @param orderId 宸ュ崟鍙�
+       */
+      getDayInspectionOrderListByApi(orderId) {
+        if (orderId) {
+          getAction(this.url.detailList, { orderId })
+            .then(res => {
+              if (res.success) {
+                this.detail.dayInspectionList = [...res.result]
+              }
+            })
+            .finally(() => {
+              this.spinning = false
+            })
+        }
+      },
+
+      /**
+       * 鑾峰彇鐐规宸ュ崟涓殑鍛ㄧ偣妫�鍒楄〃
+       * @param standardId 瑙勮寖id
+       */
+      getWeekInspectionOrderListByApi(standardId) {
+        console.log('standardId-------------------------', standardId)
+        getAction(this.url.weekInspectionOrderList, { standardId, inspectionDate: this.tableRowRecord.inspectionDate })
+          .then(res => {
+            if (res.success) {
+              this.detail.weekInspectionList = res.result.list
+              this.detail.weekInspectionFinishedFlag = res.result.weekInsFlag
+            }
+          })
+          .finally(() => {
+            this.spinning = false
+          })
+      },
+
+      handleTabChange(tabKey) {
+        if (this.activeTabKey == '1') this.$refs.editableDetailTable1.clearValidate()
+        this.activeTabKey = tabKey
+      },
+
+      // 鎻愪氦浜嬩欢
       async submitForm() {
-        let errMap = await this.$refs.editableDetailTable.validateTable()
+        let errMap = await this.$refs.editableDetailTable1.validateTable()
         if (errMap) {
-          console.log('err', errMap)
+          if (this.activeTabKey != '1') {
+            this.activeTabKey = '1'
+            // 鍐呴儴鏍¢獙鎻愮ず鍥爐ab鍒囨崲鏃跺畾浣嶅嚭鐜伴棶棰樺洜姝ゅ湪姝ゅ娓呮鍐呴儴鏍¢獙鎻愮ず锛屽鍔爊otification鎻愮ず
+            this.$refs.editableDetailTable1.clearValidate()
+            this.$notification.warning({
+              message: '娑堟伅',
+              description: '鏃ョ偣妫�缁撴灉涓嶈兘涓虹┖'
+            })
+          }
           return
         }
 
@@ -387,22 +405,26 @@
             flowTaskVo.taskId = this.selectShenpiData.id
             flowTaskVo.userId = this.selectShenpiData.assignee
             flowTaskVo.instanceId = this.selectShenpiData.procInstId
-            flowTaskVo.values = this.selectShenpiData.variables
             flowTaskVo.confirmDealType = this.tableRowRecord.confirmDealType
             flowTaskVo.confirmComment = this.tableRowRecord.confirmComment
-            flowTaskVo.fileList = this.tableRowRecord.fileList
-            flowTaskVo.tableDetailList = this.$refs.editableDetailTable.getTableData()
+            flowTaskVo.tableDetailList = this.$refs.editableDetailTable1.getTableData()
+            if (!this.detail.weekInspectionFinishedFlag) flowTaskVo.tableWeekDetailList = this.$refs.editableDetailTable2.getTableData()
             const that = this
-            console.log('琛ㄥ崟鎻愪氦鏁版嵁', flowTaskVo)
-            httpAction(this.url.approve, flowTaskVo, 'post')
+            postAction(this.url.approve, flowTaskVo)
               .then((res) => {
                 if (res.success) {
-                  that.$message.success(res.message)
+                  that.$notification.success({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
                   //鍒锋柊琛ㄦ牸
-                  that.$emit('searchReset')
+                  that.$emit('modalFormOk')
                   that.handleCancel()
                 } else {
-                  that.$message.warning(res.message)
+                  that.$notification.warning({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
                 }
               })
               .finally(() => {
@@ -422,24 +444,37 @@
 
       // 鎵归噺閫夋嫨鎵�鏈夌偣妫�缁撴灉
       handleSelectAllInspectionResult() {
-        this.selectedRowKeys.forEach(key => {
-          const dataItem = this.detail.dataSource.find(item => item.id === key)
-          if (dataItem && dataItem.inspectionResult !== '1') {
+        let selectedRowKeys, prefix
+        if (this.activeTabKey == '1') {
+          selectedRowKeys = this.selectedDayInspectionRowKeys
+          prefix = 'day'
+        }
+        else if (this.activeTabKey == '2') {
+          selectedRowKeys = this.selectedWeekInspectionRowKeys
+          prefix = 'week'
+        }
+        else selectedRowKeys = []
+        if (selectedRowKeys.length == 0) return
+
+        selectedRowKeys.forEach(key => {
+          const dataItem = this.detail[prefix + 'InspectionList'].find(item => item.id === key)
+          if (dataItem && dataItem.inspectionResult !== 'NORMAL') {
             delete dataItem.exceptionDescription
             delete dataItem.reportFlag
-            dataItem.inspectionResult = '1'
+            dataItem.inspectionResult = 'NORMAL'
           }
         })
-        this.$refs.editableDetailTable.clearCheckboxRow()
-        this.selectedRowKeys = []
+        this.$refs['editableDetailTable' + this.activeTabKey].clearCheckboxRow()
+        this['selected' + prefix.charAt(0).toUpperCase() + prefix.slice(1) + 'InspectionRowKeys'] = []
       },
 
       /**
        * 琛ㄦ牸澶氶�夋鍙戠敓鏀瑰彉鏃惰Е鍙�
        * @param {selectedRowIds} 琛ㄦ牸涓凡閫夋嫨鐨処D鍒楄〃
+       * @param key 鐐规鍖哄垎key
        */
-      handleTableSelectRowChange({ selectedRowIds }) {
-        this.selectedRowKeys = selectedRowIds
+      handleTableSelectRowChange({ selectedRowIds }, key) {
+        this['selected' + key + 'InspectionRowKeys'] = selectedRowIds
       },
 
       /**
@@ -452,10 +487,16 @@
         if (record.reportFlag) delete record.reportFlag
       },
 
+      /**
+       * 寮傚父鎻忚堪涓庡紓甯告槸鍚︿繚淇瓧娈佃嚜瀹氫箟鏍¢獙鏂规硶
+       * @param cellValue  鍗曞厓鏍煎唴鐨勫��
+       * @param row  褰撳墠琛岃褰�
+       * @param callback 缁撴灉鍥炶皟鍑芥暟
+       */
       customValidator({ cellValue, row }, callback) {
-        if (row.inspectionResult === '2') {
+        if (this.activeTabKey == '1' && row.inspectionResult != 'NORMAL') {
           if (!cellValue) {
-            callback(false, '${title}涓嶈兘涓虹┖锛�') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀�
+            callback(false, '璇疯緭鍏�${title}') // false = 鏈�氳繃锛屽彲浠ヨ窡鑷畾涔夋彁绀�
           } else {
             callback(true) // true = 閫氳繃楠岃瘉
           }
@@ -465,23 +506,9 @@
       },
 
       handleCancel() {
-        this.selectedRowKeys = []
+        this.selectedDayInspectionRowKeys = this.selectedWeekInspectionRowKeys = []
         this.visible = false
-      },
-      //鏍囧噯閫夋嫨鍙樺寲
-      loadDetail(orderId) {
-        if (orderId) {
-          getAction(this.url.detailList, { orderId: orderId })
-            .then(res => {
-              if (res.success) {
-                this.detail.dataSource = [...res.result]
-              }
-            })
-            .finally(() => {
-              this.spinning = false
-            })
-        }
-      },
+      }
     }
   }
 </script>
@@ -489,6 +516,4 @@
   /deep/ .ant-select-dropdown-menu {
     text-align: left;
   }
-
-  @import '~@assets/less/common.less';
 </style>
\ No newline at end of file

--
Gitblit v1.9.3