From dbb3445dc720a8f36b3424e73f2e02a6b0f9deb6 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期日, 27 四月 2025 11:31:57 +0800
Subject: [PATCH] art: 从沃克项目迁移设备管理代码到航宇

---
 src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue |  275 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 160 insertions(+), 115 deletions(-)

diff --git a/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue b/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue
index 8fe5db7..038abde 100644
--- a/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue
+++ b/src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue
@@ -35,10 +35,13 @@
               <a-input placeholder="璇疯緭鍏ユ晠闅滃垎绫�" v-model="model.faultType_dictText" readOnly/>
             </a-form-model-item>
           </a-col>
+        </a-row>
 
-          <a-col :span="12">
-            <a-form-model-item label="鏁呴殰鎻忚堪">
-              <a-input placeholder="璇疯緭鍏ユ晠闅滄弿杩�" v-model="model.faultDescription" readOnly/>
+        <a-row>
+          <a-col :span="24">
+            <a-form-model-item label="鏁呴殰鎻忚堪" prop="faultDescription" :labelCol="labelColLong"
+                               :wrapperCol="wrapperColLong">
+              <a-textarea placeholder="璇疯緭鍏ユ晠闅滄弿杩�" v-model="model.faultDescription"/>
             </a-form-model-item>
           </a-col>
         </a-row>
@@ -47,7 +50,8 @@
           <a-col :span="12">
             <a-form-model-item prop="faultStartTime" label="鏁呴殰寮�濮嬫椂闂�">
               <a-date-picker showTime placeholder="璇烽�夋嫨鏁呴殰寮�濮嬫椂闂�" v-model="model.faultStartTime"
-                             :allow-clear="false" value-format="YYYY-MM-DD HH:mm:ss"/>
+                             :allow-clear="false" value-format="YYYY-MM-DD HH:mm:ss" :disabledDate="disabledDate"
+                             :disabledTime="disabledTime"/>
             </a-form-model-item>
           </a-col>
 
@@ -63,7 +67,8 @@
         <a-row>
           <a-col :span="24">
             <a-form-model-item prop="imageFiles" label="鎶ヤ慨鍥剧墖" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-              <j-image-upload v-model="model.imageFiles" :is-multiple="true" :number="3"/>
+              <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
+                         v-model="model.imageFilesResult"/>
             </a-form-model-item>
           </a-col>
         </a-row>
@@ -75,132 +80,172 @@
             </a-form-model-item>
           </a-col>
         </a-row>
-        <!--        <a-form-model-item  prop="reportStatus" label="鎶ヤ慨鐘舵��">-->
-        <!--          <a-input placeholder="璇疯緭鍏ユ姤淇姸鎬�" v-model="model.reportStatus" />-->
-        <!--        </a-form-model-item>-->
-
       </a-form-model>
     </a-spin>
   </j-modal>
 </template>
 
 <script>
-import { httpAction } from '@/api/manage'
-import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
+  import { httpAction } from '@/api/manage'
+  import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
+  import moment from 'moment'
 
-export default {
-  name: 'EamReportRepairModal',
-  components: { LxSearchEquipmentSelect },
-  props: {
-    breakdownFlagList: {
-      type: Array
+  export default {
+    name: 'EamReportRepairModal',
+    components: { LxSearchEquipmentSelect },
+    props: {
+      breakdownFlagList: {
+        type: Array
+      },
+      faultReasonList: {
+        type: Array
+      }
     },
-    faultReasonList: {
-      type: Array
-    }
-  },
-  data() {
-    return {
-      title: '鎿嶄綔',
-      visible: false,
-      model: {},
-      labelCol: {
-        xs: { span: 24 },
-        sm: { span: 8 }
+    data() {
+      return {
+        title: '鎿嶄綔',
+        visible: false,
+        model: {},
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 8 }
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 12 }
+        },
+        labelColLong: {
+          xs: { span: 24 },
+          sm: { span: 4 }
+        },
+        wrapperColLong: {
+          xs: { span: 24 },
+          sm: { span: 18 }
+        },
+        confirmLoading: false,
+        validatorRules: {
+          faultStartTime: [
+            { required: true, message: '璇烽�夋嫨鏁呴殰寮�濮嬫椂闂�' }
+          ],
+          breakdownFlag: [
+            { required: true, message: '璇烽�夋嫨鏄惁鍋滄満' }
+          ],
+          equipmentId: [
+            { required: true, message: '璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储' }
+          ],
+          faultName: [
+            { required: true, message: '璇烽�夋嫨鏁呴殰绠�绉�' }
+          ],
+          faultDescription: [
+            { required: true, message: '璇疯緭鍏ユ晠闅滄弿杩�' }
+          ]
+        },
+        url: {
+          add: '/eam/eamReportRepair/add',
+          edit: '/eam/eamReportRepair/edit'
+        }
+      }
+    },
+    methods: {
+      add() {
+        //鍒濆鍖栭粯璁ゅ��
+        this.edit({
+          faultDescription: '',
+          breakdownFlag: this.breakdownFlagList.find(item => item.label === '鍚�').value
+        })
       },
-      wrapperCol: {
-        xs: { span: 24 },
-        sm: { span: 12 }
+
+      edit(record) {
+        this.model = Object.assign({}, record, { imageFilesResult: record.imageFiles && this.isJSON(record.imageFiles) ? JSON.parse(record.imageFiles) : null })
+        this.visible = true
       },
-      labelColLong: {
-        xs: { span: 24 },
-        sm: { span: 4 }
+
+      handleFaultNameChange(value) {
+        const faultReasonItem = this.faultReasonList.find(item => item.faultName === value)
+        this.model.faultType = faultReasonItem.faultCategory
+        this.model.faultType_dictText = faultReasonItem.faultCategory_dictText
+        this.model.faultDescription = faultReasonItem.faultDescription
       },
-      wrapperColLong: {
-        xs: { span: 24 },
-        sm: { span: 18 }
+
+      handleOk() {
+        const that = this
+        // 瑙﹀彂琛ㄥ崟楠岃瘉
+        console.log('model---------------', that.model)
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            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')
+              } else {
+                that.$message.warning(res.message)
+              }
+            }).finally(() => {
+              that.confirmLoading = false
+              that.close()
+            })
+          } else {
+            return false
+          }
+        })
       },
-      confirmLoading: false,
-      validatorRules: {
-        faultStartTime: [
-          { required: true, message: '璇烽�夋嫨鏁呴殰寮�濮嬫椂闂�' }
-        ],
-        breakdownFlag: [
-          { required: true, message: '璇烽�夋嫨鏄惁鍋滄満' }
-        ],
-        equipmentId: [
-          { required: true, message: '璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储' }
-        ],
-        faultName: [
-          { required: true, message: '璇烽�夋嫨鏁呴殰绠�绉�' }
-        ]
+
+      // 鍒ゆ柇鏄笉鏄疛SON瀛楃涓�
+      isJSON(str) {
+        try {
+          JSON.parse(str)
+          return true // 濡傛灉杩欓噷娌℃湁鎶涘嚭寮傚父锛岃鏄庢槸JSON鏍煎紡鐨勫瓧绗︿覆
+        } catch (e) {
+          return false // 濡傛灉鎶涘嚭寮傚父锛岃鏄庝笉鏄疛SON鏍煎紡鐨勫瓧绗︿覆
+        }
       },
-      url: {
-        add: '/eam/eamReportRepair/add',
-        edit: '/eam/eamReportRepair/edit'
+
+      /**
+       * 绂佺敤鏃ユ湡
+       * @params current 琚鐢ㄧ殑鏃堕棿
+       */
+      disabledDate(current) {
+        // Can not select days after today
+        return current > moment().endOf('day')
+      },
+
+      /**
+       * 绂佺敤鏃ユ湡涓殑鏃堕棿
+       * @returns {{disabledHours: (function(): Array), disabledMinutes: (function(): Array)}}
+       */
+      disabledTime() {
+        function range(start, end) {
+          const result = []
+          for (let i = start; i < end; i++) {
+            result.push(i)
+          }
+          return result
+        }
+
+        return {
+          disabledHours: () => range(moment().hour() + 1, 24),
+          disabledMinutes: () => range(moment().minute() + 1, 60),
+          disabledSeconds: () => range(moment().second() + 1, 60)
+        }
+      },
+
+      close() {
+        this.$emit('close')
+        this.visible = false
+        if (this.$refs.form) this.$refs.form.clearValidate()
       }
     }
-  },
-  created() {
-  },
-  methods: {
-    add() {
-      //鍒濆鍖栭粯璁ゅ��
-      this.edit({
-        breakdownFlag: this.breakdownFlagList.find(item => item.label === '鏄�').value
-      })
-    },
-    edit(record) {
-      this.model = Object.assign({}, record)
-      this.visible = true
-    },
-    handleFaultNameChange(value) {
-      const faultReasonItem = this.faultReasonList.find(item => item.faultName === value)
-      this.model.faultType = faultReasonItem.faultCategory
-      this.model.faultType_dictText = faultReasonItem.faultCategory_dictText
-      this.model.faultDescription = faultReasonItem.faultDescription
-    },
-
-    handleOk() {
-      const that = this
-      // 瑙﹀彂琛ㄥ崟楠岃瘉
-      console.log('model---------------', that.model)
-      this.$refs.form.validate(valid => {
-        if (valid) {
-          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')
-            } else {
-              that.$message.warning(res.message)
-            }
-          }).finally(() => {
-            that.confirmLoading = false
-            that.close()
-          })
-        } else {
-          return false
-        }
-      })
-    },
-
-    close() {
-      this.$emit('close')
-      this.visible = false
-      this.$refs.form.clearValidate()
-    }
   }
-}
 </script>
 
 <style lang="less" scoped>

--
Gitblit v1.9.3