快速调令修改

master
xy 8 months ago
parent a605cf40df
commit 1e0628ef4e

@ -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" ? "新增" : "编辑"}成功`,
});

@ -94,6 +94,7 @@
</div>
<Table
:max-height="600"
draggable
@on-drag-drop="tableDrag"
ref="dataTable"
@ -192,14 +193,14 @@ export default {
cancelButtonText: '取消',
type: 'warning'
})
await destroy({
table_name: 'transfer_templates',
id: row.id
})
await this.getTemplates()
} 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);
},
async getDiaolingleixing() {
getDiaolingleixing() {
const obj = {
"逻辑调令": "4",
"防汛调令": "2",
@ -1229,12 +1230,10 @@ export default {
if (obj && typeof obj === "object") {
let keys = Object.keys(obj);
if (keys.length > 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;

@ -22,8 +22,9 @@
</Select>
<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 type="primary" @click="pickNoDistribute"></Button>
<Button type="primary" @click="distributeTransfers"></Button>
<Button type="primary" @click="pickNoDistribute"></Button>
<Button type="primary" @click="distributeTransfers"></Button>
<Button type="error" @click="destroyTransfers"></Button>
</div>
<Table
@ -94,6 +95,24 @@ export default {
loading: false,
areas: [],
abilities: [],
diaolingleixing: [
{
"key": "逻辑调令",
"value": 4
},
{
"key": "防汛调令",
"value": 2
},
{
"key": "水环境调令",
"value": 1
},
{
"key": "船只过闸调令",
"value": 3
}
],
date: this.$moment().format("YYYY-MM-DD"),
select: {
table_name: 'transfers',
@ -121,11 +140,11 @@ export default {
op: "eq",
value: ""
},
{
key: "status",
op: "eq",
value: 1
}
// {
// key: "status",
// op: "eq",
// value: 1
// }
]
},
total: 0,
@ -147,18 +166,7 @@ export default {
key: "xuhao"
},
{
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: "点位",
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) {

@ -35,7 +35,7 @@
<div style="display: flex;justify-content: space-between;align-items: center;">
<div class="title">
<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>
<Button size="small" type="primary" @click="isShowCreate = !isShowCreate">{{ isShowCreate ? '收起' : '展开'}}<i class="el-icon-arrow-down el-icon--right"></i></Button>
</div>

@ -8,7 +8,7 @@
>
<template #content>
<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>
</LxHeader>
@ -20,6 +20,21 @@
<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>
</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>
</template>
@ -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({

@ -17,7 +17,7 @@
<Option v-for="item in abilities" :value="item.value">{{ item.key }}</Option>
</Select>
<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
style="margin-left: 10px"
type="primary"
@ -442,9 +442,12 @@ 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,
kaiqishuliang: i.kaiqishuliang
}))
}
})

Loading…
Cancel
Save