同步电网一张图代码

This commit is contained in:
GGJ
2024-05-27 10:37:50 +08:00
parent 05d7200da9
commit e05717790d
16 changed files with 113 additions and 91 deletions

View File

@@ -45,12 +45,12 @@ span:focus {
box-sizing: border-box; box-sizing: border-box;
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
} }
.el-dialog__body { // .el-dialog__body {
padding: 16px; // padding: 16px;
max-height: 80vh; // max-height: 80vh;
box-sizing: border-box; // box-sizing: border-box;
overflow-y: auto; // overflow-y: auto;
} // }
.el-dialog__footer { .el-dialog__footer {
padding: 16px; padding: 16px;
box-sizing: border-box; box-sizing: border-box;

View File

@@ -73,9 +73,10 @@ const onClickSubMenu = (menu: RouteRecordRaw) => {
flex-shrink: 0; flex-shrink: 0;
} }
.is-active > .icon { .is-active > .icon {
color: var(--el-menu-active-color) !important; color: v-bind('config.getColorVal("menuActiveColor")') !important;
} }
.el-menu-item.is-active { .el-menu-item.is-active {
background-color: v-bind('config.getColorVal("menuActiveBackground")'); background-color: v-bind('config.getColorVal("menuActiveBackground")');
color: v-bind('config.getColorVal("menuActiveColor")');
} }
</style> </style>

View File

@@ -31,18 +31,20 @@
} }
.el-dialog { .el-dialog {
padding: 0px !important; padding: 0px !important;
.el-dialog__body{
max-height: 60vh;
overflow-y: auto;
}
.el-dialog__footer { .el-dialog__footer {
padding: 15px; padding: 15px;
box-shadow: var(--el-box-shadow); box-shadow: var(--el-box-shadow);
width: 100%; width: 100%;
bottom: 0; bottom: 0;
} }
} }
.el-dialog__body {
max-height: 60vh;
overflow-y: auto;
padding: 10px;
}
.el-dialog__header { .el-dialog__header {
background: var(--el-color-primary); background: var(--el-color-primary);
padding: 15px; padding: 15px;
@@ -54,17 +56,15 @@
color: var(--el-color-white); color: var(--el-color-white);
} }
} }
.el-dialog__headerbtn:hover{ .el-dialog__headerbtn:hover {
.el-icon{ .el-icon {
color:#409EFF; color: #409eff;
} }
} }
.el-dialog__title { .el-dialog__title {
color: var(--el-color-white); color: var(--el-color-white);
} }
} }
.el-table { .el-table {
@@ -83,10 +83,6 @@
padding: 5px 11px; padding: 5px 11px;
} }
.el-dialog__body {
padding: 10px;
}
/* dialog滚动条-s */ /* dialog滚动条-s */
.el-overlay-dialog, .el-overlay-dialog,
.el-tabs__content, .el-tabs__content,
@@ -209,10 +205,10 @@
opacity: 0.6; opacity: 0.6;
} }
.sgmap-ctrl-bottom-left{ .sgmap-ctrl-bottom-left {
display: none !important; display: none !important;
} }
.el-drawer__header{ .el-drawer__header {
margin-bottom: 0 !important; margin-bottom: 0 !important;
} }

View File

@@ -326,4 +326,7 @@ defineExpose({ info, show })
color: #2dcd28; color: #2dcd28;
} }
} }
:deep(.el-dialog__body) {
max-height: none !important;
}
</style> </style>

View File

@@ -608,4 +608,7 @@ defineExpose({ info, show })
margin-bottom: 1px; margin-bottom: 1px;
} }
} }
:deep(.el-dialog__body) {
max-height: none !important;
}
</style> </style>

View File

@@ -6,28 +6,27 @@
<vxe-column field="deptName" title="地市" /> <vxe-column field="deptName" title="地市" />
<vxe-column field="assessData" title="综合评估得分" :formatter="formatter" /> <vxe-column field="assessData" title="综合评估得分" :formatter="formatter" />
<vxe-column field="qualifyData" title="指标合格率(%)" :formatter="formatter" /> <vxe-column field="qualifyData" title="指标合格率(%)" :formatter="formatter" />
<vxe-colgroup title="电压偏差"> <vxe-colgroup title="电压偏差">
<vxe-column field="vdevAssessData" title="评估得分" :formatter="formatter" /> <vxe-column field="vdevAssessData" title="评估得分" :formatter="formatter" />
<vxe-column field="vdevQualifyData" title="指标合格率(%)" :formatter="formatter" /> <vxe-column field="vdevQualifyData" title="指标合格率(%)" :formatter="formatter" />
</vxe-colgroup> </vxe-colgroup>
<vxe-colgroup title="频率偏差"> <vxe-colgroup title="频率偏差">
<vxe-column field="freqAssessData" title="评估得分" :formatter="formatter" /> <vxe-column field="freqAssessData" title="评估得分" :formatter="formatter" />
<vxe-column field="freqQualifyData" title="指标合格率(%)" :formatter="formatter" /> <vxe-column field="freqQualifyData" title="指标合格率(%)" :formatter="formatter" />
</vxe-colgroup> </vxe-colgroup>
<vxe-colgroup title="电压总谐波畸变率"> <vxe-colgroup title="电压总谐波畸变率">
<vxe-column field="harmAssessData" title="评估得分" :formatter="formatter" /> <vxe-column field="harmAssessData" title="评估得分" :formatter="formatter" />
<vxe-column field="harmQualifyData" title="指标合格率(%)" :formatter="formatter" /> <vxe-column field="harmQualifyData" title="指标合格率(%)" :formatter="formatter" />
</vxe-colgroup> </vxe-colgroup>
<vxe-colgroup title="电压闪变"> <vxe-colgroup title="电压闪变">
<vxe-column field="flickerAssessData" title="评估得分" :formatter="formatter" /> <vxe-column field="flickerAssessData" title="评估得分" :formatter="formatter" />
<vxe-column field="flickerQualifyData" title="指标合格率(%)" :formatter="formatter" /> <vxe-column field="flickerQualifyData" title="指标合格率(%)" :formatter="formatter" />
</vxe-colgroup> </vxe-colgroup>
<vxe-colgroup title="三相电压不平衡度"> <vxe-colgroup title="三相电压不平衡度">
<vxe-column field="unbalanceAssessData" title="评估得分" :formatter="formatter" /> <vxe-column field="unbalanceAssessData" title="评估得分" :formatter="formatter" />
<vxe-column field="unbalanceQualifyData" title="指标合格率(%)" :formatter="formatter" /> <vxe-column field="unbalanceQualifyData" title="指标合格率(%)" :formatter="formatter" />
</vxe-colgroup> </vxe-colgroup>
</vxe-table> </vxe-table>
</div> </div>
<div style="height: 300px; margin-top: 10px"> <div style="height: 300px; margin-top: 10px">
@@ -100,4 +99,8 @@ const formatter = (row: any) => {
defineExpose({ open }) defineExpose({ open })
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
:deep(.el-dialog__body) {
max-height: none !important;
}
</style>

View File

@@ -121,28 +121,16 @@ const contaminateC = () => {
} }
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
if (data[i] >= 2) { if (data[i] >= 2) {
a5++ ++a5
} else if (data[i] >= 1.6 && data[i] < 2) { } else if (data[i] >= 1.6 && data[i] < 2) {
a4++ ++a4
} else if (data[i] >= 1.2 && data[i] < 1.6) { } else if (data[i] >= 1.2 && data[i] < 1.6) {
a3++ ++a3
} else if (data[i] >= 1 && data[i] < 1.2) { } else if (data[i] >= 1 && data[i] < 1.2) {
a4++ ++a2
} else if (data[i] >= 0 && data[i] < 1) { } else if (data[i] >= 0 && data[i] < 1) {
a1++ ++a1
} }
// if (data[i] >= 0 || data[i] < 1) {
// a1++
// } else if (data[i] >= 1 || data[i] < 1.2) {
// a2++
// } else if (data[i] >= 1.2 || data[i] < 1.6) {
// a3++
// } else if (data[i] >= 1.6 || data[i] < 2) {
// a4++
// } else if (data[i] >= 2) {
// a5++
// }
} }
// console.log('🚀 ~ getPollutionAlarmData ~ a1 / data.length:', a1 / data.length) // console.log('🚀 ~ getPollutionAlarmData ~ a1 / data.length:', a1 / data.length)
@@ -275,7 +263,7 @@ const contaminateC = () => {
num2: item[3], num2: item[3],
num3: item[4], num3: item[4],
num4: item[5], num4: item[5],
num5: item[5] num5: item[6]
} }
}) })
}) })
@@ -369,4 +357,7 @@ defineExpose({ open })
margin-right: 3%; margin-right: 3%;
} }
} }
:deep(.el-dialog__body) {
max-height: none !important;
}
</style> </style>

View File

@@ -313,4 +313,7 @@ defineExpose({ open })
// color: var(--el-color-primary) !important; // color: var(--el-color-primary) !important;
// } // }
} }
:deep(.el-dialog__body) {
max-height: none !important;
}
</style> </style>

View File

@@ -90,4 +90,7 @@ const open = async (row: any) => {
defineExpose({ open }) defineExpose({ open })
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
:deep(.el-dialog__body) {
max-height: none !important;
}</style>

View File

@@ -16,7 +16,7 @@
</vxe-colgroup> </vxe-colgroup>
</vxe-table> </vxe-table>
</div> </div>
<div style="height: 250px; margin-top: 10px; display: flex"> <div style="margin-top: 10px; display: flex">
<!-- <!--
--> -->
<div class="statistics-main"> <div class="statistics-main">
@@ -135,16 +135,19 @@ defineExpose({ open })
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.statistics-main { .statistics-main {
height: 300px; // height: 300px;
display: grid; display: grid;
width: 100%; width: 100%;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
.statistics-box { .statistics-box {
height: 300px; // height: 300px;
// display: flex; // display: flex;
display: grid; display: grid;
grid-template-columns: 2fr 1fr; grid-template-columns: 2fr 1fr;
} }
} }
:deep(.el-dialog__body) {
max-height: none !important;
}
</style> </style>

View File

@@ -252,4 +252,7 @@ defineExpose({ open })
:deep(.el-table thead) { :deep(.el-table thead) {
color: #000; color: #000;
} }
:deep(.el-dialog__body) {
max-height: none !important;
}
</style> </style>

View File

@@ -51,18 +51,18 @@
}} }}
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="频率偏差">{{ TargetData.flickerAllTime }}</el-descriptions-item> <el-descriptions-item label="频率偏差">{{ TargetData.freqDevOvertime }}</el-descriptions-item>
<el-descriptions-item label="电压偏差">{{ TargetData.freqDevOvertime }}</el-descriptions-item> <el-descriptions-item label="电压偏差">{{ TargetData.voltageDevOvertime }}</el-descriptions-item>
<el-descriptions-item label="谐波电流">{{ TargetData.iharmOvertime }}</el-descriptions-item> <el-descriptions-item label="谐波电流">{{ TargetData.iharmOvertime }}</el-descriptions-item>
<el-descriptions-item label="负序电流">{{ TargetData.inegOvertime }}</el-descriptions-item> <el-descriptions-item label="负序电流">{{ TargetData.inegOvertime }}</el-descriptions-item>
<el-descriptions-item label="间谐波电压">{{ TargetData.inuharmOvertime }}</el-descriptions-item> <el-descriptions-item label="间谐波电压">{{ TargetData.inuharmOvertime }}</el-descriptions-item>
<el-descriptions-item label="电压总谐波畸变率"> <el-descriptions-item label="电压总谐波畸变率">
{{ TargetData.uaberranceOvertime }} {{ TargetData.uaberranceOvertime }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="闪变">{{ TargetData.ubalanceOvertime }}</el-descriptions-item> <el-descriptions-item label="闪变">{{ TargetData.flickerOvertime }}</el-descriptions-item>
<el-descriptions-item label="谐波电压">{{ TargetData.uharmOvertime }}</el-descriptions-item> <el-descriptions-item label="谐波电压">{{ TargetData.uharmOvertime }}</el-descriptions-item>
<el-descriptions-item width="140px" label="三相电压不平衡度"> <el-descriptions-item width="140px" label="三相电压不平衡度">
{{ TargetData.voltageDevOvertime }} {{ TargetData.ubalanceOvertime }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-col> </el-col>
@@ -486,9 +486,9 @@ const open = async (id: string) => {
flag += res.data[k] flag += res.data[k]
} }
} }
console.log('🚀 ~ getGridDiagramTargetData ~ flag:', flag) // console.log('🚀 ~ getGridDiagramTargetData ~ flag:', flag)
if (IntegrityNum.value <= 0) { if (IntegrityNum.value == 0) {
num = 2 //完整性告警 num = 2 //完整性告警
} else { } else {
if (flag > 0) { if (flag > 0) {

View File

@@ -526,7 +526,7 @@ const addLayer = () => {
class="state" class="state"
style="background-color: ${data.comFlag == 0 ? '#ff0000' : '#3ab34a'};" style="background-color: ${data.comFlag == 0 ? '#ff0000' : '#3ab34a'};"
> >
${data.comFlag == 0 ? '停运' : '在'} ${data.comFlag == 0 ? '中断' : '在线'}
</span> </span>
</div> </div>
<div class="info"> <div class="info">

View File

@@ -510,4 +510,7 @@ defineExpose({ info, show })
:deep(.el-table thead) { :deep(.el-table thead) {
color: #000; color: #000;
} }
:deep(.el-dialog__body) {
max-height: none !important;
}
</style> </style>

View File

@@ -4,7 +4,8 @@
<!-- 综合评估 --> <!-- 综合评估 -->
<div style="height: 110px"> <div style="height: 110px">
<div class="title"> <div class="title">
<span>综合评估 <span>
综合评估
<el-popover placement="right" :width="150" trigger="hover"> <el-popover placement="right" :width="150" trigger="hover">
<template #reference> <template #reference>
<WarningFilled class="WarningFilled" /> <WarningFilled class="WarningFilled" />
@@ -21,7 +22,6 @@
<span style="color: #cc0000">极差[1 , 2]</span> <span style="color: #cc0000">极差[1 , 2]</span>
</div> </div>
</el-popover> </el-popover>
</span> </span>
<span class="info" @click="open(0)"> <span class="info" @click="open(0)">
详情 详情
@@ -139,15 +139,21 @@
</div> </div>
<div :style="boxHeight" class="boxR"> <div :style="boxHeight" class="boxR">
<div class="top"> <div class="top">
<div class="TJTop"> <div>
<img src="@/assets/img/TJ.png" /> <div class="TJTop">
<span> <img src="@/assets/img/TJ.png" />
严重度 90%: <span>暂降严重度:</span>
<span class="num">{{ transientNum[0] }}</span> </div>
  50%: <div class="ml22" style="font-size: 12px">
<span class="num">{{ transientNum[1] }}</span> <span>
</span> 幅值低于90%:
<span class="num">{{ transientNum[0] }}  </span>
幅值低于50%:
<span class="num">{{ transientNum[1] }}</span>
</span>
</div>
</div> </div>
<el-select v-model="value" style="width: 120px" size="small" @change="transientChange"> <el-select v-model="value" style="width: 120px" size="small" @change="transientChange">
<el-option v-for="item in options1" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in options1" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
@@ -503,4 +509,7 @@ defineExpose({ info, show })
:deep(.el-progress__text) { :deep(.el-progress__text) {
font-size: 0.8rem !important ; font-size: 0.8rem !important ;
} }
:deep(.el-dialog__body) {
max-height: none !important;
}
</style> </style>

View File

@@ -94,7 +94,7 @@ const form: any = ref({
const height = mainHeight(10) const height = mainHeight(10)
// 获取区域名称 // 获取区域名称
const changeValue = (e: any) => { const changeValue = (e: any) => {
// mapRef.value.locatePositions(e) // mapRef.value.locatePositions(e)
form.value.orgNo = e.data.id //list.filter((item: any) => item.code == e.orgId)[0]?.id || dictData.state.area[0].id form.value.orgNo = e.data.id //list.filter((item: any) => item.code == e.orgId)[0]?.id || dictData.state.area[0].id
options.value[0].name = e.data.areaName options.value[0].name = e.data.areaName
@@ -118,12 +118,12 @@ const infoShow = (e: boolean) => {
} }
// 地图控制图层 // 地图控制图层
const LookMap = (row: any, key?: any) => { const LookMap = (row: any, key?: any) => {
// mapRef.value.addMarkers({ ...row, type: 1 }, key) // mapRef.value.addMarkers({ ...row, type: 1 }, key)
} }
//区域统计展示切换 //区域统计展示切换
const GridDiagram = (k?: number) => { const GridDiagram = (k?: number) => {
// mapRef.value.radiusPop(k) // mapRef.value.radiusPop(k)
// mapRef.value.flyTo({ coordinate: [116.84428600000001, 40.57707185292256] }, 6.709267680647425) // mapRef.value.flyTo({ coordinate: [116.84428600000001, 40.57707185292256] }, 6.709267680647425)
} }
const info = () => { const info = () => {
form.value.startTime = datePickerRef.value.timeValue[0] form.value.startTime = datePickerRef.value.timeValue[0]
@@ -133,7 +133,7 @@ const info = () => {
form.value.type = datePickerRef.value.interval form.value.type = datePickerRef.value.interval
// mapRef.value.grids(form.value) // mapRef.value.grids(form.value)
if (control.value == 1) { if (control.value == 1) {
mapLRef.value.info(form.value) mapLRef.value.info(form.value)
mapRRef.value.info(form.value) mapRRef.value.info(form.value)
@@ -220,4 +220,5 @@ onMounted(() => {
background-color: var(--el-button-hover-bg-color); background-color: var(--el-button-hover-bg-color);
outline: 0; outline: 0;
} }
</style> </style>