快速调令修改

master
xy 8 months ago
parent a605cf40df
commit 1e0628ef4e

@ -153,7 +153,7 @@ export default {
} }
this.form.status = 1; 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({ this.$Message.success({
content: `${this.type === "add" ? "新增" : "编辑"}成功`, content: `${this.type === "add" ? "新增" : "编辑"}成功`,
}); });

@ -94,6 +94,7 @@
</div> </div>
<Table <Table
:max-height="600"
draggable draggable
@on-drag-drop="tableDrag" @on-drag-drop="tableDrag"
ref="dataTable" ref="dataTable"
@ -192,14 +193,14 @@ export default {
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}) })
await destroy({
table_name: 'transfer_templates',
id: row.id
})
await this.getTemplates()
} catch (e) { } catch (e) {
} }
await destroy({
table_name: 'transfer_templates',
id: row.id
})
await this.getTemplates()
} }
} }
}, "删除" }, "删除"
@ -1219,7 +1220,7 @@ export default {
} }
this.$bus.$emit("yinpaishui", this.abilities); this.$bus.$emit("yinpaishui", this.abilities);
}, },
async getDiaolingleixing() { getDiaolingleixing() {
const obj = { const obj = {
"逻辑调令": "4", "逻辑调令": "4",
"防汛调令": "2", "防汛调令": "2",
@ -1229,12 +1230,10 @@ export default {
if (obj && typeof obj === "object") { if (obj && typeof obj === "object") {
let keys = Object.keys(obj); let keys = Object.keys(obj);
if (keys.length > 0) { if (keys.length > 0) {
this.diaolingleixing = keys.map((key) => { this.diaolingleixing = keys.map((key) => ({
return { key,
key, value: /^\d*$/.test(obj[key]) ? Number(obj[key]) : obj[key],
value: /^\d*$/.test(obj[key]) ? Number(obj[key]) : obj[key], }));
};
});
} }
} }
this.$bus.$emit("diaolingleixing", this.diaolingleixing); this.$bus.$emit("diaolingleixing", this.diaolingleixing);
@ -1348,8 +1347,8 @@ export default {
this.getArea(); this.getArea();
this.getType(); this.getType();
this.getAbility(); this.getAbility();
this.getEquipmentInfos();
this.getDiaolingleixing(); this.getDiaolingleixing();
this.getEquipmentInfos();
}, },
destroyed() { destroyed() {
document.querySelector(".app-wrapper").onscroll = null; document.querySelector(".app-wrapper").onscroll = null;

@ -22,8 +22,9 @@
</Select> </Select>
<Input style="width: 140px;margin-left: 6px;" clearable v-model="select.filter[0].value" placeholder="搜索内容"/> <Input style="width: 140px;margin-left: 6px;" clearable v-model="select.filter[0].value" placeholder="搜索内容"/>
<Button style="margin-left: 6px;" type="primary" @click="getDispatches"></Button> <Button style="margin-left: 6px;" type="primary" @click="getDispatches"></Button>
<Button type="primary" @click="pickNoDistribute"></Button> <Button type="primary" @click="pickNoDistribute"></Button>
<Button type="primary" @click="distributeTransfers"></Button> <Button type="primary" @click="distributeTransfers"></Button>
<Button type="error" @click="destroyTransfers"></Button>
</div> </div>
<Table <Table
@ -94,6 +95,24 @@ export default {
loading: false, loading: false,
areas: [], areas: [],
abilities: [], abilities: [],
diaolingleixing: [
{
"key": "逻辑调令",
"value": 4
},
{
"key": "防汛调令",
"value": 2
},
{
"key": "水环境调令",
"value": 1
},
{
"key": "船只过闸调令",
"value": 3
}
],
date: this.$moment().format("YYYY-MM-DD"), date: this.$moment().format("YYYY-MM-DD"),
select: { select: {
table_name: 'transfers', table_name: 'transfers',
@ -121,11 +140,11 @@ export default {
op: "eq", op: "eq",
value: "" value: ""
}, },
{ // {
key: "status", // key: "status",
op: "eq", // op: "eq",
value: 1 // value: 1
} // }
] ]
}, },
total: 0, total: 0,
@ -147,18 +166,7 @@ export default {
key: "xuhao" key: "xuhao"
}, },
{ {
title: "范围", 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: "点位",
width: 240, width: 240,
key: "equipment_id", key: "equipment_id",
align: "center", align: "center",
@ -168,11 +176,15 @@ export default {
}, },
}, },
{ {
title: '类别', title: "范围",
width: 100, width: 140,
key: 'leibie', key: "area",
align: 'center', align: "center",
render: (h,{ row }) => h('span', (this.abilities.find(i => i.value === row.leibie))?.key) 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: "开启闸门数量", title: "开启闸门数量",
@ -188,6 +200,20 @@ export default {
align: "center", align: "center",
render: (h,{ row }) => h('span', row.kaiqishuliang1 ?? 0) 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: "调令日期", title: "调令日期",
width: 120, width: 120,
@ -517,6 +543,10 @@ export default {
equipment_id: i.equipment_id, equipment_id: i.equipment_id,
start_time: this.$moment(i.start_time).format('HH:mm'), start_time: this.$moment(i.start_time).format('HH:mm'),
end_time: this.$moment(i.end_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, content: i.content,
level: i.level, 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 () { async distributeTransfers () {
let promiseAll = this.$refs['listTable'].getSelection().map(i => { let promiseAll = this.$refs['listTable'].getSelection().map(i => {
for (let key in i) { for (let key in i) {

@ -35,7 +35,7 @@
<div style="display: flex;justify-content: space-between;align-items: center;"> <div style="display: flex;justify-content: space-between;align-items: center;">
<div class="title"> <div class="title">
<span>创建调令</span> <span>创建调令</span>
<Button type="primary" size="small" style="margin-left: 10px;" @click="$emit('quickCreate')"></Button> <Button type="primary" size="small" style="margin-left: 10px;" @click="$emit('quickCreate')"></Button>
</div> </div>
<Button size="small" type="primary" @click="isShowCreate = !isShowCreate">{{ isShowCreate ? '收起' : '展开'}}<i class="el-icon-arrow-down el-icon--right"></i></Button> <Button size="small" type="primary" @click="isShowCreate = !isShowCreate">{{ isShowCreate ? '收起' : '展开'}}<i class="el-icon-arrow-down el-icon--right"></i></Button>
</div> </div>

@ -8,7 +8,7 @@
> >
<template #content> <template #content>
<Button type="primary" style="width: 120px;" @click="$emit('normalCreate')"></Button> <Button type="primary" style="width: 120px;" @click="$emit('normalCreate')"></Button>
<Button type="primary" style="width: 120px;" @click="add"></Button> <Button type="primary" style="width: 120px;" @click="showModal = true"></Button>
</template> </template>
</LxHeader> </LxHeader>
@ -20,6 +20,21 @@
<Button type="primary" ghost long style="max-width: 260px;margin-right: 40px;" @click="data = []">清空</Button> <Button type="primary" ghost long style="max-width: 260px;margin-right: 40px;" @click="data = []">清空</Button>
<Button type="primary" long style="max-width: 260px;" @click="submit"></Button> <Button type="primary" long style="max-width: 260px;" @click="submit"></Button>
</div> </div>
<Modal v-model="showModal" title="快速调令" @on-ok="add">
<div>
<el-form label-position="top">
<el-form-item label="日期">
<el-date-picker v-model="bindDate" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="内容">
<el-input v-model="bindValue" type="textarea" :autosize="{ minRows:2 }" placeholder=' ,
点位 开始时间 结束时间 调令内容 闸门数量 水泵数量 类别 调令类型
每个值以空格隔开每条调令用","分割'></el-input>
</el-form-item>
</el-form>
</div>
</Modal>
</div> </div>
</template> </template>
@ -83,16 +98,17 @@ export default {
}, },
{ {
title: '开启时间', title: '开启时间',
width: 140, width: 220,
align: 'center', align: 'center',
key: 'start_time', key: 'start_time',
render: (h,{ row }) => { render: (h,{ row }) => {
return h('TimePicker',{ return h('DatePicker',{
props: { props: {
value: row.start_time, value: row.start_time,
type: 'time', type: 'datetime',
size: 'small', size: 'small',
transfer: true transfer: true,
format: "yyyy-MM-dd HH:mm:ss"
}, },
on: { on: {
['on-change']:e => row.start_time = e ['on-change']:e => row.start_time = e
@ -102,16 +118,17 @@ export default {
}, },
{ {
title: '结束时间', title: '结束时间',
width: 140, width: 220,
align: 'center', align: 'center',
key: 'end_time', key: 'end_time',
render: (h,{ row }) => { render: (h,{ row }) => {
return h('TimePicker',{ return h('DatePicker',{
props: { props: {
value: row.end_time, value: row.end_time,
type: 'time', type: 'datetime',
size: 'small', size: 'small',
transfer: true transfer: true,
format: "yyyy-MM-dd HH:mm:ss"
}, },
on: { on: {
['on-change']:e => row.end_time = e ['on-change']:e => row.end_time = e
@ -234,7 +251,10 @@ export default {
} }
} }
], ],
data: [] data: [],
showModal: false,
bindValue: '',
bindDate: new Date()
} }
}, },
methods: { methods: {
@ -277,37 +297,57 @@ export default {
}, },
add () { add () {
this.$prompt('请输入内容','快速调令', { let uid = uuid();
confirmButtonText: '确定', let group = this.bindValue.split(/;|/)?.filter(i => i)?.map(i => i.replace(/\n/g,''));
cancelButtonText: '取消', group.forEach((item,index) => {
inputType: 'textarea', let dataArr = item.split(/\s+/);
closeOnClickModal: false, if (dataArr.length === 8 && this.equipments.find(i => i.name === dataArr[0]) && (this.isTimeFormat(dataArr[1]) && this.isTimeFormat(dataArr[2]))) {
inputPlaceholder: '点位 开始时间 结束时间 调令内容 闸门数量 水泵数量 类别 调令类型,\n点位 开始时间 结束时间 调令内容 闸门数量 水泵数量 类别 调令类型 \n每个值以空格隔开每条调令用","分割', this.data.push({
}).then(({ value, action }) => { no: uid,
if (action === 'confirm') { equipment_id: this.equipments.find(i => i.name === dataArr[0])?.id,
let uid = uuid(); start_time: `${this.bindDate} ${dataArr[1]}`,
let group = value.split(/;|/)?.filter(i => i)?.map(i => i.replace(/\n/g,'')); end_time: `${this.bindDate} ${dataArr[2]}`,
group.forEach((item,index) => { content: dataArr[3] ?? '',
let dataArr = item.split(/\s+/); kaiqishuliang: dataArr[4] ?? 0,
if (dataArr.length === 8 && this.equipments.find(i => i.name === dataArr[0]) && (this.isTimeFormat(dataArr[1]) && this.isTimeFormat(dataArr[2]))) { kaiqishuliang1: dataArr[5] ?? 0,
this.data.push({ leibie: this.abilities.find(j => j.key === dataArr[6])?.value,
no: uid, diaolingleixing: this.diaolingleixing.find(j => j.key === dataArr[7])?.value,
equipment_id: this.equipments.find(i => i.name === dataArr[0])?.id, level: 1,
start_time: `${dataArr[1]}`, status: 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(_ => {}) })
// 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 () { submit () {
@ -316,8 +356,8 @@ export default {
return save({ return save({
table_name: 'transfers', table_name: 'transfers',
...form, ...form,
start_time: `${this.$moment().format('YYYY-MM-DD')} ${form.start_time}`, start_time: form.start_time,
end_time: `${this.$moment().format('YYYY-MM-DD')} ${form.end_time}`, end_time: form.end_time,
},false) },false)
}) })
let loadingInstance = this.$loading({ let loadingInstance = this.$loading({

@ -17,7 +17,7 @@
<Option v-for="item in abilities" :value="item.value">{{ item.key }}</Option> <Option v-for="item in abilities" :value="item.value">{{ item.key }}</Option>
</Select> </Select>
<Input style="width: 140px;margin-left: 6px;" clearable v-model="select.filter[0].value" placeholder="搜索内容"/> <Input style="width: 140px;margin-left: 6px;" clearable v-model="select.filter[0].value" placeholder="搜索内容"/>
<el-date-picker size="small" style="width: 140px;margin-left: 6px;" value-format="yyyy-MM-dd" v-model="select.filter[2].value"></el-date-picker>
<Button <Button
style="margin-left: 10px" style="margin-left: 10px"
type="primary" type="primary"
@ -442,9 +442,12 @@ export default {
equipment_id: i.equipment_id, equipment_id: i.equipment_id,
start_time: this.$moment(i.start_time).format('HH:mm'), start_time: this.$moment(i.start_time).format('HH:mm'),
end_time: this.$moment(i.end_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, content: i.content,
level: i.level, level: i.level,
kaiqishuliang: i.kaiqishuliang
})) }))
} }
}) })

Loading…
Cancel
Save