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 | 419 +++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 288 insertions(+), 131 deletions(-) diff --git a/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue b/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue index bcef3b4..1e3581f 100644 --- a/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue +++ b/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue @@ -1,5 +1,5 @@ <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="spinning"> <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelColLong" @@ -8,7 +8,7 @@ <a-col :span="24"> <a-form-model-item label="璁惧缁�" prop="equipmentIds"> <a-input-search readOnly v-model="model.equipmentIds" @search="deviceSearch" enter-button - placeholder="璇烽�夋嫨璁惧"/> + placeholder="璇烽�夋嫨璁惧" /> </a-form-model-item> </a-col> </a-row> @@ -40,19 +40,30 @@ <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 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-col> + <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-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> @@ -73,118 +84,124 @@ <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="'閫夋嫨璁惧'"/> + <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'閫夋嫨璁惧'" /> </a-modal> </template> <script> - import { getAction, postAction } from '@api/manage' - import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' +import Calendar from 'vue-calendar-component' +import { getAction, postAction } from '@api/manage' +import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' - export default { - name: 'EquipmentStandbyShutdownModal', - components: { SelectDeviceDrawer }, - props: {}, - data() { - return { - title: '', - visible: false, - model: {}, - equipmentList: [], - downtimeDescriptionList: [], - labelColLong: { - xs: { span: 24 }, - sm: { span: 6 } - }, - wrapperColLong: { - xs: { span: 24 }, - sm: { span: 16 } - }, - 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' - } - } +export default { + name: 'EquipmentStandbyShutdownModal', + components: { SelectDeviceDrawer, Calendar }, + props: {}, + data() { + return { + title: '', + visible: false, + value: '', + model: {}, + equipmentList: [], + downtimeDescriptionList: [], + labelColLong: { + xs: { span: 24 }, + sm: { span: 6 } + }, + wrapperColLong: { + xs: { span: 24 }, + sm: { span: 16 } + }, + 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' + }, + shiData: [], + sendDte: [] + } + }, + methods: { + add() { + this.resetSelect() + this.edit({ + downtimeType: 0 + }) }, - methods: { - add() { - this.edit({ - downtimeType: 0 + + edit(record) { + this.model = Object.assign({}, record, { equipmentIds: record.equipmentId }) + 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 = [] + this.spinning = true + getAction(this.url.getDowntimeDescriptionListByDowntimeType, { downtimeType: this.model.downtimeType }) + .then(res => { + if (res.success) that.downtimeDescriptionList = res.result }) - }, + .finally(() => { + that.spinning = false + }) + }, - edit(record) { - this.model = Object.assign({}, record, { equipmentIds: record.equipmentId }) - 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 = [] - 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 - } + handleOk() { + const that = this + // 瑙﹀彂琛ㄥ崟楠岃瘉 + 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 + } + that.model.dateList = this.sendDte + if (that.model.dateList && that.model.dateList.length > 0) { postAction(url, that.model) .then((res) => { if (res.success) { @@ -205,41 +222,181 @@ that.confirmLoading = that.spinning = false }) } else { - return false + that.confirmLoading = false + that.$notification.warning({ + message: '娑堟伅', + description: '璇烽�夋嫨鐢熸晥鏃堕棿!' + }) } - }) - }, + } + }) + }, - 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(',') : [] - }, + 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') - }, + /** + * 閫夋嫨宸叉湁璁惧鍚庣偣鍑荤‘瀹氭椂瑙﹀彂 + * @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() + 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