From 54c22f2f0e98c35e48cdad6c4d0299d08beea630 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期一, 28 七月 2025 10:15:13 +0800 Subject: [PATCH] update --- src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue | 331 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 283 insertions(+), 48 deletions(-) diff --git a/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue b/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue index 3332d8a..1e3581f 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" + <a-modal :title="title" :width="900" :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,68 +40,125 @@ <a-row :gutter="24"> <a-col :span="24"> + <a-form-model-item v-if="title === '缂栬緫'" label="鍋滄満鏃ユ湡" prop="theDate"> + <a-date-picker :disabled="true" v-model="model.theDate" placeholder="璇烽�夋嫨鍋滄満鏃ユ湡" + value-format="YYYY-MM-DD" + style="width: 100%" /> + </a-form-model-item> + + <a-form-item v-if="title === '鏂板'" label="鍋滄満鏃ユ湡" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> + <div class="mainBox"> + <Calendar + v-on:choseDay="clickDay" + :markDate="shiData" + :agoDayHide="value" + ></Calendar> + </div> + </a-form-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-textarea v-model="model.remark" placeholder="璇疯緭鍏ュ娉�" /> </a-form-model-item> </a-col> </a-row> </a-form-model> </a-spin> + + <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'閫夋嫨璁惧'" /> </a-modal> </template> <script> +import Calendar from 'vue-calendar-component' import { getAction, postAction } from '@api/manage' +import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' export default { name: 'EquipmentStandbyShutdownModal', - components: {}, + components: { SelectDeviceDrawer, Calendar }, props: {}, data() { return { title: '', visible: false, + value: '', model: {}, + equipmentList: [], downtimeDescriptionList: [], labelColLong: { - xs: { - span: 24 - }, - sm: { - span: 5 - } + xs: { span: 24 }, + sm: { span: 6 } }, wrapperColLong: { - xs: { - span: 24 - }, - sm: { - span: 17 - } + xs: { span: 24 }, + sm: { span: 16 } }, confirmLoading: false, - form: this.$form.createForm(this), + spinning: false, + disableSelectDevice: false, validatorRules: { + equipmentIds: [ + { required: true, message: '璇烽�夋嫨璁惧', trigger: 'change' } + ], downtimeType: [ - { - required: true, message: '璇烽�夋嫨鍋滄満绫诲瀷' - } + { required: true, message: '璇烽�夋嫨鍋滄満绫诲瀷' } ], reasonId: [ - { - required: true, message: '璇烽�夋嫨鍋滄満鍘熷洜' - } + { 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' - } + }, + shiData: [], + sendDte: [] } }, methods: { + add() { + this.resetSelect() + this.edit({ + downtimeType: 0 + }) + }, + edit(record) { - this.model = Object.assign({}, record) + this.model = Object.assign({}, record, { equipmentIds: record.equipmentId }) this.getDowntimeDescriptionListByApi() if (this.model.downtimeType === null) { delete this.model.downtimeType @@ -111,9 +178,13 @@ 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 }) }, @@ -122,46 +193,210 @@ // 瑙﹀彂琛ㄥ崟楠岃瘉 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 - }) - } + that.confirmLoading = that.spinning = true + let url + if (!that.model.id) { + url = that.url.add + } else { + url = that.url.edit + } + that.model.dateList = this.sendDte + if (that.model.dateList && that.model.dateList.length > 0) { + 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 { + that.confirmLoading = false + that.$notification.warning({ + message: '娑堟伅', + description: '璇烽�夋嫨鐢熸晥鏃堕棿!' }) - .finally(() => { - that.confirmLoading = 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() + }, + resetSelect() {//閲嶇疆閫変腑鐨勬棩鏈� + this.selectDate = [] + this.shiData = [] + this.sendDte = [] + }, + fun(obj) { + console.log(obj) + if (obj) { + if (obj = obj.split('/')) { + var timShi = obj[1] + var timFen = obj[2] + if (timShi < 10) { + timShi = '0' + timShi + } + if (timFen < 10) { + timFen = '0' + timFen + } + var dd = (obj[0] + timShi + timFen) + return dd + } + } + }, + clickDay(today) {//閫変腑鏃ユ湡 + let existDate = this.selectDate + let isExist = true + for (var i = 0; i < existDate.length; i++) { + if (existDate[i].date === today) { + this.selectDate.splice(i, 1) + this.shiData.splice(i, 1) + this.sendDte.splice(i, 1) + isExist = false + } + } + if (isExist) {//褰撳墠鏃ユ湡瀛樺湪绉婚櫎 + let tempDate = { date: today, className: 'mark1' } + // let ddd = this.fun(today) + let ddd = today + let ccc = this.fun(today) + this.selectDate.push(tempDate) + this.shiData.push(ddd) + this.sendDte.push(ccc) + } } } } </script> +<style scoped lang="less"> +/deep/ .ant-modal-close { + color: #1191b0; + font-size: 24px; +} +/deep/ .ant-modal-close-x { + font-size: 24px; +} + +.ant-btn { + padding: 0 10px; + margin-left: 3px; +} + +.ant-form-item-control { + line-height: 0px; +} + +/** 涓昏〃鍗曡闂磋窛 */ +.ant-form .ant-form-item { + margin-bottom: 10px; +} + +/** Tab椤甸潰琛岄棿璺� */ +.ant-tabs-content .ant-form-item { + margin-bottom: 0px; +} + +/deep/ .mark1 { + color: white !important; + background-color: #1890ff !important; + border-radius: 50%; +} + +/deep/ .mainBox .wh_content_all { + background-color: #ffffff; + border: 1px silver solid; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +/deep/ .mainBox .wh_content_all .wh_jiantou1 { + border-top: 2px solid #000000; + border-left: 2px solid #000000; +} + +/deep/ .mainBox .wh_content_all .wh_jiantou2 { + border-top: 2px solid #000000; + border-right: 2px solid #000000; +} + +/deep/ .mainBox .wh_content_all .wh_top_changge li { + color: black; +} + +/deep/ .mainBox .wh_content_all .wh_content_item { + margin-top: 5px; +} + +/deep/ .mainBox .wh_content_all .wh_content_item .wh_top_tag { + color: #000000; +} + +/deep/ .mainBox .wh_content_all .wh_content_item .wh_item_date { + color: #000000; +} + +/deep/ .mainBox .wh_content_all .wh_content_item .wh_item_date:hover { + color: #1890ff; + border: 1px solid #1890ff; + border-radius: 50%; +} + +/deep/ .mainBox .wh_content_all .wh_content_item .wh_other_dayhide { + color: #bfbfbf !important; +} + +/deep/ .mainBox .wh_content_all .wh_content_item .wh_want_dayhide { + color: #bfbfbf !important; +} + +/deep/ .mainBox .wh_content_all .wh_content_item .wh_chose_day { + background: #ffffff; + color: #000000; +} + +/deep/ .mainBox .wh_content_all .wh_content_item .wh_isMark { + color: #ffffff; + background-color: blue; +} + +</style> -- Gitblit v1.9.3