From b982cee382cf941d3c745fffbde4027c09533649 Mon Sep 17 00:00:00 2001 From: sjl <1716605279@qq.com> Date: Wed, 12 Nov 2025 15:42:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../area/onlinerate/index.vue | 2 +- .../pollutionReport/MonitoringPointTab.vue | 12 +- .../pollutionReport/SubstationTab.vue | 142 ++++++++++++------ 3 files changed, 105 insertions(+), 51 deletions(-) diff --git a/src/views/pqs/harmonicMonitoring/area/onlinerate/index.vue b/src/views/pqs/harmonicMonitoring/area/onlinerate/index.vue index ff80618d..ec7c23ed 100644 --- a/src/views/pqs/harmonicMonitoring/area/onlinerate/index.vue +++ b/src/views/pqs/harmonicMonitoring/area/onlinerate/index.vue @@ -294,7 +294,7 @@ const tableStore = new TableStore({ // treeData = tree2List(tableStore.table.data) // tableStore.table.data = JSON.parse(JSON.stringify(treeData)) tableStore.table.data = tree2List(tableStore.table.data, Math.random() * 1000) - console.log('tableStore.table.params---2', tableStore.table.params) + chartsRef.value && chartsRef.value.getTableStoreParams(tableStore.table.params) setTimeout(() => { activeName.value == 0 && tableRef.value && tableRef.value.getRef().setAllTreeExpand(true) diff --git a/src/views/pqs/harmonicMonitoring/detailed/pollutionReport/MonitoringPointTab.vue b/src/views/pqs/harmonicMonitoring/detailed/pollutionReport/MonitoringPointTab.vue index ea92e34f..4fd3f68a 100644 --- a/src/views/pqs/harmonicMonitoring/detailed/pollutionReport/MonitoringPointTab.vue +++ b/src/views/pqs/harmonicMonitoring/detailed/pollutionReport/MonitoringPointTab.vue @@ -60,17 +60,17 @@ show-overflow > - + - + - - + + @@ -141,7 +141,7 @@ interface PollutionItem { } const formatMonitorId = (row: any) => { - return row.row.monitorId || '/' + return row.cellValue || '/' } const handleSelectChange = (isExpanded: boolean) => { @@ -302,7 +302,7 @@ const handleCurrentChange = (val: number) => { const exportEvent = () => { const allFilteredData = filteredData.value tableRef.value.exportData({ - filename: '污染值报告', + filename: '监测点评估-污染值报告', sheetName: 'Sheet1', type: 'xlsx', useStyle: true, diff --git a/src/views/pqs/harmonicMonitoring/detailed/pollutionReport/SubstationTab.vue b/src/views/pqs/harmonicMonitoring/detailed/pollutionReport/SubstationTab.vue index 304a980f..be437d39 100644 --- a/src/views/pqs/harmonicMonitoring/detailed/pollutionReport/SubstationTab.vue +++ b/src/views/pqs/harmonicMonitoring/detailed/pollutionReport/SubstationTab.vue @@ -35,7 +35,7 @@ - - - - - - - - + + + @@ -87,6 +84,33 @@ @current-change="handleCurrentChange" class="custom-pagination"/> + + + +
+ + + + + + + + + + + +
+
@@ -119,6 +143,53 @@ const areOptions: any = dictData.state.area const allData = ref([]) const searchKeyword = ref('') const harmonicValueTitle = ref('电站谐波电压污染值') +const detailDialogVisible = ref(false) +const detailDialogTitle = ref('') +const detailLoading = ref(false) +const detailData = ref([]) +const originalTableData = ref([]) + +// 方法 +const showDetailDialog = (row) => { + detailDialogTitle.value = `${row.subStationName} - 监测点详情` + loadDetailData(row) + detailDialogVisible.value = true +} + + +const loadDetailData = async (row) => { + detailLoading.value = true + try { + // 从原始数据中查找该变电站的详细信息 + const originalItem = originalTableData.value.find( + item => item.subStationName === row.subStationName + ) + + if (originalItem && originalItem.powerFlagPollutionList) { + const detailList: PollutionItem[] = [] + originalItem.powerFlagPollutionList.forEach((point: any) => { + detailList.push({ + lineName: processNullValue(point.lineName), + devName: processNullValue(point.devName), + devType: processNullValue(point.devType), + manufacturer: processNullValue(point.manufacturer), + loginTime: processNullValue(point.loginTime), + interval: processNullValue(point.interval), + powerFlag: processNullValue(point.powerFlag), + vharmonicValue: processNullValue(point.vharmonicValue) + }) + }) + detailData.value = detailList + } else { + detailData.value = [] + } + } catch (error) { + console.error('加载详情数据失败:', error) + detailData.value = [] + } finally { + detailLoading.value = false + } +} const cascaderProps = { label: 'name', @@ -142,8 +213,6 @@ interface PollutionItem { vharmonicValue?: string } - - const handleSelectChange = (isExpanded: boolean) => { if (isExpanded) { tableHeight.value = tableHeight.value - 55 @@ -220,7 +289,6 @@ const updateTotal = computed(() => { return filteredData.value.length }) - const processNullValue = (value: any) => { return value === null || value === undefined || value === '' || value === 'null'? '/' : value } @@ -237,37 +305,19 @@ const tableStore = new TableStore({ delete tableStore.table.params.timeFlag }, loadCallback: () => { - // 展开数据 + // 保存原始数据以便后续查询 + originalTableData.value = [...(tableStore.table.data || [])] + const expandedData: PollutionItem[] = []; (tableStore.table.data || []).forEach((item: any) => { - if (item.powerFlagPollutionList && item.powerFlagPollutionList.length > 0) { - // 为每个监测点创建一行数据 - item.powerFlagPollutionList.forEach((point: any) => { - expandedData.push({ - gdName: processNullValue(item.gdName), - subStationName: processNullValue(item.subStationName), - subVStationValue: processNullValue(item.subVStationValue), - subVoltage: processNullValue(item.subVoltage), - devName: processNullValue(point.devName), - lineName: processNullValue(point.lineName), - powerFlag: processNullValue(point.powerFlag), - devType: processNullValue(point.devType), - manufacturer: processNullValue(point.manufacturer), - loginTime: processNullValue(point.loginTime), - interval: processNullValue(point.interval), - vharmonicValue: processNullValue(point.vharmonicValue) - }); - }); - } else { - // 如果没有监测点数据,也保留变电站基本信息行 - expandedData.push({ - gdName: processNullValue(item.gdName), - subStationName: processNullValue(item.subStationName), - subVStationValue: processNullValue(item.subVStationValue), - subVoltage: processNullValue(item.subVoltage) - }); - } + expandedData.push({ + gdName: processNullValue(item.gdName), + subStationName: processNullValue(item.subStationName), + subVStationValue: processNullValue(item.subVStationValue), + subVoltage: processNullValue(item.subVoltage) + + }); }); allData.value = expandedData; @@ -340,17 +390,21 @@ const handleCurrentChange = (val: number) => { const exportEvent = () => { const allFilteredData = filteredData.value tableRef.value.exportData({ - filename: '污染值报告', + filename: '场战级评估-污染值报告', sheetName: 'Sheet1', type: 'xlsx', useStyle: true, data: allFilteredData, - columnFilterMethod: function (column, $columnIndex) { - return !(column.$columnIndex === 0) - } + columnFilterMethod: function (column: any) { + return !( + column.column.title === '操作' + ) + } }) } + + onMounted(() => { if (props.active) { tableStore.index()