xy 2 years ago
parent 0752207f8c
commit 1a3ca15080

@ -82,7 +82,7 @@ export default {
this.getNotice() this.getNotice()
},refreshNoticeTime) },refreshNoticeTime)
}, },
beforeDestroy() { destroyed() {
clearInterval(this.timer) clearInterval(this.timer)
} }
} }

@ -172,7 +172,7 @@ export default {
this.getTransfer() this.getTransfer()
},refreshTransferTime) },refreshTransferTime)
}, },
beforeDestroy() { destroyed() {
clearInterval(this.timer) clearInterval(this.timer)
}, },
}; };

@ -32,7 +32,7 @@
<div style="line-height: 1.2;text-align: left;padding: 20px;height: 100%;display: flex;flex-direction: column;justify-content: space-between;"> <div style="line-height: 1.2;text-align: left;padding: 20px;height: 100%;display: flex;flex-direction: column;justify-content: space-between;">
<p>发令人{{ data.admin ? data.admin.name : '' }}</p> <p>发令人{{ data.admin ? data.admin.name : '' }}</p>
<p>发令时间{{ $moment(data.created_at).format("YYYY-MM-DD HH:mm") }}</p> <p>发令时间{{ $moment(data.created_at).format("YYYY-MM-DD HH:mm") }}</p>
<p>接收人</p> <p>接收人{{ data.jieshouren }}</p>
<p>开启时间{{ $moment(data.start_time).format("YYYY-MM-DD HH:mm") }}</p> <p>开启时间{{ $moment(data.start_time).format("YYYY-MM-DD HH:mm") }}</p>
<p>关闭时间{{ $moment(data.end_time).format("YYYY-MM-DD HH:mm") }}</p> <p>关闭时间{{ $moment(data.end_time).format("YYYY-MM-DD HH:mm") }}</p>
指令内容{{ data.content }} 指令内容{{ data.content }}
@ -44,6 +44,10 @@
<td>执行状态</td> <td>执行状态</td>
<td> <td>
<template v-if="data.status === 2"> <template v-if="data.status === 2">
<div class="d-flex ai-center pl-4 pb-4" style="width: 46%;">
<span style="word-break: keep-all;">接收人</span>
<el-input size="small" v-model="jieshouren"></el-input>
</div>
<div class="btns"> <div class="btns">
<Button type="primary" @click="esignConfirm"></Button> <Button type="primary" @click="esignConfirm"></Button>
</div> </div>
@ -100,6 +104,7 @@ export default {
}, },
data() { data() {
return { return {
jieshouren: "",
isShow: false, isShow: false,
data: {}, data: {},
typeMap: new Map([ typeMap: new Map([
@ -139,6 +144,7 @@ export default {
let copyData = deepCopy(this.data) let copyData = deepCopy(this.data)
if (this.data.status === 2) { if (this.data.status === 2) {
copyData.status = 3; copyData.status = 3;
copyData.jieshouren = this.jieshouren;
for (let key in copyData) { for (let key in copyData) {
if (/_relation/g.test(key)) { if (/_relation/g.test(key)) {
delete copyData[key] delete copyData[key]
@ -148,6 +154,7 @@ export default {
table_name: 'transfers', table_name: 'transfers',
...copyData ...copyData
}).then(_ => { }).then(_ => {
this.$emit('refresh')
}) })
} }
if (this.data.status === 3) { if (this.data.status === 3) {
@ -183,7 +190,7 @@ export default {
}) })
} }
this.$refs['esign'].reset() this.$refs['esign']?.reset()
this.hide() this.hide()
} }
}, },

@ -389,6 +389,7 @@ export default {
value: "", value: "",
}, },
], ],
sort_name: 'start_time'
}, },
selectQuery: [], selectQuery: [],
form: [], form: [],

@ -29,14 +29,18 @@
</div> </div>
<el-card> <el-card>
<div>{{ $moment(selectDate).format('YYYY年MM月DD日') }}调度指令执行情况</div> <div class="title">{{ $moment(selectDate).format('YYYY-MM-DD') }}调度指令执行情况</div>
<div v-for="(item, index) in transfers" :key="item.id"> <div v-for="(item, index) in transfers" :key="item.id" class="item">
<div>{{ index }}</div> <div class="sub-title">{{ numberToChinese(index+1) }}. {{ item.equipment_id_equipments_id_relation ? item.equipment_id_equipments_id_relation.name : '' }}</div>
<div> <div class="time">
<div>{{ item.equipment ? item.equipment.area : '' }}</div> <span>时间</span>
<span>{{ $moment(item.act_start_time).format('YYYY-MM-DD HH:mm') }} - {{ $moment(item.act_end_time).format('HH:mm') }}</span>
</div>
<div class="content">
<span>{{ item.equipment_id_equipments_id_relation ? area(item.equipment_id_equipments_id_relation.area) : '' }}</span>
<div>{{ item.content }}</div> <span>{{ item.content }}</span>
</div> </div>
</div> </div>
</el-card> </el-card>
@ -58,6 +62,7 @@ import { index } from "@/api/system/baseForm";
import headerContent from "@/components/LxHeader/XyContent.vue"; import headerContent from "@/components/LxHeader/XyContent.vue";
import LxHeader from "@/components/LxHeader/index.vue"; import LxHeader from "@/components/LxHeader/index.vue";
import { authMixin } from "@/mixin/authMixin"; import { authMixin } from "@/mixin/authMixin";
import { show } from "@/api/system/customFormField";
export default { export default {
components: { components: {
LxHeader, LxHeader,
@ -66,11 +71,76 @@ export default {
mixins: [authMixin], mixins: [authMixin],
data() { data() {
return { return {
types: [],
areas: [],
transfers: [], transfers: [],
selectDate: new Date(), selectDate: new Date(),
} }
}, },
methods: { methods: {
numberToChinese (num) {
if (num == 10) {
return '十'
} else if (num == 1) {
return '一'
}
const digits = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
const units = ['', '十', '百', '千', '万'];
let result = '';
let numStr = num.toString();
for (let i = 0; i < numStr.length; i++) {
let digit = parseInt(numStr.charAt(i));
let unit = units[numStr.length - i - 1];
if (digit === 0) {
// 00
if (result.charAt(result.length - 1) !== '零') {
result += '零';
}
} else {
result += digits[digit] + unit;
}
}
// 10100
if (result.charAt(0) === '一') {
result = result.substr(1, result.length);
} else if (result.charAt(0) === '百') {
result = '一' + result;
} else if (result.charAt(0) === '千') {
result = '一' + result;
}
return result
},
async getArea() {
const obj = (await show({ id: 4 }, false))?.select_item;
if (obj && typeof obj === "object") {
let keys = Object.keys(obj);
if (keys.length > 0) {
this.areas = keys.map((key) => {
return {
key,
value: /^\d*$/.test(obj[key]) ? Number(obj[key]) : obj[key],
};
});
}
}
},
async getType() {
const obj = (await show({ id: 1 }, false))?.select_item;
if (obj && typeof obj === "object") {
let keys = Object.keys(obj);
if (keys.length > 0) {
this.types = keys.map((key) => {
return {
key,
value: /^\d*$/.test(obj[key]) ? Number(obj[key]) : obj[key],
};
});
}
}
},
async getTransfer () { async getTransfer () {
this.transfers = (await index({ this.transfers = (await index({
table_name: "transfers", table_name: "transfers",
@ -82,6 +152,11 @@ export default {
op: 'range', op: 'range',
value: `${this.$moment(this.selectDate).startOf('days').format('YYYY-MM-DD HH:mm:ss')},${this.$moment(this.selectDate).endOf('days').format('YYYY-MM-DD HH:mm:ss')}` value: `${this.$moment(this.selectDate).startOf('days').format('YYYY-MM-DD HH:mm:ss')},${this.$moment(this.selectDate).endOf('days').format('YYYY-MM-DD HH:mm:ss')}`
}, },
{
key: 'status',
op: 'eq',
value: 6
}
] ]
})).data })).data
}, },
@ -92,7 +167,7 @@ export default {
{ {
children: [ children: [
new Paragraph({ new Paragraph({
text: "2023年9月20日调度指令执行情况", text: `${this.$moment(this.selectDate).format('YYYY年MM月DD日')}调度指令执行情况`,
heading: HeadingLevel.HEADING_1, heading: HeadingLevel.HEADING_1,
alignment: AlignmentType.CENTER, alignment: AlignmentType.CENTER,
spacing: { spacing: {
@ -114,34 +189,38 @@ export default {
}) })
] ]
}), }),
new Paragraph({ ...this.transfers.map((i, index) => (
spacing: { [
before: 200, new Paragraph({
line: 500 spacing: {
}, before: 200,
children: [ line: 400
new TextRun({ },
text: "一、夜间水位控制执行情况", children: [
size: 28, new TextRun({
bold: true, text: `${this.numberToChinese(index+1)}${i.equipment_id_equipments_id_relation?.name}`,
size: 28,
bold: true,
}),
]
}), }),
] new Paragraph({
}), spacing: {
new Paragraph({ before: 200,
spacing: { line: 400
before: 200, },
line: 500 indent: {
}, firstLine: convertInchesToTwip(0.5)
indent: { },
firstLine: convertInchesToTwip(0.5) children: [
}, new TextRun({
children: [ text: `1、时间${this.$moment(i.act_start_time).format('YYYY-MM-DD HH:mm')} - ${this.$moment(i.act_end_time).format('YYYY-MM-DD HH:mm')} 2、实际执行情况${i.content}`,
new TextRun({ size: 18,
text: "1、时间2023年9月19日19:00 -2023年9月20日7:00 2、实际执行情况1北部2南部东风新枢纽运行共启停2次觅渡桥水位3.00m启2.96m停23:23—1:50147分钟两台大龙港枢纽运行共启停2次觅渡桥水位3.00m启2.96m停23:25—1:48143分钟两台。", })
size: 18, ]
}) })
] ]
}) )).flat()
] ]
}, },
] ]
@ -151,12 +230,45 @@ export default {
saveAs(blob, 'test.docx') saveAs(blob, 'test.docx')
} }
}, },
computed: {}, computed: {
area () {
return function (area) {
return this.areas.find(i => i.value === area)?.key
}
}
},
created() { created() {
this.getArea()
this.getTransfer() this.getTransfer()
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.title {
font-weight: bolder;
font-size: 19px;
text-align: center;
padding: 10px 0;
}
.sub-title {
font-weight: bold;
font-size: 16px;
padding: 8px 0;
}
.time {
line-height: 1.5;
padding: 0 4px;
}
.content {
line-height: 1.5;
padding: 0 4px;
}
.item + .item {
margin-top: 20px;
}
</style> </style>

Loading…
Cancel
Save