From 0a6bd2e4531a51e41a7c1910144b4a22922be6b8 Mon Sep 17 00:00:00 2001 From: sjl <1716605279@qq.com> Date: Mon, 17 Nov 2025 15:44:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E6=97=B6=E6=95=B0=E6=8D=AE=E4=B8=80?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E5=80=BC=E5=8D=95=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/govern/device/control/index.vue | 42 ++++++++-------- .../tabs/components/harmonicSpectrum.vue | 15 +++--- .../govern/device/control/tabs/realtime.vue | 48 +++++++++++++++---- 3 files changed, 69 insertions(+), 36 deletions(-) diff --git a/src/views/govern/device/control/index.vue b/src/views/govern/device/control/index.vue index 0de9383..c821ae8 100644 --- a/src/views/govern/device/control/index.vue +++ b/src/views/govern/device/control/index.vue @@ -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) { diff --git a/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue b/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue index 60ca871..aed4be4 100644 --- a/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue +++ b/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue @@ -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 diff --git a/src/views/govern/device/control/tabs/realtime.vue b/src/views/govern/device/control/tabs/realtime.vue index 219b0f1..aa9464b 100644 --- a/src/views/govern/device/control/tabs/realtime.vue +++ b/src/views/govern/device/control/tabs/realtime.vue @@ -5,7 +5,7 @@
-
电压有效值(kV)
+
电压有效值({{ voltageUnit }})
@@ -45,7 +45,7 @@
- + @@ -69,11 +69,11 @@
- - + + - + @@ -102,7 +102,7 @@ - + @@ -112,7 +112,7 @@
- + @@ -122,7 +122,7 @@ - + @@ -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({}) const realList = ref([]) -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()