This commit is contained in:
stt
2025-11-18 11:34:01 +08:00
3 changed files with 69 additions and 36 deletions

View File

@@ -729,7 +729,7 @@ const handleHarmonicSpectrum = async () => {
// }
realTimeFlag.value = false
sonTab.value = 2
harmonicSpectrumRef.value && harmonicSpectrumRef.value.resetData()
harmonicSpectrumRef.value && harmonicSpectrumRef.value.resetData(formInline.dataLevel)
// getRealDataMqttMsg()
await getBasicRealData(lineId.value).then((res: any) => {
if (res.code == 'A0000') {
@@ -991,35 +991,37 @@ const getRealDataMqttMsg = async () => {
//如果消息返回值是二次值,下拉框是二次值只需要单位换算 除以1000
//如果消息返回值是一次值,下拉框是一次值只需要单位换算 除以1000
if (obj.dataLevel == formInline.dataLevel) {
obj = {
...obj,
// 电压有效值
vRmsA: obj.vRmsA / 1000,
vRmsB: obj.vRmsB / 1000,
vRmsC: obj.vRmsC / 1000,
vRmsA: obj.vRmsA ,
vRmsB: obj.vRmsB ,
vRmsC: obj.vRmsC ,
//基波电压幅值
v1A: obj.v1A / 1000,
v1B: obj.v1B / 1000,
v1C: obj.v1C / 1000,
v1A: obj.v1A ,
v1B: obj.v1B ,
v1C: obj.v1C ,
//有功功率
pA: obj.pA / 1000,
pB: obj.pB / 1000,
pC: obj.pC / 1000,
pTot: obj.pTot / 1000,
pA: obj.pA ,
pB: obj.pB ,
pC: obj.pC ,
pTot: obj.pTot ,
//无功功率
qA: obj.qA / 1000,
qB: obj.qB / 1000,
qC: obj.qC / 1000,
qTot: obj.qTot / 1000,
qA: obj.qA ,
qB: obj.qB ,
qC: obj.qC ,
qTot: obj.qTot ,
//视在功率
sA: obj.sA / 1000,
sB: obj.sB / 1000,
sC: obj.sC / 1000,
sTot: obj.sTot / 1000
sA: obj.sA ,
sB: obj.sB ,
sC: obj.sC ,
sTot: obj.sTot
}
}
//如果消息返回值是二次值,下拉框是一次值需要单位换算 除以1000 并且乘以pt ct
if (obj.dataLevel == 'Secondary' && formInline.dataLevel == 'Primary') {
obj = {
...obj,
// 电压有效值
@@ -1102,7 +1104,7 @@ const getRealDataMqttMsg = async () => {
mqttMessage.value = obj
//更新实时数据主页面值
realTimeFlag.value && realTimeRef.value && realTimeRef.value.setRealData(mqttMessage.value)
realTimeFlag.value && realTimeRef.value && realTimeRef.value.setRealData(mqttMessage.value,formInline.dataLevel)
tableLoading.value = false
//更新实时趋势折线图数据
if (sonTab.value == 2) {

View File

@@ -144,7 +144,8 @@ let height: any = mainHeight(275).height
const loading = ref(false)
const allDataList: any = ref([])
const xAixsTimeList: any = ref([])
const resetData = () => {
const resetData = (dataLevel: string) => {
loading.value = true
indexOptions.value = [
{
@@ -155,7 +156,7 @@ const resetData = () => {
{ name: 'vRmsB', phase: 'B相', data: [], yMethodList: [] },
{ name: 'vRmsC', phase: 'C相', data: [], yMethodList: [] }
],
unit: 'kV',
unit: dataLevel === 'Primary' ? 'kV' : 'V',
data: [],
yMethodList: []
},
@@ -180,7 +181,7 @@ const resetData = () => {
{ name: 'pC', phase: 'C相', data: [], yMethodList: [] },
{ name: 'pTot', phase: '总', data: [], yMethodList: [] }
],
unit: 'kW',
unit: dataLevel === 'Primary' ? 'kW' : 'W',
data: [],
yMethodList: []
},
@@ -193,7 +194,7 @@ const resetData = () => {
{ name: 'qC', phase: 'C相', data: [], yMethodList: [] },
{ name: 'qTot', phase: '总', data: [], yMethodList: [] }
],
unit: 'kW',
unit: dataLevel === 'Primary' ? 'kVar' : 'Var',
data: [],
yMethodList: []
},
@@ -206,7 +207,7 @@ const resetData = () => {
{ name: 'v1B', phase: 'B相', data: [], yMethodList: [] },
{ name: 'v1C', phase: 'C相', data: [], yMethodList: [] }
],
unit: 'kV',
unit: dataLevel === 'Primary' ? 'kV' : 'V',
data: [],
yMethodList: []
},
@@ -255,9 +256,10 @@ const resetData = () => {
allDataList.value = []
xAixsTimeList.value = []
}
resetData()
resetData('Primary')
const mqttMessage: any = ref()
const setHarmonicSpectrumData = (val: any) => {
mqttMessage.value = val
init()
}
@@ -307,7 +309,6 @@ const init = () => {
//循环渲染图表
const refName = setChildRef(index)
childRefs[refName] = ref(null) // 初始化ref
item.echartsData = {
title: {
text: item.name

View File

@@ -5,7 +5,7 @@
<div class="view_top">
<!-- 左侧仪表盘 -->
<div class="view_top_left">
<div class="left_charts_title">电压有效值(kV)</div>
<div class="left_charts_title">电压有效值({{ voltageUnit }})</div>
<div class="left_charts">
<MyEchart :pieInterVal="true" ref="pieChart1" :options="echartsDataV1"></MyEchart>
</div>
@@ -45,7 +45,7 @@
<div class="view_bot">
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
:tooltip-config="{ enterable: true }">
<vxe-colgroup align="center" title="电压有效值(kV)">
<vxe-colgroup align="center" :title="`电压有效值(${voltageUnit})`">
<vxe-column align="center" field="vRmsA" title="A相"></vxe-column>
<vxe-column align="center" field="vRmsB" title="B相"></vxe-column>
<vxe-column align="center" field="vRmsC" title="C相"></vxe-column>
@@ -69,11 +69,11 @@
<br />
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
:tooltip-config="{ enterable: true }">
<vxe-column align="center" field="freq" width="140" title="频率(Hz)"></vxe-column>
<vxe-column align="center" field="freqDev" width="120" title="频率偏差(Hz)"></vxe-column>
<vxe-column align="center" field="freqDev" width="140" title="频率(Hz)"></vxe-column>
<vxe-column align="center" field="freq" width="120" title="频率偏差(Hz)"></vxe-column>
<vxe-column align="center" width="180" field="vUnbalance" title="电压不平衡度(%)"></vxe-column>
<vxe-column align="center" width="180" field="iUnbalance" title="电流不平衡度(%)"></vxe-column>
<vxe-colgroup align="center" title="基波电压幅值(kV)">
<vxe-colgroup align="center" :title="`基波电压幅值(${voltageUnit})`">
<vxe-column align="center" field="v1A" title="A相"></vxe-column>
<vxe-column align="center" field="v1B" title="B相"></vxe-column>
<vxe-column align="center" field="v1C" title="C相"></vxe-column>
@@ -102,7 +102,7 @@
<vxe-column align="center" field="iThdB" title="B相"></vxe-column>
<vxe-column align="center" field="iThdC" title="C相"></vxe-column>
</vxe-colgroup>
<vxe-colgroup align="center" title="有功功率(kW)">
<vxe-colgroup align="center" :title="`有功功率(${powerUnit})`">
<vxe-column align="center" field="pA" title="A相"></vxe-column>
<vxe-column align="center" field="pB" title="B相"></vxe-column>
<vxe-column align="center" field="pC" title="C相"></vxe-column>
@@ -112,7 +112,7 @@
<br />
<vxe-table border height="" :data="realList" :column-config="{ resizable: true, tooltip: true }"
:tooltip-config="{ enterable: true }">
<vxe-colgroup align="center" title="无功功率(kVar)">
<vxe-colgroup align="center" :title="`无功功率(${reactivePowerUnit})`">
<vxe-column align="center" field="qA" title="A相"></vxe-column>
<vxe-column align="center" field="qB" title="B相"></vxe-column>
<vxe-column align="center" field="qC" title="C相">
@@ -122,7 +122,7 @@
</vxe-column>
<vxe-column align="center" field="qTot" title="总"></vxe-column>
</vxe-colgroup>
<vxe-colgroup align="center" title="视在功率(kVA)">
<vxe-colgroup align="center" :title="`视在功率(${apparentPowerUnit})`">
<vxe-column align="center" field="sA" title="A相"></vxe-column>
<vxe-column align="center" field="sB" title="B相"></vxe-column>
<vxe-column align="center" field="sC" title="C相"></vxe-column>
@@ -170,6 +170,10 @@ const echartsDataV3: any = ref({})
const echartsDataA1: any = ref({})
const echartsDataA2: any = ref({})
const echartsDataA3: any = ref({})
const currentDataLevel = ref('Primary')
const previousDataLevel = ref('')
//渲染中间相角图
const initRadioCharts = () => {
echartsData1.value = {
@@ -542,7 +546,33 @@ const vRadioList: any = ref([])
const realData = ref<any>({})
const realList = ref<any>([])
const setRealData = (val: any) => {
// 计算电压单位
const voltageUnit = computed(() => {
return currentDataLevel.value === 'Primary' ? 'kV' : 'V'
})
// 计算功率单位
const powerUnit = computed(() => {
return currentDataLevel.value === 'Primary' ? 'kW' : 'W'
})
// 计算无功功率单位
const reactivePowerUnit = computed(() => {
return currentDataLevel.value === 'Primary' ? 'kVar' : 'Var'
})
// 计算视在功率单位
const apparentPowerUnit = computed(() => {
return currentDataLevel.value === 'Primary' ? 'kVA' : 'VA'
})
const setRealData = (val: any,dataLevel:string) => {
// 只有当 dataLevel 真正改变时才更新
if (dataLevel !== previousDataLevel.value) {
currentDataLevel.value = dataLevel
previousDataLevel.value = dataLevel
}
realData.value = val
realList.value = [val]
initRadioCharts()