联调终端运行评价

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

@@ -13,9 +13,17 @@
<div v-for="(item, i) in list" class="cardBox" :style="i == 1 ? 'flex:1.3' : ''">
<div class="card">
<span style="cursor: pointer" @click="GridDiagram(i)">{{ item.title }}</span>
<span :style="`color: ${item.color[0]}; cursor:pointer`"
@click="LookMap(item.list[4].numOneList, item.list[4].numTwoList, 0)">
{{ item.list[4].numOne }}
<span
:style="`color: ${item.color[0]}; cursor:pointer`"
@click="
LookMap(
item.list[item.list.length - 1].numOneList,
item.list[item.list.length - 1].numTwoList,
0
)
"
>
{{ item.list[item.list.length - 1]?.numOne }}
</span>
</div>
</div>
@@ -23,8 +31,10 @@
<!-- 监测规模 列表 -->
<div>
<div class="vcl mt5">
<p v-for="(item, i) in vList"
:style="i == 0 ? 'width: 60px' : i == 5 ? 'width: 32px' : 'flex:1'">
<p
v-for="(item, i) in vList"
:style="i == 0 ? 'width: 60px' : 'flex:1'"
>
{{ item }}
</p>
</div>
@@ -36,7 +46,14 @@
详情
</span> -->
</p>
<p class="numOne" @click="LookMap(item.list[0].numOneList, item.list[0].numTwoList, 0)">
<p
v-for="(k, i) in vList?.slice(0, vList.length - 1)"
class="numOne"
@click="LookMap(item.list[i].numOneList, item.list[i].numTwoList, 0)"
>
{{ item.list[i]?.numOne }}
</p>
<!-- <p class="numOne" @click="LookMap(item.list[0].numOneList, item.list[0].numTwoList, 0)">
{{ item.list[0].numOne }}
</p>
<p class="numOne" @click="LookMap(item.list[1].numOneList, item.list[1].numTwoList, 0)">
@@ -47,7 +64,7 @@
</p>
<p class="numOne" @click="LookMap(item.list[3].numOneList, item.list[3].numTwoList, 0)">
{{ item.list[3].numOne }}
</p>
</p> -->
<!-- <p
style="font-size: 12px; width: 32px; cursor: pointer; color: var(--el-color-primary)"
@click.stop="open(i)"
@@ -71,8 +88,11 @@
<img src="@/assets/img/TJ.png" />
{{ item.title }}
</div>
<div class="card-Box" :style="`height:calc((${boxHeight.height} - 50px )/ 3);`"
v-for="val in item.children">
<div
class="card-Box"
:style="`height:calc((${boxHeight.height} - 50px )/ 3);`"
v-for="val in item.children"
>
<div>
<span class="line"></span>
<span class="vol">{{ val.title }}</span>
@@ -129,8 +149,12 @@
</div>
</div>
<img class="imgL" :style="show ? 'transform: rotate(0deg);' : 'transform: rotate(180deg);'"
@click="show = !show" src="@/assets/img/QH.png" />
<img
class="imgL"
:style="show ? 'transform: rotate(0deg);' : 'transform: rotate(180deg);'"
@click="show = !show"
src="@/assets/img/QH.png"
/>
<!-- 变电站详情 -->
<stand ref="standRef" />
@@ -307,7 +331,8 @@ const linList: any = ref([
title: ['电能质量指标', '未超标', '超标']
}
])
const vList = ['', '500kV', '220kV', '110kV', '35kV',]
const panoramicVoltage: any = dictData.getBasicData('Dev_Voltage_Stand')
const vList =ref( ['', '500kV', '220kV', '110kV', '35kV'])
const formRow: any = ref({})
const height = mainHeight(30)
const boxHeight = mainHeight(290, 2)
@@ -335,10 +360,14 @@ const info = async (row: any) => {
}
countList.value[0].title = row.areaName
formRow.value = form
vList.value = ['']
// 变电站
getSubLineGiveAnAlarm(form).then(res => {
let data = row.isUpToGrid == 1 ? res.data.gwInfo : res.data.info
data[0].data.forEach((item: any) => {
if (item.columnName) vList.value.push(panoramicVoltage.find((v: any) => v.id == item.columnName).name)
})
list.value[0].list = data[0].data
})
// 终端
@@ -359,10 +388,10 @@ const info = async (row: any) => {
}
})
list.value[2].list.push({
numOne: 0,
numOneList: []
})
// list.value[2].list.push({
// numOne: 0,
// numOneList: []
// })
})
// 监测点指标统计
getGridDiagramStatistics(form).then(res => {
@@ -392,7 +421,7 @@ const LookMap = (coutList: object, alarmList: object, key?: any) => {
const GridDiagram = (k: any) => {
emit('GridDiagram', k, 3)
}
onMounted(() => { })
onMounted(() => {})
defineExpose({ info, show })
</script>

View File

@@ -34,15 +34,15 @@
<div class="monitoringPoints">
<div>
<span class="line"></span>
在线监测点数{{ monitorList.onlineNum }}
在线监测点数{{ monitorList?.onlineNum }}
</div>
<div>
<span class="line"></span>
超标监测点数{{ monitorList.overNum }}
超标监测点数{{ monitorList?.overNum }}
</div>
<div>
<span class="line"></span>
超标监测点占比{{ monitorList.overRatio }}
超标监测点占比{{ monitorList?.overRatio }}
</div>
</div>
@@ -262,7 +262,7 @@ const info = (row: any) => {
},
options: {
toolbox:null,
toolbox: null,
dataZoom: null,
series: optionData.series
}
@@ -350,7 +350,7 @@ const info = (row: any) => {
},
xAxis: {
type: 'category',
data: res.data[0].list?.map((item: any) => {
data: res.data[0]?.list?.map((item: any) => {
return item.targetName.length > 4
? item.targetName.slice(0, 4) + '\n ' + item.targetName.slice(4)
: item.targetName
@@ -367,12 +367,12 @@ const info = (row: any) => {
},
options: {
toolbox:null,
toolbox: null,
series: [
{
name: '超标监测点数',
type: 'bar',
data: res.data[0].list?.map((item: any) => item.overNum),
data: res.data[0]?.list?.map((item: any) => item.overNum),
label: {
show: true,
position: 'top',
@@ -385,7 +385,7 @@ const info = (row: any) => {
{
name: '超标天数',
type: 'bar',
data: res.data[0].list?.map((item: any) => item.overDay),
data: res.data[0]?.list?.map((item: any) => item.overDay),
label: {
show: true,
position: 'top',
@@ -451,7 +451,7 @@ const info = (row: any) => {
},
color: [config.layout.elementUiPrimary[0], '#FFBF00', '#FF9100'],
options: {
toolbox:null,
toolbox: null,
dataZoom: null,
series: [
{

View File

@@ -131,7 +131,7 @@
<el-option label="年" value="1" />
<el-option label="月" value="3" />
</el-select> -->
<div style="position: absolute; width: 100px; top: 0px; right: 0px; z-index: 1">
<div style="position: absolute; width: 100px; top: 0px; right: 15px; z-index: 1">
<el-radio-group v-model="city" size="small" @change="analysis">
<el-radio-button label="0"></el-radio-button>
<el-radio-button label="1"></el-radio-button>
@@ -176,7 +176,7 @@ const analysis = () => {
text: '各地市综合评估趋势对比'
},
legend: {
right: 120,
right: 125,
top: 20
},
// tooltip: {

View File

@@ -1,6 +1,6 @@
<template>
<DatePicker ref="datePickerRef" style="display: none" theCurrentTime />
<el-select class="conditions" v-model="formData.conditions" placeholder="请选择指标" style="width: 200px"
<el-select class="conditions mr20" v-model="formData.conditions" placeholder="请选择指标" style="width: 200px"
@change="History">
<el-option-group v-for="group in indexOptions" :key="group.label" :label="group.label">
<el-option v-for="item in group.options" :key="item.value" :label="item.label"
@@ -1351,7 +1351,7 @@ const getEcharts = () => {
}
],
toolbox: {
show: true,
show: false,
feature: {
dataZoom: {
// bottom: '10px',

View File

@@ -653,6 +653,7 @@ const echart = (row: any) => {
data: [item.ratioList]
})
})
console.log("🚀 ~ echart ~ option:", option)
chart.setOption(option)
}

View File

@@ -235,7 +235,7 @@ const AreaData: any = ref([])
const PopKey: any = ref(2)
const imgUrl0 = new URL('@/assets/img/BDZ-ZS.png', import.meta.url).href
const imgUrl1 = new URL('@/assets/img/ZD-ZS.png', import.meta.url).href
const imgUrl2 = new URL('@/assets/img/JCD-ZS.png', import.meta.url).hre
const imgUrl2 = new URL('@/assets/img/JCD-ZS.png', import.meta.url).href
const boundaryList: any = ref([
// {
// orgName: '唐山',
@@ -534,7 +534,6 @@ const grids = (row: any) => {
getGridDiagramAreaData({ ...form, deptIndex: deptIndex.value }).then((res: any) => {
AreaData.value = res.data
console.log('🚀 ~ getGridDiagramAreaData ~ AreaData.value:', AreaData.value)
GridDiagramArea()
})
// if (powerManageGridMap.value) powerLoad()
@@ -546,22 +545,24 @@ const radiusPop = (k: any) => {
}
const GridDiagramArea = () => {
boundaryList.value.forEach((item: any) => {
assessList.value.forEach((y: any) => {
if (item.orgName == y.name) {
if (y.score == 3.14159) {
} else if (y.score > 4.5) {
item.background = '#33996699'
} else if (y.score > 4) {
item.background = '#3399ff99'
} else if (y.score > 3) {
item.background = '#ffcc3399'
} else if (y.score > 2) {
item.background = '#db088799'
} else if (y.score > 0) {
item.background = '#ff000099'
assessList.value &&
assessList.value.forEach((y: any) => {
if (item.orgName == y.name) {
if (y.score == 3.14159) {
} else if (y.score > 4.5) {
item.background = '#33996699'
} else if (y.score > 4) {
item.background = '#3399ff99'
} else if (y.score > 3) {
item.background = '#ffcc3399'
} else if (y.score > 2) {
item.background = '#db088799'
} else if (y.score > 0) {
item.background = '#ff000099'
}
}
}
})
})
AreaData.value.forEach((k: any, i: any) => {
if (item.orgName == k.orgName) {
for (let kk in item) {

View File

@@ -13,9 +13,17 @@
<div v-for="(item, i) in list" class="cardBox" :style="i == 1 ? 'flex:1.3' : ''">
<div class="card">
<span style="cursor: pointer" @click="GridDiagram(i)">{{ item.title }}</span>
<span :style="`color: ${item.color[0]}; cursor:pointer`"
@click="LookMap(item.list[4].numOneList, item.list[4].numTwoList, 0)">
{{ item.list[4].numOne }}
<span
:style="`color: ${item.color[0]}; cursor:pointer`"
@click="
LookMap(
item.list?.[item.list.length - 1]?.numOneList,
item.list?.[item.list.length - 1]?.numTwoList,
0
)
"
>
{{ item.list?.[item.list.length - 1]?.numOne }}
</span>
</div>
</div>
@@ -23,8 +31,10 @@
<!-- 监测规模 列表 -->
<div>
<div class="vcl mt5">
<p v-for="(item, i) in vList"
:style="i == 0 ? 'width: 60px' : i == 5 ? 'width: 32px' : 'flex:1'">
<p
v-for="(item, i) in vList"
:style="i == 0 ? 'width: 60px' : i == vList?.length - 1 ? 'width: 32px' : 'flex:1'"
>
{{ item }}
</p>
</div>
@@ -32,14 +42,15 @@
<div v-for="(item, i) in list" class="vcl">
<p style="width: 60px">
{{ item.title }}
<!-- <span style="position: absolute; font-size: 10px; top: -10px; right: -5px; color: #575757">
详情
</span> -->
</p>
<p class="numOne" @click="LookMap(item.list[0].numOneList, item.list[0].numTwoList, 0)">
{{ item.list[0].numOne }}
<p
v-for="(k, i) in vList?.slice(0, vList.length - 2)"
class="numOne"
@click="LookMap(item.list[i].numOneList, item.list[i].numTwoList, 0)"
>
{{ item.list[i]?.numOne }}
</p>
<p class="numOne" @click="LookMap(item.list[1].numOneList, item.list[1].numTwoList, 0)">
<!-- <p class="numOne" @click="LookMap(item.list[1].numOneList, item.list[1].numTwoList, 0)">
{{ item.list[1].numOne }}
</p>
<p class="numOne" @click="LookMap(item.list[2].numOneList, item.list[2].numTwoList, 0)">
@@ -47,9 +58,11 @@
</p>
<p class="numOne" @click="LookMap(item.list[3].numOneList, item.list[3].numTwoList, 0)">
{{ item.list[3].numOne }}
</p>
<p style="font-size: 12px; width: 32px; cursor: pointer; color: var(--el-color-primary)"
@click.stop="open(i)">
</p> -->
<p
style="font-size: 12px; width: 32px; cursor: pointer; color: var(--el-color-primary)"
@click.stop="open(i)"
>
详情
</p>
</div>
@@ -69,8 +82,11 @@
<img src="@/assets/img/TJ.png" />
{{ item.title }}
</div>
<div class="card-Box" :style="`height:calc((${boxHeight.height} - 50px )/ 3);`"
v-for="val in item.children">
<div
class="card-Box"
:style="`height:calc((${boxHeight.height} - 50px )/ 3);`"
v-for="val in item.children"
>
<div>
<span class="line"></span>
<span class="vol">{{ val.title }}</span>
@@ -127,8 +143,12 @@
</div>
</div>
<img class="imgL" :style="show ? 'transform: rotate(0deg);' : 'transform: rotate(180deg);'"
@click="show = !show" src="@/assets/img/QH.png" />
<img
class="imgL"
:style="show ? 'transform: rotate(0deg);' : 'transform: rotate(180deg);'"
@click="show = !show"
src="@/assets/img/QH.png"
/>
<div class="legeng">
<div v-for="item in legengList">
<span :style="`background-color: ${item.color};`"></span>
@@ -333,7 +353,8 @@ const legengList = [
title: '极差'
}
]
const vList = ['', '500kV', '220kV', '110kV', '35kV', '']
const panoramicVoltage: any = dictData.getBasicData('Dev_Voltage_Stand')
const vList = ref(['', '500kV', '220kV', '110kV', '35kV', ''])
const formRow: any = ref({})
const height = mainHeight(30)
const boxHeight = mainHeight(290, 2)
@@ -361,10 +382,14 @@ const info = async (row: any) => {
}
countList.value[0].title = row.areaName
formRow.value = form
vList.value = ['']
// 变电站
getSubLineGiveAnAlarm(form).then(res => {
let data = row.isUpToGrid == 1 ? res.data.gwInfo : res.data.info
data[0].data.forEach((item: any) => {
if (item.columnName) vList.value.push(panoramicVoltage.find((v: any) => v.id == item.columnName).name)
})
vList.value.push('')
list.value[0].list = data[0].data
})
// 终端
@@ -385,10 +410,10 @@ const info = async (row: any) => {
}
})
list.value[2].list.push({
numOne: 0,
numOneList: []
})
// list.value[2].list.push({
// numOne: 0,
// numOneList: []
// })
})
// 监测点指标统计
getGridDiagramStatistics(form).then(res => {
@@ -418,7 +443,7 @@ const LookMap = (coutList: object, alarmList: object, key?: any) => {
const GridDiagram = (k: any) => {
emit('GridDiagram', k)
}
onMounted(() => { })
onMounted(() => {})
defineExpose({ info, show })
</script>

View File

@@ -7,11 +7,11 @@
<Area ref="areaRef" :show-all-levels="false" v-model="form.orgNo" style="width: 100px"
@changeValue="changeValue" />
</el-form-item>
<el-form-item>
<!-- <el-form-item>
<el-select v-model="form.isUpToGrid" style="width: 100px" @change="info">
<el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item>
<div class="Icon" @click="reset">
<Icon name="fa fa-refresh" />