From d2547913ef2e150d8bb18bc8f7423515c7ed71d0 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期五, 25 四月 2025 14:04:29 +0800 Subject: [PATCH] 1、调整设备台账铭牌二维码大小 2、待机停机页面功能开发 --- src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue | 292 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 185 insertions(+), 107 deletions(-) diff --git a/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue b/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue index 3332d8a..957eafe 100644 --- a/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue +++ b/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue @@ -1,9 +1,18 @@ <template> <a-modal :title="title" :width="500" :visible="visible" :confirmLoading="confirmLoading" @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴"> - <a-spin :spinning="confirmLoading"> - <a-form-model ref="form" :form="form" :model="model" :rules="validatorRules" :labelCol="labelColLong" + <a-spin :spinning="spinning"> + <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-model-item label="璁惧缁�" prop="equipmentIds"> + <a-input-search readOnly v-model="model.equipmentIds" @search="deviceSearch" enter-button + placeholder="璇烽�夋嫨璁惧"/> + </a-form-model-item> + </a-col> + </a-row> + <a-row :gutter="24"> <a-col :span="24"> <a-form-model-item label="鍋滄満绫诲瀷" prop="downtimeType"> @@ -14,6 +23,7 @@ </a-radio-group> </a-form-model-item> </a-col> + </a-row> <a-row :gutter="24"> @@ -30,6 +40,38 @@ <a-row :gutter="24"> <a-col :span="24"> + <a-form-model-item label="鍋滄満鏃ユ湡" prop="theDate"> + <a-date-picker v-model="model.theDate" placeholder="璇烽�夋嫨鍋滄満鏃ユ湡" value-format="YYYY-MM-DD" + style="width: 100%"/> + </a-form-model-item> + </a-col> + + </a-row> + + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-model-item label="鍋滄満鏃堕暱(min)" prop="downLong"> + <a-input-number v-model="model.downLong" :min="1" :step="1" :precision="0" placeholder="璇疯緭鍏ュ仠鏈烘椂闀�(min)" + style="width: 100%"/> + </a-form-model-item> + </a-col> + </a-row> + + <!--<a-row :gutter="24">--> + <!--<a-col :span="12">--> + <!--<a-form-model-item label="寮�濮嬫椂闂�" prop="startTime">--> + <!--<a-time-picker v-model="model.startTime" value-format="HH:mm:ss" style="width: 100%"/>--> + <!--</a-form-model-item>--> + <!--</a-col>--> + <!--<a-col :span="12">--> + <!--<a-form-model-item label="缁撴潫鏃堕棿" prop="endTime">--> + <!--<a-time-picker v-model="model.endTime" value-format="HH:mm:ss" style="width: 100%"/>--> + <!--</a-form-model-item>--> + <!--</a-col>--> + <!--</a-row>--> + + <a-row :gutter="24"> + <a-col :span="24"> <a-form-model-item label="澶囨敞"> <a-textarea v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"/> </a-form-model-item> @@ -37,128 +79,164 @@ </a-row> </a-form-model> </a-spin> + + <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'閫夋嫨璁惧'"/> </a-modal> </template> <script> -import { getAction, postAction } from '@api/manage' + import { getAction, postAction } from '@api/manage' + import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' -export default { - name: 'EquipmentStandbyShutdownModal', - components: {}, - props: {}, - data() { - return { - title: '', - visible: false, - model: {}, - downtimeDescriptionList: [], - labelColLong: { - xs: { - span: 24 + export default { + name: 'EquipmentStandbyShutdownModal', + components: { SelectDeviceDrawer }, + props: {}, + data() { + return { + title: '', + visible: false, + model: {}, + equipmentList: [], + downtimeDescriptionList: [], + labelColLong: { + xs: { span: 24 }, + sm: { span: 6 } }, - sm: { - span: 5 - } - }, - wrapperColLong: { - xs: { - span: 24 + wrapperColLong: { + xs: { span: 24 }, + sm: { span: 16 } }, - sm: { - span: 17 + confirmLoading: false, + spinning: false, + disableSelectDevice: false, + validatorRules: { + equipmentIds: [ + { required: true, message: '璇烽�夋嫨璁惧', trigger: 'change' } + ], + downtimeType: [ + { required: true, message: '璇烽�夋嫨鍋滄満绫诲瀷' } + ], + reasonId: [ + { required: true, message: '璇烽�夋嫨鍋滄満鍘熷洜' } + ], + theDate: [ + { required: true, message: '璇烽�夋嫨鍋滄満鏃ユ湡' } + ], + downLong: [ + { required: true, message: '璇疯緭鍏ュ仠鏈烘椂闀�(min)' } + ] + }, + url: { + add: '/mdc/mdcDowntime/add', + edit: '/mdc/mdcDowntime/edit', + getDowntimeDescriptionListByDowntimeType: '/mdc/mdcDowntimeReason/downtimeReasonList' } - }, - confirmLoading: false, - form: this.$form.createForm(this), - validatorRules: { - downtimeType: [ - { - required: true, message: '璇烽�夋嫨鍋滄満绫诲瀷' - } - ], - reasonId: [ - { - required: true, message: '璇烽�夋嫨鍋滄満鍘熷洜' - } - ] - }, - url: { - edit: '/mdc/mdcDowntime/edit', - getDowntimeDescriptionListByDowntimeType: '/mdc/mdcDowntimeReason/downtimeReasonList' } - } - }, - methods: { - edit(record) { - this.model = Object.assign({}, record) - this.getDowntimeDescriptionListByApi() - if (this.model.downtimeType === null) { - delete this.model.downtimeType - delete this.model.reasonId - } - this.visible = true }, - - // 鍋滄満绫诲瀷鍊煎彂鐢熸敼鍙樻椂瑙﹀彂娓呯┖鍋滄満鍘熷洜骞堕噸鏂拌幏鍙栧搴斿仠鏈虹被鍨嬬殑鍋滄満鍘熷洜鍒楄〃 - handleDowntimeTypeChange() { - if (this.model.reasonId) delete this.model.reasonId - this.removeValidate() - this.getDowntimeDescriptionListByApi() - }, - - // 璋冪敤鎺ュ彛鑾峰彇鍋滄満鍘熷洜鍒楄〃 - getDowntimeDescriptionListByApi() { - const that = this - this.downtimeDescriptionList = [] - getAction(this.url.getDowntimeDescriptionListByDowntimeType, { downtimeType: this.model.downtimeType }) - .then(res => { - if (res.success) that.downtimeDescriptionList = res.result + methods: { + add() { + this.edit({ + downtimeType: 0 }) - }, + }, - handleOk() { - const that = this - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.$refs.form.validate(valid => { - if (valid) { - that.confirmLoading = true - postAction(this.url.edit, that.model) - .then((res) => { - if (res.success) { - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - that.$emit('ok', res.result) - that.handleCancel() - } else { - that.$notification.warning({ - message: '娑堟伅', - description: res.message - }) - } - }) - .finally(() => { - that.confirmLoading = false - }) - } else { - return false + edit(record) { + this.model = Object.assign({}, record) + this.getDowntimeDescriptionListByApi() + if (this.model.downtimeType === null) { + delete this.model.downtimeType + delete this.model.reasonId } - }) - }, + this.visible = true + }, - handleCancel() { - this.visible = false - this.removeValidate() - }, + // 鍋滄満绫诲瀷鍊煎彂鐢熸敼鍙樻椂瑙﹀彂娓呯┖鍋滄満鍘熷洜骞堕噸鏂拌幏鍙栧搴斿仠鏈虹被鍨嬬殑鍋滄満鍘熷洜鍒楄〃 + handleDowntimeTypeChange() { + if (this.model.reasonId) delete this.model.reasonId + this.removeValidate() + this.getDowntimeDescriptionListByApi() + }, - // 鍏抽棴寮圭獥鏃舵竻妤氳〃鍗曟牎楠� - removeValidate() { - if (this.$refs.form) this.$refs.form.clearValidate() + // 璋冪敤鎺ュ彛鑾峰彇鍋滄満鍘熷洜鍒楄〃 + getDowntimeDescriptionListByApi() { + const that = this + this.downtimeDescriptionList = [] + this.spinning = true + getAction(this.url.getDowntimeDescriptionListByDowntimeType, { downtimeType: this.model.downtimeType }) + .then(res => { + if (res.success) that.downtimeDescriptionList = res.result + }) + .finally(() => { + that.spinning = false + }) + }, + + handleOk() { + const that = this + // 瑙﹀彂琛ㄥ崟楠岃瘉 + console.log('model', this.model) + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = that.spinning = true + let url + if (!that.model.id) { + url = that.url.add + } else { + url = that.url.edit + } + postAction(url, that.model) + .then((res) => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.$emit('ok') + that.handleCancel() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + .finally(() => { + that.confirmLoading = that.spinning = false + }) + } else { + return false + } + }) + }, + + deviceSearch() { + this.$refs.selectDeviceDrawer.visible = true + this.$refs.selectDeviceDrawer.selectedRowKeys = [] + this.$refs.selectDeviceDrawer.selectedRows = [] + this.$refs.selectDeviceDrawer.checkedKeys = this.model.equipmentIds ? this.model.equipmentIds.split(',') : [] + }, + + /** + * 閫夋嫨宸叉湁璁惧鍚庣偣鍑荤‘瀹氭椂瑙﹀彂 + * @param data 宸查�夋嫨鐨勮澶� + */ + selectOK(data) { + this.$set(this.model, 'equipmentIds', data.join(',')) + if (this.model.equipmentIds) this.$refs.form.clearValidate('equipmentIds') + }, + + handleCancel() { + this.visible = false + this.removeValidate() + }, + + // 鍏抽棴寮圭獥鏃舵竻妤氳〃鍗曟牎楠� + removeValidate() { + if (this.$refs.form) this.$refs.form.clearValidate() + } } } -} </script> -- Gitblit v1.9.3