同步现场电网一张图代码代码

This commit is contained in:
GGJ
2024-05-22 16:54:54 +08:00
parent 42f8f36547
commit 7768bb3e67
14 changed files with 1185 additions and 627 deletions

View File

@@ -13,20 +13,59 @@
台账信息
</h3>
<el-descriptions title="" border :column="2">
<el-descriptions-item label="监测点名称">{{ dropList.lineName }}</el-descriptions-item>
<el-descriptions-item label="监测点名称" width="140px">
{{ dropList.lineName }}
</el-descriptions-item>
<el-descriptions-item label="所属厂家">{{ dropList.manufacturer }}</el-descriptions-item>
<el-descriptions-item label="电压等级">{{ dropList.scale }}</el-descriptions-item>
<el-descriptions-item label="投运日期">{{ dropList.loginTime }}</el-descriptions-item>
<el-descriptions-item label="PT">{{ dropList.pt }}</el-descriptions-item>
<el-descriptions-item label="CT">{{ dropList.ct }}</el-descriptions-item>
<el-descriptions-item label="干扰源类型">{{ dropList.loadType }}</el-descriptions-item>
<el-descriptions-item label="通讯状态">
<el-descriptions-item label="通讯状态" width="140px">
<el-tag size="small" :type="dropList.comFlag == '正常' ? 'success' : 'danger'" effect="dark">
{{ dropList.comFlag }}
</el-tag>
</el-descriptions-item>
</el-descriptions>
</el-col>
<el-col :span="8">
<h3 class="mb10 iconBox">
<span></span>
告警明细
</h3>
<el-descriptions title="" border :column="2" size="small">
<el-descriptions-item width="140px" label="告警原因">
<span
style="font-weight: 550"
:style="TargetData.info == 0 ? 'color: #0e8780;' : 'color: #ff0000;'"
>
{{
TargetData.info == 1
? '超标告警'
: TargetData.info == 2
? '完整性告警'
: TargetData.info == 0
? '无告警'
: ''
}}
</span>
</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.iharmOvertime }}</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.uaberranceOvertime }}
</el-descriptions-item>
<el-descriptions-item label="闪变">{{ TargetData.ubalanceOvertime }}</el-descriptions-item>
<el-descriptions-item label="谐波电压">{{ TargetData.uharmOvertime }}</el-descriptions-item>
<el-descriptions-item width="140px" label="三相电压不平衡度">
{{ TargetData.voltageDevOvertime }}
</el-descriptions-item>
</el-descriptions>
</el-col>
<el-col :span="8">
<h3 class="mb10 iconBox">
<span></span>
@@ -41,13 +80,6 @@
/>
</div>
</el-col>
<el-col :span="8">
<h3 class="mb10 iconBox">
<span></span>
暂态事件统计
</h3>
<MyEChart :style="`height: calc(${rowHeight} - 31px)`" :options="incidentCharts" />
</el-col>
</el-row>
<el-row :gutter="20" class="mt10" :style="`height:${rowHeight}`">
<el-col :span="8">
@@ -91,6 +123,14 @@
</h3>
<div :style="`height: calc(${rowHeight} - 31px)`" ref="chartRef"></div>
</el-col>
<el-col :span="8">
<h3 class="mb10 iconBox">
<span></span>
暂态事件统计
</h3>
<MyEChart :style="`height: calc(${rowHeight} - 31px)`" :options="incidentCharts" />
</el-col>
</el-row>
<el-row :gutter="20" class="mt10" :style="`height:${rowHeight}`">
<el-col :span="24">
@@ -121,11 +161,13 @@ import {
getTotalOnlineRates,
lineQualifiedDetail,
getLineAssess,
getEventDetailByLineId
getEventDetailByLineId,
getGridDiagramTargetData
} from '@/api/device-boot/panorama'
const emit = defineEmits(['back'])
const dropList: any = ref({})
const TargetData: any = ref({})
const evaluationData: any = ref([])
const incidentCharts: any = ref({})
const ComCharts: any = ref({})
@@ -133,6 +175,7 @@ const onLineCharts: any = ref({})
const datePickerRef = ref()
const chartRef = ref<HTMLDivElement>()
const historyRef = ref()
const IntegrityNum = ref(0)
const url: any = [
new URL(`@/assets/img/PLPC.png`, import.meta.url),
new URL(`@/assets/img/DYPC.png`, import.meta.url),
@@ -159,9 +202,11 @@ const open = async (id: string) => {
const { data } = await getLineDetailData({ id: id })
dropList.value = data
// 运行状态
// 完整性
getTotalIntegrityByLineIds(form).then((res: any) => {
let num = (res.data || 0) / 100
IntegrityNum.value = num
ComCharts.value = {
title: {
text: '完整性',
@@ -429,41 +474,31 @@ const open = async (id: string) => {
]
}
}
// incidentCharts.value = {
// title: {
// text: ''
// },
// legend: {
// show: true,
// right: 90
// },
// xAxis: {
// data: ['电压暂升', '电压暂降', '电压中断']
// },
// yAxis: {
// name: '条'
// },
// grid: {
// top: '35px',
// left: '20px',
// right: '20px'
// },
// options: {
// dataZoom: null,
// series: [
// {
// type: 'bar',
})
// data: [res.data?.swellTimes, res.data?.sagTimes, res.data?.interruptTimes],
// label: {
// show: true,
// position: 'top',
// fontSize: 12
// }
// }
// ]
// }
// }
// 告警明细
getGridDiagramTargetData({ ...form, id: id, type: 3 }).then(res => {
TargetData.value = res.data
let num = 0
let flag = 0
for (let k in res.data) {
if (k != 'lineId') {
flag += res.data[k]
}
}
console.log('🚀 ~ getGridDiagramTargetData ~ flag:', flag)
if (IntegrityNum.value <= 0) {
num = 2 //完整性告警
} else {
if (flag > 0) {
num = 1 //超标告警
} else {
num = 0 //无告警
}
}
TargetData.value.info = num
})
}
const echart = (row: any) => {
@@ -573,12 +608,13 @@ const echart = (row: any) => {
// 跳转
const Integrity = () => {
router.push({
name:'harmonic-boot/harmonic/getIntegrityData'
name: 'harmonic-boot/harmonic/getIntegrityData'
})
}
const OnlineRate = () => {
router.push({
name:'harmonic-boot/area/OnlineRate'})
name: 'harmonic-boot/area/OnlineRate'
})
}
onMounted(() => {