From 1e0628ef4e5258980a8865d15cc9a258604011de Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Wed, 26 Feb 2025 13:56:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=AB=E9=80=9F=E8=B0=83=E4=BB=A4=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/bigScreen1/component/callback.vue | 2 +- src/views/order/component/createDispatch.vue | 25 ++-- src/views/order/component/dispatchList.vue | 96 +++++++++++---- src/views/order/component/normalCreate.vue | 2 +- src/views/order/component/quickCreate.vue | 122 ++++++++++++------- src/views/order/handle.vue | 7 +- 6 files changed, 171 insertions(+), 83 deletions(-) diff --git a/src/views/bigScreen1/component/callback.vue b/src/views/bigScreen1/component/callback.vue index c9d81c7..e3131f5 100644 --- a/src/views/bigScreen1/component/callback.vue +++ b/src/views/bigScreen1/component/callback.vue @@ -153,7 +153,7 @@ export default { } this.form.status = 1; - save(Object.assign(this.form, { table_name: 'feedbacks' })).then(res => { + save(Object.assign(this.form, { table_name: 'feedbacks' })).then(res => { this.$Message.success({ content: `${this.type === "add" ? "新增" : "编辑"}成功`, }); diff --git a/src/views/order/component/createDispatch.vue b/src/views/order/component/createDispatch.vue index 9acb774..8253fa2 100644 --- a/src/views/order/component/createDispatch.vue +++ b/src/views/order/component/createDispatch.vue @@ -94,6 +94,7 @@ 0) { - this.diaolingleixing = keys.map((key) => { - return { - key, - value: /^\d*$/.test(obj[key]) ? Number(obj[key]) : obj[key], - }; - }); + this.diaolingleixing = keys.map((key) => ({ + key, + value: /^\d*$/.test(obj[key]) ? Number(obj[key]) : obj[key], + })); } } this.$bus.$emit("diaolingleixing", this.diaolingleixing); @@ -1348,8 +1347,8 @@ export default { this.getArea(); this.getType(); this.getAbility(); - this.getEquipmentInfos(); this.getDiaolingleixing(); + this.getEquipmentInfos(); }, destroyed() { document.querySelector(".app-wrapper").onscroll = null; diff --git a/src/views/order/component/dispatchList.vue b/src/views/order/component/dispatchList.vue index b590408..cd3df0d 100644 --- a/src/views/order/component/dispatchList.vue +++ b/src/views/order/component/dispatchList.vue @@ -22,8 +22,9 @@ - - + + +
{ - let area = row.equipment_id_equipments_id_relation ? row.equipment_id_equipments_id_relation.area : ""; - let text = this.areas.find(i => i.value === area)?.key - return h('span',text) - } - }, - { - title: "点位", + title: "工程名称", width: 240, key: "equipment_id", align: "center", @@ -168,11 +176,15 @@ export default { }, }, { - title: '类别', - width: 100, - key: 'leibie', - align: 'center', - render: (h,{ row }) => h('span', (this.abilities.find(i => i.value === row.leibie))?.key) + title: "范围", + width: 140, + key: "area", + align: "center", + render: (h, { row, index }) => { + let area = row.equipment_id_equipments_id_relation ? row.equipment_id_equipments_id_relation.area : ""; + let text = this.areas.find(i => i.value === area)?.key + return h('span',text) + } }, { title: "开启闸门数量", @@ -188,6 +200,20 @@ export default { align: "center", render: (h,{ row }) => h('span', row.kaiqishuliang1 ?? 0) }, + { + title: '类别', + width: 100, + key: 'leibie', + align: 'center', + render: (h,{ row }) => h('span', (this.abilities.find(i => i.value === row.leibie))?.key) + }, + { + title: '调令类型', + width: 100, + key: 'diaolingleixing', + align: 'center', + render: (h,{ row }) => h('span', (this.diaolingleixing.find(i => i.value === row.diaolingleixing))?.key) + }, { title: "调令日期", width: 120, @@ -517,6 +543,10 @@ export default { equipment_id: i.equipment_id, start_time: this.$moment(i.start_time).format('HH:mm'), end_time: this.$moment(i.end_time).format('HH:mm'), + kaiqishuliang: i.kaiqishuliang, + kaiqishuliang1: i.kaiqishuliang1, + yinpaishui: i.yinpaishui, + diaolingleixing: i.diaolingleixing, content: i.content, level: i.level, } @@ -550,7 +580,23 @@ export default { // }); // }); }, - + async destroyTransfers () { + try { + await this.$confirm('确认操作?','提示') + let promiseAll = this.$refs['listTable'].getSelection().map(i => destroy({ + table_name: 'transfers', + id: i.id + })) + const res = await Promise.all(promiseAll) + this.$message({ + type: 'success', + message: `删除${res.length}条调令` + }) + await this.getDispatches(); + } catch (err) { + console.error(err) + } + }, async distributeTransfers () { let promiseAll = this.$refs['listTable'].getSelection().map(i => { for (let key in i) { diff --git a/src/views/order/component/normalCreate.vue b/src/views/order/component/normalCreate.vue index f63b34b..d1f80a6 100644 --- a/src/views/order/component/normalCreate.vue +++ b/src/views/order/component/normalCreate.vue @@ -35,7 +35,7 @@
创建调令 - +
diff --git a/src/views/order/component/quickCreate.vue b/src/views/order/component/quickCreate.vue index 7a0f0a5..09f07eb 100644 --- a/src/views/order/component/quickCreate.vue +++ b/src/views/order/component/quickCreate.vue @@ -8,7 +8,7 @@ > @@ -20,6 +20,21 @@ + + +
+ + + + + + + + +
+
@@ -83,16 +98,17 @@ export default { }, { title: '开启时间', - width: 140, + width: 220, align: 'center', key: 'start_time', render: (h,{ row }) => { - return h('TimePicker',{ + return h('DatePicker',{ props: { value: row.start_time, - type: 'time', + type: 'datetime', size: 'small', - transfer: true + transfer: true, + format: "yyyy-MM-dd HH:mm:ss" }, on: { ['on-change']:e => row.start_time = e @@ -102,16 +118,17 @@ export default { }, { title: '结束时间', - width: 140, + width: 220, align: 'center', key: 'end_time', render: (h,{ row }) => { - return h('TimePicker',{ + return h('DatePicker',{ props: { value: row.end_time, - type: 'time', + type: 'datetime', size: 'small', - transfer: true + transfer: true, + format: "yyyy-MM-dd HH:mm:ss" }, on: { ['on-change']:e => row.end_time = e @@ -234,7 +251,10 @@ export default { } } ], - data: [] + data: [], + showModal: false, + bindValue: '', + bindDate: new Date() } }, methods: { @@ -277,37 +297,57 @@ export default { }, add () { - this.$prompt('请输入内容','快速调令', { - confirmButtonText: '确定', - cancelButtonText: '取消', - inputType: 'textarea', - closeOnClickModal: false, - inputPlaceholder: '点位 开始时间 结束时间 调令内容 闸门数量 水泵数量 类别 调令类型,\n点位 开始时间 结束时间 调令内容 闸门数量 水泵数量 类别 调令类型 \n每个值以空格隔开,每条调令用","分割', - }).then(({ value, action }) => { - if (action === 'confirm') { - let uid = uuid(); - let group = value.split(/;|;/)?.filter(i => i)?.map(i => i.replace(/\n/g,'')); - group.forEach((item,index) => { - let dataArr = item.split(/\s+/); - if (dataArr.length === 8 && this.equipments.find(i => i.name === dataArr[0]) && (this.isTimeFormat(dataArr[1]) && this.isTimeFormat(dataArr[2]))) { - this.data.push({ - no: uid, - equipment_id: this.equipments.find(i => i.name === dataArr[0])?.id, - start_time: `${dataArr[1]}`, - end_time: `${dataArr[2]}`, - content: dataArr[3] ?? '', - kaiqishuliang: dataArr[4] ?? 0, - kaiqishuliang1: dataArr[5] ?? 0, - leibie: this.abilities.find(j => j.key === dataArr[6])?.value, - diaolingleixing: this.diaolingleixing.find(j => j.key === dataArr[7])?.value, - level: 1, - status: 1 - }) - } + let uid = uuid(); + let group = this.bindValue.split(/;|;/)?.filter(i => i)?.map(i => i.replace(/\n/g,'')); + group.forEach((item,index) => { + let dataArr = item.split(/\s+/); + if (dataArr.length === 8 && this.equipments.find(i => i.name === dataArr[0]) && (this.isTimeFormat(dataArr[1]) && this.isTimeFormat(dataArr[2]))) { + this.data.push({ + no: uid, + equipment_id: this.equipments.find(i => i.name === dataArr[0])?.id, + start_time: `${this.bindDate} ${dataArr[1]}`, + end_time: `${this.bindDate} ${dataArr[2]}`, + content: dataArr[3] ?? '', + kaiqishuliang: dataArr[4] ?? 0, + kaiqishuliang1: dataArr[5] ?? 0, + leibie: this.abilities.find(j => j.key === dataArr[6])?.value, + diaolingleixing: this.diaolingleixing.find(j => j.key === dataArr[7])?.value, + level: 1, + status: 1 }) - console.log(this.data) } - }).catch(_ => {}) + }) + // this.$prompt('请输入内容','快速调令', { + // confirmButtonText: '确定', + // cancelButtonText: '取消', + // inputType: 'textarea', + // closeOnClickModal: false, + // inputPlaceholder: '点位 开始时间 结束时间 调令内容 闸门数量 水泵数量 类别 调令类型,\n点位 开始时间 结束时间 调令内容 闸门数量 水泵数量 类别 调令类型 \n每个值以空格隔开,每条调令用","分割', + // }).then(({ value, action }) => { + // if (action === 'confirm') { + // let uid = uuid(); + // let group = value.split(/;|;/)?.filter(i => i)?.map(i => i.replace(/\n/g,'')); + // group.forEach((item,index) => { + // let dataArr = item.split(/\s+/); + // if (dataArr.length === 8 && this.equipments.find(i => i.name === dataArr[0]) && (this.isTimeFormat(dataArr[1]) && this.isTimeFormat(dataArr[2]))) { + // this.data.push({ + // no: uid, + // equipment_id: this.equipments.find(i => i.name === dataArr[0])?.id, + // start_time: `${dataArr[1]}`, + // end_time: `${dataArr[2]}`, + // content: dataArr[3] ?? '', + // kaiqishuliang: dataArr[4] ?? 0, + // kaiqishuliang1: dataArr[5] ?? 0, + // leibie: this.abilities.find(j => j.key === dataArr[6])?.value, + // diaolingleixing: this.diaolingleixing.find(j => j.key === dataArr[7])?.value, + // level: 1, + // status: 1 + // }) + // } + // }) + // console.log(this.data) + // } + // }).catch(_ => {}) }, submit () { @@ -316,8 +356,8 @@ export default { return save({ table_name: 'transfers', ...form, - start_time: `${this.$moment().format('YYYY-MM-DD')} ${form.start_time}`, - end_time: `${this.$moment().format('YYYY-MM-DD')} ${form.end_time}`, + start_time: form.start_time, + end_time: form.end_time, },false) }) let loadingInstance = this.$loading({ diff --git a/src/views/order/handle.vue b/src/views/order/handle.vue index f409605..716b36f 100644 --- a/src/views/order/handle.vue +++ b/src/views/order/handle.vue @@ -17,7 +17,7 @@ - +