From f3aaac69a79ce61de3d8b8d674cd4c153c00f38f Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期二, 15 四月 2025 10:06:02 +0800
Subject: [PATCH] art: 生产打包配置

---
 src/views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal.vue |  194 ++++++++++++++++++++++++++++++++++++------------
 1 files changed, 146 insertions(+), 48 deletions(-)

diff --git a/src/views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal.vue b/src/views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal.vue
index aed2480..503be9c 100644
--- a/src/views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal.vue
+++ b/src/views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal.vue
@@ -23,7 +23,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>
+                                            @autocompleteForm="autocompleteForm"
+                                            disabled></maintenance-equipment-select>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
@@ -35,7 +36,8 @@
         <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
+              <a-date-picker placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" v-model="model.maintenanceDate" format="YYYY-MM-DD"
+                             disabled
                              style="width: 100%" />
             </a-form-model-item>
           </a-col>
@@ -56,31 +58,70 @@
             <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" prop="remark" label="淇濆吇鍥剧墖">
+            <lx-upload :returnUrl="false"
+                       :isMultiple="true"
+                       file-type="image"
+                       v-model="model.fileList" />
+          </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">
-          <j-vxe-table
-            ref="editableDetailTable"
-            :rowNumber="true"
-            :rowSelection="true"
-            :bordered="true"
-            :alwaysEdit="true"
-            :toolbar="true"
-            :toolbarConfig="detail.toolbarConfig"
-            keep-source
-            :height="300"
-            :loading="detail.loading"
-            :dataSource="detail.dataSource"
-            :columns="detail.columns"
-            style="margin-top: 8px;" />
+          <a-tabs>
+            <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:maintenanceResult="props">
+                  <j-dict-select-tag v-model="props.row.maintenanceResult" dictCode="eam_inspection_result"
+                                     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"
+                              :disabled="!props.row.maintenanceResult||props.row.maintenanceResult==='1'" />
+                </template>
+
+                <template v-slot:reportFlag="props">
+                  <j-dict-select-tag v-model="props.row.reportFlag"
+                                     :disabled="!props.row.maintenanceResult||props.row.maintenanceResult==='1'"
+                                     dictCode="yn"
+                                     style="width: 100%" />
+                </template>
+              </j-vxe-table>
+            </a-tab-pane>
+            <a-button v-if="selectedRowKeys.length>0" slot="tabBarExtraContent" type="primary"
+                      @click="handleSelectAllInspectionResult">鎵归噺淇濆吇姝e父
+            </a-button>
+          </a-tabs>
         </a-row>
-        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 鐝粍闀跨‘璁や俊鎭�
-        </a-divider>
-        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 鍒濋獙鏀朵俊鎭�
-        </a-divider>
-        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 缁堥獙鏀朵俊鎭�
-        </a-divider>
+        <div v-if="['WAIT_CONFIRM', 'WAIT_INITIAL_ACCEPTANCE', 'WAIT_FINAL_ACCEPTANCE', 'COMPLETE'].includes(model.maintenanceStatus)">
+          <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 鐝粍闀跨‘璁や俊鎭�
+          </a-divider>
+        </div>
+        <div v-if="['WAIT_INITIAL_ACCEPTANCE', 'WAIT_FINAL_ACCEPTANCE', 'COMPLETE'].includes(model.maintenanceStatus)">
+          <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 鍒濋獙鏀朵俊鎭�
+          </a-divider>
+        </div>
+        <div v-if="['WAIT_FINAL_ACCEPTANCE', 'COMPLETE'].includes(model.maintenanceStatus)">
+          <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 缁堥獙鏀朵俊鎭�
+          </a-divider>
+        </div>
       </a-form-model>
     </a-spin>
   </j-modal>
@@ -104,10 +145,10 @@
       visible: false,
       //鐘舵�佹帶鍒�
       //淇濆吇涓� 涓嶅彲缂栬緫
-      underMaintenanceDisable : false,
-      confirmDisable : false,
-      initialAcceptanceDisable : false,
-      finalAcceptanceDisable : false,
+      underMaintenanceDisable: false,
+      confirmDisable: false,
+      initialAcceptanceDisable: false,
+      finalAcceptanceDisable: false,
       editable: false,
       model: {},
       maintenanceCategory: 'WEEK_MAINTENANCE',
@@ -129,13 +170,12 @@
         sm: { span: 21 }
       },
       confirmLoading: false,
-      validatorRules: {
-      },
+      validatorRules: {},
       url: {
         queryById: '/eam/weekMaintenanceOrder/queryById',
         detail: '/eam/weekMaintenanceOrderDetail/queryList',
-        approval : '/eam/weekMaintenanceOrder/approval',
-        userSelect: '/eam/user_select/list',
+        approval: '/eam/weekMaintenanceOrder/approval',
+        userSelect: '/eam/user_select/list'
       },
       detail: {
         loading: false,
@@ -155,31 +195,63 @@
             title: '搴忓彿',
             key: 'itemCode',
             type: JVXETypes.normal,
-            width: '10%',
-            align: 'center',
+            width: '5%',
+            align: 'center'
           },
           {
             title: '淇濆吇椤�',
             key: 'itemName',
             type: JVXETypes.normal,
-            width: '20%',
-            align: 'center',
+            width: '10%',
+            align: 'center'
           },
           {
             title: '瀛愪繚鍏婚」',
             key: 'subItemName',
             type: JVXETypes.normal,
-            width: '25%',
+            width: '10%',
             align: 'center'
           },
           {
             title: '淇濆吇瑕佹眰',
             key: 'itemDemand',
             type: JVXETypes.normal,
-            width: '30%',
+            width: '20%',
+            align: 'center'
+          },
+          {
+            title: '淇濆吇缁撴灉',
+            key: 'maintenanceResult',
+            type: JVXETypes.selectSearch,
+            dictCode: 'eam_inspection_result',
+            width: '10%',
             align: 'center',
+            slotName: 'maintenanceResult',
+            validateRules: [
+              { required: true, message: '淇濆吇缁撴灉涓嶈兘涓虹┖锛�' }
+            ]
+          },
+          {
+            title: '寮傚父鎻忚堪',
+            key: 'exceptionDescription',
+            type: JVXETypes.textarea,
+            width: '20%',
+            align: 'center',
+            slotName: 'exceptionDescription',
+          },
+          {
+            title: '鏄惁鎶ヤ慨',
+            key: 'reportFlag',
+            type: JVXETypes.selectSearch,
+            dictCode: 'yn',
+            width: '10%',
+            align: 'center',
+            slotName: 'reportFlag',
           }
         ],
+        isDisplayBmp: false,
+        showBmpButtonLoading: false,
+        selectedRowKeys: [],
         toolbarConfig: {
           // prefix 鍓嶇紑锛泂uffix 鍚庣紑
           slot: ['prefix', 'suffix'],
@@ -192,14 +264,17 @@
   created() {
   },
   methods: {
-    async handleDetail(dataId) {
-      this.loading = true;
-      this.visible = true;
+    async handleDetail(item) {
+      this.loading = true
+      this.visible = true
       this.detail.dataSource = []
-      let res = await getAction(this.url.queryById, {id: dataId});
-      this.model = Object.assign({}, res.result);
-      await this.loadDetail(dataId);
-      this.loading = false;
+      let param = {
+        id: item.dataId
+      }
+      let res = await getAction(this.url.queryById, param)
+      this.model = Object.assign({}, res.result, item)
+      await this.loadDetail(item.dataId)
+      this.loading = false
     },
     close() {
       this.$emit('close')
@@ -251,8 +326,7 @@
       if (!this.model.id) {
         this.loadStandardDetail(selectObj.id)
       }
-      debugger
-      this.loadMaintenanceOperatorList(this.model.equipmentId);
+      this.loadMaintenanceOperatorList(this.model.equipmentId)
     },
     //鏍囧噯閫夋嫨鍙樺寲
     loadDetail(orderId) {
@@ -279,8 +353,32 @@
           }))
         }
       })
-    }
-
+    },
+    handleInspectionResultSelectChange(value, record) {
+      if (record.exceptionDescription) delete record.exceptionDescription
+      if (record.reportFlag) delete record.reportFlag
+    },
+    // 鎵归噺閫夋嫨鎵�鏈夌偣妫�缁撴灉
+    handleSelectAllInspectionResult() {
+      this.selectedRowKeys.forEach(key => {
+        const dataItem = this.detail.dataSource.find(item => item.id === key)
+        if (dataItem && dataItem.maintenanceResult !== '1') {
+          console.log('dataItem', dataItem)
+          delete dataItem.exceptionDescription
+          delete dataItem.reportFlag
+          dataItem.maintenanceResult = '1'
+        }
+      })
+      this.$refs.editableDetailTable.clearCheckboxRow()
+      this.selectedRowKeys = []
+    },
+    /**
+     * 琛ㄦ牸澶氶�夋鍙戠敓鏀瑰彉鏃惰Е鍙�
+     * @param {selectedRowIds} 琛ㄦ牸涓凡閫夋嫨鐨処D鍒楄〃
+     */
+    handleTableSelectRowChange({ selectedRowIds }) {
+      this.selectedRowKeys = selectedRowIds
+    },
   }
 }
 </script>

--
Gitblit v1.9.3