联调终端运行评价

This commit is contained in:
GGJ
2025-05-13 15:26:24 +08:00
parent 363c05639b
commit 325aa7d56e
29 changed files with 910 additions and 2075 deletions

View File

@@ -37,6 +37,21 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="电网侧标识">
<el-select
v-model="tableStore.table.params.powerFlag"
clearable
style="width: 100%"
placeholder="请选择电网侧标识"
>
<el-option
v-for="item in powerFlagList"
:key="item.id"
:label="item.name"
:value="item.algoDescribe"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-select
v-model="tableStore.table.params.manufacturer"
@@ -116,6 +131,8 @@ const terminaloption = dictData.getBasicData('Dev_Manufacturers')
const interfereoption = dictData.getBasicData('Interference_Source')
//字典获取统计类型
const classificationData = dictData.getBasicData('Statistical_Type', ['Report_Type'])
//字典获取监督对象类型
const powerFlagList = dictData.getBasicData('power_flag')
//调用区域接口获取区域
const treeData = ref([])
const idArr = ref([])
@@ -211,6 +228,7 @@ tableStore.table.params.statisticalType = classificationData[0]
tableStore.table.params.scale = []
tableStore.table.params.manufacturer = []
tableStore.table.params.loadType = []
tableStore.table.params.powerFlag = 2
tableStore.table.params.serverName = 'harmonicBoot'
provide('tableStore', tableStore)
const tree2List = (list: any, id?: string) => {

View File

@@ -173,7 +173,7 @@ const tableStore = new TableStore({
tooltip: {
formatter: function (params: any) {
let tips = `<strong>${params[0].name}</strong></br>` // 标题加粗
let tips = `<strong>${params[0]?.name}</strong></br>` // 标题加粗
params.forEach((item: any) => {
const value = item.value === 3.14159 ? '暂无数据' : item.value // 处理特殊值
tips += `<div style=" display: flex;justify-content: space-between;">

View File

@@ -1,42 +1,78 @@
<template>
<div class="default-main">
<TableHeader datePicker area showExport>
<template #select>
<el-form-item label="统计类型:">
<el-select v-model="tableStore.table.params.statisticalType" placeholder="请选择统计类型" value-key="id">
<el-option v-for="item in classificationData" :key="item.id" :label="item.name" :value="item">
</el-option>
<el-select
v-model="tableStore.table.params.statisticalType"
placeholder="请选择统计类型"
value-key="id"
>
<el-option
v-for="item in classificationData"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="电压等级:">
<el-select v-model="tableStore.table.params.scale" filterable multiple collapse-tags clearable
placeholder="请选择电压等级" value-key="id">
<el-option v-for="item in voltageleveloption" :key="item.id" :label="item.name" :value="item">
</el-option>
<el-select
v-model="tableStore.table.params.scale"
filterable
multiple
collapse-tags
clearable
placeholder="请选择电压等级"
value-key="id"
>
<el-option
v-for="item in voltageleveloption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-select v-model="tableStore.table.params.manufacturer" filterable multiple collapse-tags
clearable placeholder="请选择终端厂家" value-key="id">
<el-option v-for="item in terminaloption" :key="item.id" :label="item.name" :value="item">
</el-option>
<el-select
v-model="tableStore.table.params.manufacturer"
filterable
multiple
collapse-tags
clearable
placeholder="请选择终端厂家"
value-key="id"
>
<el-option
v-for="item in terminaloption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-select v-model="tableStore.table.params.loadType" filterable multiple collapse-tags clearable
placeholder="请选择干扰源类型" value-key="id">
<el-option v-for="item in interfereoption" :key="item.id" :label="item.name" :value="item">
</el-option>
<el-select
v-model="tableStore.table.params.loadType"
filterable
multiple
collapse-tags
clearable
placeholder="请选择干扰源类型"
value-key="id"
>
<el-option
v-for="item in interfereoption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select>
</el-form-item>
</template>
</TableHeader>
<Table ref="tableRef" isGroup :key="num" />
</div>
</template>
<script setup lang="ts">
@@ -50,7 +86,7 @@ defineOptions({
name: 'harmonic-boot/detailedAnalysis/contrast'
})
const view = ref(true)
const classificationData = dictData.getBasicData('Statistical_Type', ["Report_Type"])
const classificationData = dictData.getBasicData('Statistical_Type', ['Report_Type'])
const voltageleveloption = dictData.getBasicData('Dev_Voltage_Stand')
const terminaloption = dictData.getBasicData('Dev_Manufacturers')
const interfereoption = dictData.getBasicData('Interference_Source')
@@ -62,88 +98,279 @@ const tableStore = new TableStore({
method: 'POST',
isWebPaging: true,
column: [
{ field: 'index', title: '序号', width: '80', formatter: (row: any) => { return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1 } },
{ field: 'name', title: '电网拓扑', minWidth: '150', },
{ field: 'onlineMonitorNumber', title: '在线监测点数量(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'overLimitMonitorNumber', title: '超标监测点数量(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'overBiLi', title: '超标监测点占比(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{
field: 'index',
title: '序号',
width: '80',
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ field: 'name', title: '电网拓扑', minWidth: '150' },
{
field: 'onlineMonitorNumber',
title: '在线监测点数量(个)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'overLimitMonitorNumber',
title: '超标监测点数量(个)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'overBiLi',
title: '超标监测点占比(%)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
title: '频率偏差超标情况',
children: [
{ field: 'frequencyMonitorNumber', title: '超标点数(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'frequencyBiLi', title: '超标占比(%)', minWidth: '120px', formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'frequencyOverDayBiLi', title: '平均超标数(天/点)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
],
{
field: 'frequencyMonitorNumber',
title: '超标数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'frequencyBiLi',
title: '超标占比(%)',
minWidth: '120px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'frequencyOverDayBiLi',
title: '平均超标天数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
}
]
},
{
title: '电压偏差超标情况',
children: [
{ field: 'voltageMonitorNumber', title: '超标点数(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'voltageBiLi', title: '超标占比(%)', minWidth: '120px', formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'voltageOverDayBiLi', title: '平均超标数(天/点)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
],
{
field: 'voltageMonitorNumber',
title: '超标数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'voltageBiLi',
title: '超标占比(%)',
minWidth: '120px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'voltageOverDayBiLi',
title: '平均超标天数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
}
]
},
{
title: '谐波电压超标情况',
children: [
{ field: 'harmonicVoltageMonitorNumber', title: '超标点数(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'harmonicVoltageBiLi', title: '超标占比(%)', minWidth: '120px', formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'harmonicVoltageOverDayBiLi', title: '平均超标数(天/点)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
],
{
field: 'harmonicVoltageMonitorNumber',
title: '超标数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'harmonicVoltageBiLi',
title: '超标占比(%)',
minWidth: '120px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'harmonicVoltageOverDayBiLi',
title: '平均超标天数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
}
]
},
{
title: '谐波电流超标情况',
children: [
{ field: 'harmonicCurrentMonitorNumber', title: '超标点数(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'harmonicCurrentBiLi', title: '超标占比(%)', minWidth: '120px', formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'harmonicCurrentOverDayBiLi', title: '平均超标数(天/点)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
],
{
field: 'harmonicCurrentMonitorNumber',
title: '超标数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'harmonicCurrentBiLi',
title: '超标占比(%)',
minWidth: '120px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'harmonicCurrentOverDayBiLi',
title: '平均超标天数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
}
]
},
{
title: '三相电压不平衡度超标情况',
children: [
{ field: 'threePhaseVoltageMonitorNumber', title: '超标点数(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'threePhaseVoltageBiLi', title: '超标占比(%)', minWidth: '120px', formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'threePhaseVoltageOverDayBiLi', title: '平均超标数(天/点)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
],
{
field: 'threePhaseVoltageMonitorNumber',
title: '超标数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'threePhaseVoltageBiLi',
title: '超标占比(%)',
minWidth: '120px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'threePhaseVoltageOverDayBiLi',
title: '平均超标天数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
}
]
},
{
title: '闪变超标情况',
children: [
{ field: 'flickerMonitorNumber', title: '超标点数(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'flickerBiLi', title: '超标占比(%)', minWidth: '120px', formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'flickerOverDayBiLi', title: '平均超标数(天/点)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
],
{
field: 'flickerMonitorNumber',
title: '超标数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'flickerBiLi',
title: '超标占比(%)',
minWidth: '120px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'flickerOverDayBiLi',
title: '平均超标天数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
}
]
},
{
title: '负序电流超标情况',
children: [
{ field: 'negativeMonitorNumber', title: '超标点数(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'negativeBiLi', title: '超标占比(%)', minWidth: '120px', formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'negativeOverDayBiLi', title: '平均超标数(天/点)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
],
{
field: 'negativeMonitorNumber',
title: '超标数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'negativeBiLi',
title: '超标占比(%)',
minWidth: '120px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'negativeOverDayBiLi',
title: '平均超标天数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
}
]
},
{
title: '间谐波电压超标情况',
children: [
{ field: 'interHarmonicMonitorNumber', title: '超标点数(个)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'interHarmonicBiLi', title: '超标占比(%)', minWidth: '120px', formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
{ field: 'interHarmonicOverDayBiLi', title: '平均超标数(天/点)', minWidth: "200px", formatter: (row: any) => { return row.cellValue == -1 ? '/' : row.cellValue } },
],
},
{
field: 'interHarmonicMonitorNumber',
title: '超标数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'interHarmonicBiLi',
title: '超标占比(%)',
minWidth: '120px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
},
{
field: 'interHarmonicOverDayBiLi',
title: '平均超标天数(天/点)',
minWidth: '200px',
formatter: (row: any) => {
return row.cellValue == -1 ? '/' : row.cellValue
}
}
]
}
],
beforeSearchFun: () => {
tableStore.options.column[1].title = tableStore.table.params.statisticalType.name
num.value += 1
},
}
})
tableStore.table.params.statisticalType = classificationData[0]
tableStore.table.params.serverName = "harmonic-boot"
tableStore.table.params.serverName = 'harmonic-boot'
tableStore.table.params.powerFlag = 2
tableStore.table.params.monitorFlag = 2
tableStore.table.params.scale = []
@@ -155,9 +382,4 @@ provide('tableStore', tableStore)
onMounted(() => {
tableStore.index()
})
</script>

View File

@@ -87,15 +87,15 @@ const init = () => {
let yData = [],
yData2 = []
for (let i = 0; i < steadyInfoList.length; i++) {
if (steadyInfoList[i] == 3.1415) {
steadyInfoList[i] = 1
yData.push(steadyInfoList[i])
} else if (steadyInfoList[i] == 3.14159) {
steadyInfoList[i] = 1
yData.push(steadyInfoList[i])
} else if (steadyInfoList[i] !== 3.14159) {
yData.push(steadyInfoList[i])
}
// if (steadyInfoList[i] == 3.1415) {
// steadyInfoList[i] = 1
// yData.push(steadyInfoList[i])
// } else if (steadyInfoList[i] == 3.14159) {
// steadyInfoList[i] = 1
// yData.push(steadyInfoList[i])
// } else if (steadyInfoList[i] !== 3.14159) {
yData.push(steadyInfoList[i])
// }
}
for (let i = 0; i < steadyInfoData.length; i++) {
if (steadyInfoData[i] == 3.1415) {
@@ -169,6 +169,8 @@ const init = () => {
return gradeColor3[0]
} else if (params.value > 60) {
return gradeColor3[1]
} else if (params.value == 3.14159) {
return '#ccc'
} else {
return gradeColor3[2]
}
@@ -224,7 +226,7 @@ const init = () => {
opacity: 0.35,
fontSize: 14
},
backgroundColor: 'rgba(0,0,0,0.55)',
backgroundColor: 'rgba(0,0,0,0.55)'
// formatter: function (params: any) {
// //console.log(params)
// let msg = ''