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