From 93f44b0e37e599eebea24eafbd93c0e69da7d2cd Mon Sep 17 00:00:00 2001 From: zhujiyan <17812234322@163.com> Date: Mon, 8 Jul 2024 11:13:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B9=E6=A1=88=E6=95=B0=E6=8D=AE=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=96=B9=E6=A1=88=E6=B5=8B=E8=AF=95=E9=A1=B9=E4=BF=A1?= =?UTF-8?q?=E6=81=AF&=E5=8E=86=E5=8F=B2=E8=B6=8B=E5=8A=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/govern/device/planData/index.vue | 127 ++++++++++++++++----- 1 file changed, 98 insertions(+), 29 deletions(-) diff --git a/src/views/govern/device/planData/index.vue b/src/views/govern/device/planData/index.vue index 56787bc..54360f5 100644 --- a/src/views/govern/device/planData/index.vue +++ b/src/views/govern/device/planData/index.vue @@ -6,6 +6,9 @@ {{ deviceData.itemName }} @@ -89,7 +92,7 @@

历史趋势

- +
查询 - - 导出 -
@@ -166,6 +160,8 @@ import { queryStatistical } from '@/api/system-boot/csstatisticalset' import * as echarts from 'echarts' import { isNonNullChain } from 'typescript' import { position } from 'html2canvas/dist/types/css/property-descriptors/position' + +import { read, writeFile, utils } from 'xlsx' const dictData = useDictData() defineOptions({ name: 'govern/device/manage' @@ -294,7 +290,7 @@ const init = async () => { 'brown', '#70B601', '#1DD0CE', - 'cadetblue', + 'cadetblue' ] if (historyDevId.value) { //选择的指标使用方法处理 @@ -512,7 +508,7 @@ const init = async () => { axisLine: { show: true, lineStyle: { - color: colorList[index+1] + color: colorList[index + 1] } }, nameTextStyle: { @@ -606,8 +602,47 @@ const init = async () => { const historyChart = ref() // const chart: any = ref(null) // chart.value = echarts.init(historyChart.value) -const handleExport = () => { - setTimeout(() => { +const handleExport = async () => { + const planCsv = ref('') + const chartsCsv = ref('') + + if (deviceData.value.records && deviceData.value.records.length != 0) { + let csv = '', + obj = {} + obj = deviceData.value.records.find((item: any) => { + return item.id == activeName.value + }) + if (obj) { + csv = `方案测试项信息\n, + 方案名称,${deviceData.value.itemName}, + 方案描述,${deviceData.value.describe}, + 测试项名称,${obj?.itemName}, + 测量间隔,${obj?.statisticalInterval}, + 电压等级,${ + voltageLevelList.find(vv => { + return vv.id == obj.voltageLevel + })?.name + }, + 接线方式,${ + volConTypeList.find(vv => { + return vv.id == obj.volConType + })?.name + }, + 最小短路容量,${obj.capacitySscmin}, + 用户协议容量,${obj.capacitySi}, + 基准短路容量,${obj.capacitySscb}, + 供电设备容量,${obj.capacitySt}, + PT变比,${obj.pt && obj.pt1 ? obj.pt / obj.pt1 : obj.pt}, + CT变比,${obj.ct && obj.ct1 ? obj.ct / obj.ct1 : obj.ct}, + 起始时间,${obj.startTime}, + 结束时间,${obj.endTime}, + 监测位置,${obj.location}\n, + ` + planCsv.value = csv + } + } + + if (historyDataList.value.length != 0) { let xAxis: any = [] let timeList: any = [] historyDataList.value.map((item: any) => { @@ -625,12 +660,13 @@ const handleExport = () => { let csv: any = '' const list = echartsData.value.options.series csv = convertToCSV([], []) + chartsCsv.value = csv // 如果你想提供下载链接 - const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' }) - const link = document.createElement('a') - link.href = URL.createObjectURL(blob) - link.download = '历史趋势.csv' - link.click() + // const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' }) + // const link = document.createElement('a') + // link.href = URL.createObjectURL(blob) + // link.download = '历史趋势.csv' + // link.click() function convertToCSV(data: any, key: any) { // 添加列头 let title = '统计时间,' @@ -658,7 +694,26 @@ const handleExport = () => { }) return csv } - }, 10) + } + + let csvs = '' + if (chartsCsv.value) { + csvs = planCsv.value + '历史趋势数据,\n\n' + chartsCsv.value + } else { + csvs = planCsv.value + } + + // 如果你想提供下载链接 + const blob = new Blob([csvs], { type: 'text/csv;charset=utf-8;' }) + const link = document.createElement('a') + link.href = URL.createObjectURL(blob) + let obj = deviceData.value.records.find((item: any) => { + return item.id == activeName.value + }) + const date=window.XEUtils.toDateString(new Date() , 'yyyyMMdd HHmmss').replace(' ','_') + link.download = `${deviceData.value.itemName}_${obj?.itemName}_${date}.csv` + link.click() + return } const countData: any = ref([]) @@ -698,9 +753,13 @@ watch( if (val == 0) { countData.value = [] } - countData.value.map((item:any,key:any)=>{ - if(val.findIndex((vv:any)=>{return vv==item.index})==-1){ - countData.value.splice(key,1) + countData.value.map((item: any, key: any) => { + if ( + val.findIndex((vv: any) => { + return vv == item.index + }) == -1 + ) { + countData.value.splice(key, 1) } }) } @@ -767,17 +826,27 @@ onMounted(() => {}) .history_header { display: flex; - flex-wrap: wrap; - .history_select { + // flex-wrap: wrap; + #history_select { width: 90%; display: flex; justify-content: flex-start; - flex-wrap: wrap; + overflow: auto; + // flex-wrap: wrap; + .el-form-item { + flex: none; + width: 380px !important; + } .el-select { margin-right: 10px; } } + #history_select::-webkit-scrollbar { + width: 0 !important; + display: none !important; + } + .history_searchBtn { flex: 1; display: flex; @@ -792,7 +861,7 @@ onMounted(() => {}) margin-top: 10px; } -// ::v-deep .el-select { -// width: 200px !important; -// } +::v-deep .el-select { + width: 200px !important; +}