xy 2 years ago
parent a70cb5f965
commit 0752207f8c

@ -21,6 +21,7 @@
"avue-plugin-map": "^1.0.1",
"axios": "0.18.1",
"core-js": "3.6.5",
"docx": "^8.5.0",
"echarts": "^4.2.1",
"element-ui": "2.15.13",
"file-saver": "^2.0.5",

@ -62,6 +62,7 @@ import LxHeader from "@/components/LxHeader/index.vue";
// import step3 from "@/views/order/component/step3.vue";
import createDispatch from "@/views/order/component/createDispatch.vue";
import dispatchList from "@/views/order/component/dispatchList.vue";
import axios from "axios";
export default {
components: {
LxHeader,
@ -137,68 +138,10 @@ export default {
}
},
methods: {
// handleNext ({ data, step }) {
// console.log(data,step)
// switch (step) {
// case 1:
// let uid = uuid();
// this.data = data.map(equipmentId => {
// return {
// no: uid,
// equipment_id: equipmentId,
// start_time: '',
// end_time: '',
// content: '',
// level: 1,
// status: 1
// }
// })
// this.currentStep = 1;
// break;
// case 2:
// this.data = data;
// this.currentStep = 2;
// break;
// case 3:
// let promiseAll = this.data.map(i => {
// delete i['equipment_id-span']
// delete i['_index']
// delete i['_rowKey']
// i.start_time = `${this.$moment().format('YYYY-MM-DD')} ${i.start_time}`;
// i.end_time = `${this.$moment().format('YYYY-MM-DD')} ${i.end_time}`;
//
// return save({
// table_name: 'transfers',
// ...i
// },false)
// })
// let loadingInstance = this.$loading({
// lock:true,
// background:"rgba(0,0,0,0.4)",
// text:"..."
// })
// Promise.all(promiseAll).then(res => {
// this.data = [];
// loadingInstance.close();
// this.currentStep = 3;
// }).catch(_ => {
// loadingInstance.close();
// })
// break;
// }
// },
//
// handleForward ({ data, step }) {
// switch (step) {
// case 2:
// this.data = data;
// this.currentStep = 0;
// break;
// case 3:
// this.currentStep = 1;
// break;
// }
// },
async getWeatherInfo () {
const res = await axios.get('https://restapi.amap.com/v3/weather/weatherInfo?city=320500&key=15ecd1e7de61e684959f43d8965a89f0')
console.log(res)
},
async getWeather () {
this.weather = (await index({
@ -228,6 +171,7 @@ export default {
}
},
created() {
this.getWeatherInfo()
this.getWeather()
}
}

@ -255,6 +255,9 @@
>
</template>
<Button type="primary" @click="cloneTransfer"></Button>
<template #distribute>
<Button type="primary" @click="distributeTransfers"></Button>
</template>
</header-content>
</slot>
</LxHeader>
@ -397,6 +400,27 @@ export default {
};
},
methods: {
async distributeTransfers () {
let promiseAll = this.$refs['xyTable'].getSelection().map(i => {
for (let key in i) {
if (/_relation/g.test(key)) {
delete i[key]
}
}
i.status = 2;
return save({
table_name: 'transfers',
...i
})
})
const res = await Promise.all(promiseAll)
this.$message({
type: 'success',
message: `下发${res.length}条调令`
})
this.$refs['xyTable'].getTableData()
},
cloneTransfer () {
this.$router.push({
name: 'menu_14',

@ -0,0 +1,162 @@
<template>
<div>
<div>
<div ref="lxHeader">
<LxHeader
icon="md-apps"
:text="$route.meta.title"
style="margin-bottom: 10px; border: 0px; margin-top: 15px"
>
<div slot="content"></div>
<slot>
<header-content :auths="auths_auth_mixin">
<template #search>
<div style="display: flex">
<el-date-picker v-model="selectDate" size="small" style="width: 140px;"></el-date-picker>
<Button
style="margin-left: 10px"
type="primary"
@click=""
>查询</Button
>
</div>
</template>
<Button type="primary" @click="exportDocx"></Button>
</header-content>
</slot>
</LxHeader>
</div>
</div>
<el-card>
<div>{{ $moment(selectDate).format('YYYY年MM月DD日') }}调度指令执行情况</div>
<div v-for="(item, index) in transfers" :key="item.id">
<div>{{ index }}</div>
<div>
<div>{{ item.equipment ? item.equipment.area : '' }}</div>
<div>{{ item.content }}</div>
</div>
</div>
</el-card>
</div>
</template>
<script>
import {
Document,
Paragraph,
HeadingLevel,
AlignmentType,
TextRun,
Packer,
convertInchesToTwip
} from "docx";
import { saveAs } from 'file-saver';
import { index } from "@/api/system/baseForm";
import headerContent from "@/components/LxHeader/XyContent.vue";
import LxHeader from "@/components/LxHeader/index.vue";
import { authMixin } from "@/mixin/authMixin";
export default {
components: {
LxHeader,
headerContent
},
mixins: [authMixin],
data() {
return {
transfers: [],
selectDate: new Date(),
}
},
methods: {
async getTransfer () {
this.transfers = (await index({
table_name: "transfers",
page: 1,
page_size: 999,
filter: [
{
key: 'start_time',
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')}`
},
]
})).data
},
async exportDocx () {
const document = new Document({
sections: [
{
children: [
new Paragraph({
text: "2023年9月20日调度指令执行情况",
heading: HeadingLevel.HEADING_1,
alignment: AlignmentType.CENTER,
spacing: {
after: 400
}
}),
new Paragraph({
indent: {
firstLine: convertInchesToTwip(0.5)
},
spacing: {
before: 200,
line: 500
},
children: [
new TextRun({
text: "今日小雨转晴北风2级气温22℃~29℃。水情信息8:00新塘3.06m环城河北3.02m觅渡桥2.99m人民桥3.00m16:00新塘3.03m环城河北2.90m觅渡桥2.92m人民桥2.95m。",
size: 18,
})
]
}),
new Paragraph({
spacing: {
before: 200,
line: 500
},
children: [
new TextRun({
text: "一、夜间水位控制执行情况",
size: 28,
bold: true,
}),
]
}),
new Paragraph({
spacing: {
before: 200,
line: 500
},
indent: {
firstLine: convertInchesToTwip(0.5)
},
children: [
new TextRun({
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,
})
]
})
]
},
]
})
const blob = await Packer.toBlob(document)
saveAs(blob, 'test.docx')
}
},
computed: {},
created() {
this.getTransfer()
}
}
</script>
<style scoped lang="scss">
</style>
Loading…
Cancel
Save