zhangherong
2025-04-27 dbb3445dc720a8f36b3424e73f2e02a6b0f9deb6
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,10 +80,6 @@
            </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>
@@ -87,6 +88,7 @@
<script>
import { httpAction } from '@/api/manage'
import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
  import moment from 'moment'
export default {
  name: 'EamReportRepairModal',
@@ -133,6 +135,9 @@
        ],
        faultName: [
          { required: true, message: '请选择故障简称' }
          ],
          faultDescription: [
            { required: true, message: '请输入故障描述' }
        ]
      },
      url: {
@@ -141,19 +146,20 @@
      }
    }
  },
  created() {
  },
  methods: {
    add() {
      //初始化默认值
      this.edit({
        breakdownFlag: this.breakdownFlagList.find(item => item.label === '是').value
          faultDescription: '',
          breakdownFlag: this.breakdownFlagList.find(item => item.label === '否').value
      })
    },
    edit(record) {
      this.model = Object.assign({}, record)
        this.model = Object.assign({}, record, { imageFilesResult: record.imageFiles && this.isJSON(record.imageFiles) ? JSON.parse(record.imageFiles) : null })
      this.visible = true
    },
    handleFaultNameChange(value) {
      const faultReasonItem = this.faultReasonList.find(item => item.faultName === value)
      this.model.faultType = faultReasonItem.faultCategory
@@ -194,10 +200,49 @@
      })
    },
      // 判断是不是JSON字符串
      isJSON(str) {
        try {
          JSON.parse(str)
          return true // 如果这里没有抛出异常,说明是JSON格式的字符串
        } catch (e) {
          return false // 如果抛出异常,说明不是JSON格式的字符串
        }
      },
      /**
       * 禁用日期
       * @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
      this.$refs.form.clearValidate()
        if (this.$refs.form) this.$refs.form.clearValidate()
    }
  }
}