From 73dbf3aabed9a07df0d27fb0c6bafa94a3d9805a Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期一, 07 七月 2025 21:16:57 +0800
Subject: [PATCH] 修改导入

---
 src/views/eam/maintenance/modules/EamInspectionOrderModal.vue |  320 +++++++++++++++++++++++++----------------------------
 1 files changed, 151 insertions(+), 169 deletions(-)

diff --git a/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue b/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue
index 8a81706..1ecc745 100644
--- a/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue
+++ b/src/views/eam/maintenance/modules/EamInspectionOrderModal.vue
@@ -4,7 +4,8 @@
 
     <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="standardCode" label="宸ュ崟鍙�">
               <a-input placeholder="宸ュ崟鍙疯嚜鍔ㄧ敓鎴�" v-model="model.orderNum" disabled/>
@@ -12,62 +13,65 @@
           </a-col>
           <a-col :span="8">
             <a-form-model-item prop="equipmentId" label="缁熶竴缂栫爜">
-              <MaintenanceEquipmentSelect placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId"
-                                          :maintenanceCategory="maintenanceCategory" :disabled="disabled"
+              <MaintenanceEquipmentSelect placeholder="璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�" v-model="model.equipmentId" :allow-clear="false"
+                                          maintenanceCategory="POINT_INSPECTION" :disabled="!editable"
                                           @autocompleteForm="autocompleteForm"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
             <a-form-model-item prop="standardName" label="瑙勮寖鍚嶇О">
-              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" readOnly v-model="model.standardName"/>
-            </a-form-model-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-col :span="8">
-            <a-form-model-item prop="standardCode" label="瑙勮寖缂栫爜">
-              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" readOnly v-model="model.standardCode"/>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="8">
-            <a-form-model-item label="淇濆吇鍛ㄦ湡">
-              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" readOnly/>
-            </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-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" disabled v-model="model.standardName"/>
             </a-form-model-item>
           </a-col>
         </a-row>
 
-        <a-row :gutter="24">
+        <a-row>
           <a-col :span="8">
-            <a-form-model-item label="鐐规鏃ユ湡" prop="inspectionDate">
-              <j-date :placeholder="!model.maintenancePeriod?'璇峰~鍐欎繚鍏诲懆鏈�':'璇烽�夋嫨鐐规鏃ユ湡'" v-model="model.inspectionDate"
-                      :disabled="!model.maintenancePeriod"
-                      @change="expirationTimeFrom(model.inspectionDate)" style="width: 100%"/>
+            <a-form-model-item prop="standardCode" label="瑙勮寖缂栫爜">
+              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" disabled v-model="model.standardCode"/>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
-            <a-form-model-item label="鐐规杩囨湡鏃堕棿">
-              <j-date placeholder="閫夋嫨鐐规鏃ユ湡鍚庤嚜鍔ㄥ甫鍑�" v-model="model.expirationTime" disabled style="width: 100%"/>
+            <a-form-model-item label="淇濆吇鍛ㄦ湡">
+              <a-input placeholder="閫夋嫨璁惧鍚庤嚜鍔ㄥ甫鍑�" v-model="model.maintenancePeriod" disabled/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="8">
+            <a-form-model-item label="鐐规鏃ユ湡" prop="inspectionDate">
+              <a-date-picker v-model="model.inspectionDate" @change="expirationTimeFrom(model.inspectionDate)"
+                             :allow-clear="false" value-format="YYYY-MM-DD" style="width: 100%"/>
             </a-form-model-item>
           </a-col>
         </a-row>
-        <a-row :gutter="24">
+
+        <a-row>
+          <a-col :span="8">
+            <a-form-model-item label="鐐规杩囨湡鏃堕棿">
+              <a-date-picker placeholder="閫夋嫨鐐规鏃ユ湡鍚庤嚜鍔ㄥ甫鍑�" :value="model.expirationTime" disabled style="width: 100%"
+                             value-format="YYYY-MM-DD"/>
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+
+        <a-row>
           <a-col :span="24">
             <a-form-model-item label="澶囨敞" :labelCol="{span:2}" :wrapperCol="{span:21}" prop="remark">
               <a-textarea v-model="model.remark" rows="3" placeholder="璇疯緭鍏ュ娉�"/>
             </a-form-model-item>
           </a-col>
         </a-row>
-        <a-row :gutter="24">
-          <j-vxe-table ref="editableDetailTable" :rowNumber="true" :rowSelection="true" :bordered="true"
-                       :alwaysEdit="true" :toolbar="true" keep-source :height="300" :loading="detail.loading"
-                       :dataSource="detail.dataSource" :columns="detail.columns" style="margin-top: 8px;"/>
-        </a-row>
+
+        <a-tabs default-active-key="1">
+          <a-tab-pane key="1" tab="鏃ョ偣妫�">
+            <j-vxe-table rowNumber bordered keep-source :height="300" always-edit :dataSource="detail.dayInspectionList"
+                         :columns="detail.standardInspectionColumns"/>
+          </a-tab-pane>
+          <a-tab-pane key="2" tab="鍛ㄧ偣妫�" v-if="detail.weekInspectionList.length>0" forceRender>
+            <j-vxe-table rowNumber bordered always-edit keep-source :height="300"
+                         :dataSource="detail.weekInspectionList"
+                         :columns="detail.weekInspectionColumns"/>
+          </a-tab-pane>
+        </a-tabs>
       </a-form-model>
     </a-spin>
   </j-modal>
@@ -78,7 +82,7 @@
   import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
   import { JVXETypes } from '@/components/jeecg/JVxeTable'
   import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect'
-  import moment from 'dayjs'
+  import moment from 'moment'
 
   export default {
     name: 'EamMaintenanceStandardModal',
@@ -101,66 +105,93 @@
         },
         confirmLoading: false,
         spinning: false,
-        disabled: false,
+        editable: true,
         validatorRules: {
-          // standardName: [
-          //   { required: true, message: '璇疯緭鍏ヨ鑼冨悕绉�!' }
-          // ],
           inspectionDate: [
             { required: true, message: '璇烽�夋嫨鐐规鏃ユ湡', trigger: 'change' }
           ],
-          // maintenancePeriod: [
-          //   { required: true, message: '璇疯緭鍏ヤ繚鍏诲懆鏈燂紝鍗曚綅锛氬ぉ!' }
-          // ],
           equipmentId: [
-            { required: true, message: '璇烽�夋嫨璁惧', trigger: 'change' }
+            { required: true, message: '璇疯緭鍏ョ粺涓�缂栫爜鎴栧悕绉版悳绱�', trigger: 'change' }
           ]
         },
         url: {
           add: '/eam/eamInspectionOrder/add',
           edit: '/eam/eamInspectionOrder/edit',
           detail: '/eam/eamMaintenanceStandardDetail/queryList',
-          detailOrder: '/eam/eamInspectionOrderDetail/queryList',
-          userSelect: '/eam/user_select/list'
+          weekInspectionOrderList: '/eam/eamWeekInspectionDetail/queryStandardList'
         },
-        maintenanceCategory: 'POINT_INSPECTION',
-        maintenanceOperatorOptions: [],
         standardId: '',
-        standardType: false,
         detail: {
-          loading: false,
-          dataSource: [],
-          columns: [
+          dayInspectionList: [],
+          weekInspectionList: [],
+          standardInspectionColumns: [
             {
               title: '搴忓彿',
               key: 'itemCode',
               type: JVXETypes.inputNumber,
-              width: '10%',
+              width: 100,
               align: 'center',
-              validateRules: [
-                { required: true, message: '璇疯緭鍏�${title}' },
-                { unique: true, message: '搴忓彿涓嶈兘閲嶅' }
-              ]
+              disabled: true
             },
             {
               title: '淇濆吇椤�',
               key: 'itemName',
               type: JVXETypes.textarea,
-              width: '20%',
               align: 'center',
-              validateRules: [
-                { required: true, message: '璇疯緭鍏�${title}' }
-              ]
+              disabled: true
+            },
+            {
+              title: '淇濆吇瑙勮寖鎴栬姹�',
+              key: 'itemDemand',
+              type: JVXETypes.textarea,
+              align: 'center',
+              disabled: true
+            }
+          ],
+          weekInspectionColumns: [],
+          weekInspectionOrderColumns: [
+            {
+              title: '搴忓彿',
+              key: 'itemCode',
+              type: JVXETypes.normal,
+              width: 60,
+              align: 'center',
+              fixed: 'left'
+            },
+            {
+              title: '淇濆吇椤�',
+              key: 'itemName',
+              type: JVXETypes.textarea,
+              align: 'center',
+              fixed: 'left'
             },
             {
               title: '淇濆吇瑕佹眰',
               key: 'itemDemand',
               type: JVXETypes.textarea,
-              width: '30%',
               align: 'center',
-              validateRules: [
-                { required: true, message: '璇疯緭鍏�${title}' }
-              ]
+              fixed: 'left'
+            },
+            {
+              title: '鐐规缁撴灉',
+              key: 'inspectionResult',
+              type: JVXETypes.slot,
+              slotName: 'inspectionResult',
+              align: 'center'
+            },
+            {
+              title: '寮傚父鎻忚堪',
+              key: 'exceptionDescription',
+              type: JVXETypes.slot,
+              slotName: 'exceptionDescription',
+              align: 'center'
+            },
+            {
+              title: '寮傚父鏄惁鎶ヤ慨',
+              key: 'reportFlag',
+              type: JVXETypes.slot,
+              slotName: 'reportFlag',
+              align: 'center'
             }
           ]
         }
@@ -169,61 +200,48 @@
     methods: {
       add() {
         this.model = {}
-        this.detail.dataSource = []
         this.visible = true
-        this.disabled = false
-        this.standardType = false
+        this.editable = true
+        this.detail.dayInspectionList = []
+        this.detail.weekInspectionList = []
       },
 
       edit(record) {
         this.model = Object.assign({}, record)
-        this.standardId = record.standardId
-        this.disabled = true
-        this.standardType = true
+        this.editable = false
         this.visible = true
-        this.detail.dataSource = []
-        if (record && record.referenceFile) {
-          let obj = JSON.parse(record.referenceFile)
-          this.model.fileList = [obj]
-        } else {
-          this.model.fieldList = []
-        }
-        this.loadDetailOrder(record.id)
+        this.spinning = true
       },
 
       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 = that.spinning = true
-            let httpurl = ''
+            let httpUrl = ''
             let method = ''
             if (!this.model.id) {
-              httpurl += this.url.add
+              httpUrl += this.url.add
               method = 'post'
             } else {
-              httpurl += this.url.edit
+              httpUrl += this.url.edit
               method = 'put'
             }
             this.model.standardId = this.standardId
-            httpAction(httpurl, this.model, method).then((res) => {
+            httpAction(httpUrl, this.model, method).then((res) => {
               if (res.success) {
-                that.$message.success(res.message)
+                that.$notification.success({
+                  message: '娑堟伅',
+                  description: res.message
+                })
                 that.$emit('ok')
                 that.close()
               } else {
-                that.$message.warning(res.message)
+                that.$notification.warning({
+                  message: '娑堟伅',
+                  description: res.message
+                })
               }
             }).finally(() => {
               that.confirmLoading = that.spinning = false
@@ -238,92 +256,60 @@
         this.model.standardName = selectObj.standardName
         this.model.maintenancePeriod = selectObj.maintenancePeriod
         this.model.standardCode = selectObj.standardCode
-        // 鑻ュ彇娑堣澶囬�夋嫨鍚庝繚鍏诲懆鏈熶负绌哄垯闇�娓呯┖鐐规鏃ユ湡鍜岀偣妫�杩囨湡鏃堕棿
-        if (!this.model.equipmentId) {
-          delete this.model.inspectionDate
-          delete this.model.expirationTime
-        } else {
-          // 濡傛灉鐐规鏃ユ湡瀛樺湪锛屽垯鍦ㄩ噸鏂伴�夋嫨璁惧鍚庡嵆淇濆吇鍛ㄦ湡鍙兘鍙戠敓鏀瑰彉鍚庨噸鏂拌绠楄繃鏈熸椂闂�
-          if (this.model.inspectionDate) this.expirationTimeFrom(this.model.inspectionDate)
-        }
-        if (!this.standardType) {
-          console.log('this.standardType', this.standardType)
-          this.standardId = selectObj.id
-          this.loadDetail(selectObj.id)
-        }
-        this.$nextTick(() => this.loadMaintenanceOperatorList(this.model.equipmentId))
+        this.standardId = selectObj.id
+        this.detail.dayInspectionList = []
+        this.detail.weekInspectionList = []
+        this.loadDetail()
       },
 
       expirationTimeFrom(date) {
+        // 閫夋嫨鐐规鏃ユ湡鍚庤幏鍙栫偣妫�宸ュ崟鏄庣粏鍒楄〃
+        if (this.model.equipmentId) this.getWeekInspectionOrderListByApi()
         //杩囨湡鏃堕棿鏄垵濮嬫椂闂�+淇濆吇鍛ㄦ湡
         if (date && this.model.maintenancePeriod) {
           // 杞崲涓烘椂闂存埑瀛楃涓诧紙鎴栨寚瀹氭牸寮忥級
-          this.model.expirationTime = moment(date)
-            .add(this.model.maintenancePeriod, 'days')
-            .format('YYYY-MM-DD')
+          this.model.expirationTime = moment(date).add(this.model.maintenancePeriod, 'days').format('YYYY-MM-DD')
         } else {
           this.model.expirationTime = null // 娓呯┖鏃犳晥鍊�
         }
       },
 
       //鍔犺浇璇︽儏鏁版嵁
-      loadDetail(standardId) {
-        this.detail.dataSource = []
-        if (standardId) {
-          console.log('standardId', standardId)
-          this.spinning = true
-          getAction(this.url.detail, { standardId: standardId })
-            .then(res => {
-              if (res.success) {
-                this.detail.dataSource = [...res.result]
-              }
-            })
-            .finally(() => {
-              this.spinning = false
-            })
-        }
-      },
+      loadDetail() {
 
-      loadDetailOrder(orderId) {
-        if (orderId) {
-          this.spinning = true
-          getAction(this.url.detailOrder, { orderId: orderId })
-            .then(res => {
-              if (res.success) {
-                this.detail.dataSource = [...res.result]
-              }
-            })
-            .finally(() => {
-              this.spinning = false
-            })
-        }
-      },
-
-      loadMaintenanceOperatorList(equipmentId) {
-        this.maintenanceOperatorOptions = []
-        let params = { positionCode: 'PCR0001' }
-        if (equipmentId) {
-          params.equipmentId = equipmentId
-        } else {
-          delete this.model.operator
-          return
-        }
-        const that = this
-        getAction(this.url.userSelect, params)
+        this.spinning = true
+        getAction(this.url.detail, { standardId: this.standardId })
           .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
+              this.detail.dayInspectionList = res.result.filter(item => item.itemCategory == 'DAY_INSPECTION')
+              this.detail.weekInspectionList = res.result.filter(item => item.itemCategory == 'WEEK_INSPECTION')
+              this.detail.weekInspectionColumns = this.detail.standardInspectionColumns
+              // 濡傛灉鐐规鏃ユ湡瀛樺湪锛屽垯鍦ㄩ噸鏂伴�夋嫨璁惧鍚庡嵆淇濆吇鍛ㄦ湡鍙兘鍙戠敓鏀瑰彉鍚庨噸鏂拌绠楄繃鏈熸椂闂�
+              if (this.model.inspectionDate) this.expirationTimeFrom(this.model.inspectionDate)
             }
           })
-          .catch(err => {
-            if (that.model.operator) delete that.model.operator
+          .finally(() => {
+            if (!this.model.inspectionDate) this.spinning = false
+          })
+      },
+
+      // 鑾峰彇鐐规宸ュ崟涓殑鍛ㄧ偣妫�鏄庣粏
+      getWeekInspectionOrderListByApi() {
+        this.spinning = true
+        getAction(this.url.weekInspectionOrderList, {
+          standardId: this.standardId,
+          inspectionDate: this.model.inspectionDate
+        })
+          .then(res => {
+            if (res.success) {
+              if (res.result.length > 0) {
+                this.detail.weekInspectionList = res.result
+                this.detail.weekInspectionColumns = this.detail.weekInspectionOrderColumns
+              }
+            }
+          })
+          .finally(() => {
+            this.spinning = false
           })
       },
 
@@ -338,8 +324,4 @@
       }
     }
   }
-</script>
-
-<style lang="less" scoped>
-
-</style>
\ No newline at end of file
+</script>
\ No newline at end of file

--
Gitblit v1.9.3