From d7d84c15b2596d2ca294690e40f76d580abdedc9 Mon Sep 17 00:00:00 2001 From: zhujiyan <17812234322@163.com> Date: Tue, 22 Oct 2024 16:49:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E6=97=B6=E6=95=B0=E6=8D=AE=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/govern/device/control/index.vue | 296 +++++++++++------- .../tabs/components/harmonicSpectrum.vue | 252 ++++++++------- 2 files changed, 324 insertions(+), 224 deletions(-) diff --git a/src/views/govern/device/control/index.vue b/src/views/govern/device/control/index.vue index 4099b3e..e222d9a 100644 --- a/src/views/govern/device/control/index.vue +++ b/src/views/govern/device/control/index.vue @@ -1,6 +1,10 @@ @@ -40,8 +48,13 @@ - + - + -
-
+
+
@@ -141,37 +185,49 @@
- + MAX {{ item.children[0].maxValue === 3.1415956 || - typeof item.children[0].maxValue != 'number' + typeof item.children[0].maxValue != 'number' ? '暂无数据' : item.children[0].maxValue }}
- + AVG {{ item.children[0].avgValue === 3.1415956 || - typeof item.children[0].avgValue != 'number' + typeof item.children[0].avgValue != 'number' ? '暂无数据' : item.children[0].avgValue }}
- + MIN {{ item.children[0].minValue === 3.1415956 || - typeof item.children[0].minValue != 'number' + typeof item.children[0].minValue != 'number' ? '暂无数据' : item.children[0].minValue }} @@ -181,24 +237,39 @@
- + -
+
-
+
- - + - - +
-
+
@@ -312,7 +390,6 @@ const sonTab = ref() // const handleRecordWaves = () => { // realTimeFlag.value = false // sonTab.value = 0 -// window.clearInterval(timer.value) // } //谐波频谱 const realTrendRef = ref() @@ -326,9 +403,12 @@ const trendTimer: any = ref() const handleTrend = async () => { realTimeFlag.value = false sonTab.value = 1 - clearInterval(timer.value) - clearInterval(realDataTimer.value) - clearInterval(trendTimer.value) + if (realDataTimer.value) { + window.clearInterval(realDataTimer.value) + } + if (trendTimer.value) { + clearInterval(trendTimer.value) + } await getHarmRealData(lineId.value, activeTrendName.value) .then((res: any) => { if (res.code == 'A0000') { @@ -340,7 +420,6 @@ const handleTrend = async () => { ) let obj = JSON.parse(JSON.stringify(JSON.parse(new TextDecoder().decode(message)))) || {} if (obj.data1) { - realTrendRef.value && realTrendRef.value.setRealTrendData(obj) } }) @@ -354,7 +433,6 @@ const handleTrend = async () => { //每隔30s调用一下接口,通知后台推送mqtt消息 trendTimer.value = setInterval(() => { - getHarmRealData(lineId.value, activeTrendName.value).then((res: any) => { console.log(res, '获取谐波频谱数据') connectMqtt() @@ -392,20 +470,18 @@ const harmonicSpectrumRef = ref() //实时趋势 const handleHarmonicSpectrum = () => { realTimeFlag.value = false - // window.clearInterval(timer.value) - // clearInterval(realDataTimer.value) sonTab.value = 2 harmonicSpectrumRef.value && harmonicSpectrumRef.value.resetData() // getRealDataMqttMsg() } //返回 const handleReturn = () => { - console.log("🚀 ~ handleReturn ~ realDataTimer.value:", trendTimer.value) - - clearInterval(trendTimer.value) - clearInterval(realDataTimer.value) - - + if (realDataTimer.value) { + clearInterval(realDataTimer.value) + } + if (trendTimer.value) { + clearInterval(trendTimer.value) + } realTimeFlag.value = true sonTab.value = null @@ -512,7 +588,6 @@ const realTimeRef: any = ref() const trendRef: any = ref() //暂态事件组件 const eventRef: any = ref() -const timer: any = ref() const mqttRef = ref() const url: any = inject('MQTTURL') const connectMqtt = () => { @@ -533,9 +608,12 @@ const connectMqtt = () => { mqttRef.value = mqtt.connect(url, options) } const getRealDataMqttMsg = async () => { - clearInterval(timer.value) - clearInterval(realDataTimer.value) - clearInterval(trendTimer.value) + if (realDataTimer.value) { + clearInterval(realDataTimer.value) + } + if (trendTimer.value) { + clearInterval(trendTimer.value) + } //新的实时数据 //1.调用接口 mqtt推送数据 await getBasicRealData(lineId.value).then((res: any) => { @@ -711,7 +789,10 @@ const realDataTimer: any = ref() const mqttMessage = ref({}) const handleClick = async (tab?: any) => { if (realDataTimer.value) { - window.clearInterval(realDataTimer.value) + clearInterval(realDataTimer.value) + } + if (trendTimer.value) { + clearInterval(trendTimer.value) } tableLoading.value = true //点击tab时更新dataSet最新值 @@ -727,9 +808,6 @@ const handleClick = async (tab?: any) => { tableData.value = [] formInline.pageNum = 1 } - if (timer.value) { - window.clearInterval(timer.value) - } //查询历史指标 if (dataSet.value.includes('_history')) { @@ -818,15 +896,19 @@ const handleClick = async (tab?: any) => { }) } if (!dataSet.value.includes('_realtimedata')) { - clearInterval(timer.value) - clearInterval(realDataTimer.value) + if (realDataTimer.value) { + clearInterval(realDataTimer.value) + } + if (trendTimer.value) { + clearInterval(trendTimer.value) + } if (mqttRef.value) { mqttRef.value.end() } } } //模版下载 -const handleDownLoadTemplate = () => { } +const handleDownLoadTemplate = () => {} //补召日志 const analysisListRef = ref() //打开补召日志 @@ -863,10 +945,14 @@ const echoName = (value: any, arr: any[]) => { return value ? arr.find(item => item.value == value)?.label : '/' } -onMounted(() => { }) +onMounted(() => {}) onUnmounted(() => { - clearInterval(timer.value) - clearInterval(realDataTimer.value) + if (realDataTimer.value) { + clearInterval(realDataTimer.value) + } + if (trendTimer.value) { + clearInterval(trendTimer.value) + } }) diff --git a/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue b/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue index ca7aaea..488083a 100644 --- a/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue +++ b/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue @@ -4,18 +4,33 @@
- - + +
-
+
@@ -34,116 +49,116 @@ searchForm.value = { //统计指标 const indexOptions: any = ref([]) -indexOptions.value = [ - { - id: 0, - name: '电压总有效值(kV)', - children: [ - { name: 'vRmsA', phase: 'A相', data: [], yMethodList: [] }, - { name: 'vRmsB', phase: 'B相', data: [], yMethodList: [] }, - { name: 'vRmsC', phase: 'C相', data: [], yMethodList: [] } - ], - unit: 'kV', - data: [], - yMethodList: [] - }, - { - id: 1, - name: '电流总有效值(A)', - children: [ - { name: 'iRmsA', phase: 'A相', data: [], yMethodList: [] }, - { name: 'iRmsB', phase: 'B相', data: [], yMethodList: [] }, - { name: 'iRmsC', phase: 'C相', data: [], yMethodList: [] } - ], - unit: 'A', - data: [], - yMethodList: [] - }, - { - id: 2, - name: '有功功率(kW)', - children: [ - { name: 'pA', phase: 'A相', data: [], yMethodList: [] }, - { name: 'pB', phase: 'B相', data: [], yMethodList: [] }, - { name: 'pC', phase: 'C相', data: [], yMethodList: [] }, - { name: 'pTot', phase: '总', data: [], yMethodList: [] } - ], - unit: 'kW', - data: [], - yMethodList: [] - }, - { - id: 3, - name: '无功功率(kW)', - children: [ - { name: 'qA', phase: 'A相', data: [], yMethodList: [] }, - { name: 'qB', phase: 'B相', data: [], yMethodList: [] }, - { name: 'qC', phase: 'C相', data: [], yMethodList: [] }, - { name: 'qTot', phase: '总', data: [], yMethodList: [] } - ], - unit: 'kW', - data: [], - yMethodList: [] - }, +// indexOptions.value = [ +// { +// id: 0, +// name: '电压总有效值(kV)', +// children: [ +// { name: 'vRmsA', phase: 'A相', data: [], yMethodList: [] }, +// { name: 'vRmsB', phase: 'B相', data: [], yMethodList: [] }, +// { name: 'vRmsC', phase: 'C相', data: [], yMethodList: [] } +// ], +// unit: 'kV', +// data: [], +// yMethodList: [] +// }, +// { +// id: 1, +// name: '电流总有效值(A)', +// children: [ +// { name: 'iRmsA', phase: 'A相', data: [], yMethodList: [] }, +// { name: 'iRmsB', phase: 'B相', data: [], yMethodList: [] }, +// { name: 'iRmsC', phase: 'C相', data: [], yMethodList: [] } +// ], +// unit: 'A', +// data: [], +// yMethodList: [] +// }, +// { +// id: 2, +// name: '有功功率(kW)', +// children: [ +// { name: 'pA', phase: 'A相', data: [], yMethodList: [] }, +// { name: 'pB', phase: 'B相', data: [], yMethodList: [] }, +// { name: 'pC', phase: 'C相', data: [], yMethodList: [] }, +// { name: 'pTot', phase: '总', data: [], yMethodList: [] } +// ], +// unit: 'kW', +// data: [], +// yMethodList: [] +// }, +// { +// id: 3, +// name: '无功功率(kW)', +// children: [ +// { name: 'qA', phase: 'A相', data: [], yMethodList: [] }, +// { name: 'qB', phase: 'B相', data: [], yMethodList: [] }, +// { name: 'qC', phase: 'C相', data: [], yMethodList: [] }, +// { name: 'qTot', phase: '总', data: [], yMethodList: [] } +// ], +// unit: 'kW', +// data: [], +// yMethodList: [] +// }, - { - id: 4, - name: '基波电压总有效值(kV)', - children: [ - { name: 'v1A', phase: 'A相', data: [], yMethodList: [] }, - { name: 'v1B', phase: 'B相', data: [], yMethodList: [] }, - { name: 'v1C', phase: 'C相', data: [], yMethodList: [] } - ], - unit: 'kV', - data: [], - yMethodList: [] - }, - { - id: 5, - name: '基波电流总有效值(A)', - children: [ - { name: 'i1A', phase: 'A相', data: [], yMethodList: [] }, - { name: 'i1B', phase: 'B相', data: [], yMethodList: [] }, - { name: 'i1C', phase: 'C相', data: [], yMethodList: [] } - ], - unit: 'A', - data: [], - yMethodList: [] - }, - { - id: 6, - name: '频率(Hz)', - children: [ - { name: 'freq', phase: '频率', data: [], yMethodList: [] }, - { name: 'freqDev', phase: '频率偏差', data: [], yMethodList: [] } - ], - unit: 'Hz', - data: [], - yMethodList: [] - }, - { - id: 7, - name: '电压不平衡度(%)', - children: [{ name: 'vUnbalance', phase: '电压不平衡度', data: [], yMethodList: [] }], - unit: '%', - data: [], - yMethodList: [] - }, - { - id: 8, - name: '电流不平衡度(%)', - children: [{ name: 'iUnbalance', phase: '电流不平衡度', data: [], yMethodList: [] }], - unit: '%', - data: [], - yMethodList: [] - } -] +// { +// id: 4, +// name: '基波电压总有效值(kV)', +// children: [ +// { name: 'v1A', phase: 'A相', data: [], yMethodList: [] }, +// { name: 'v1B', phase: 'B相', data: [], yMethodList: [] }, +// { name: 'v1C', phase: 'C相', data: [], yMethodList: [] } +// ], +// unit: 'kV', +// data: [], +// yMethodList: [] +// }, +// { +// id: 5, +// name: '基波电流总有效值(A)', +// children: [ +// { name: 'i1A', phase: 'A相', data: [], yMethodList: [] }, +// { name: 'i1B', phase: 'B相', data: [], yMethodList: [] }, +// { name: 'i1C', phase: 'C相', data: [], yMethodList: [] } +// ], +// unit: 'A', +// data: [], +// yMethodList: [] +// }, +// { +// id: 6, +// name: '频率(Hz)', +// children: [ +// { name: 'freq', phase: '频率', data: [], yMethodList: [] }, +// { name: 'freqDev', phase: '频率偏差', data: [], yMethodList: [] } +// ], +// unit: 'Hz', +// data: [], +// yMethodList: [] +// }, +// { +// id: 7, +// name: '电压不平衡度(%)', +// children: [{ name: 'vUnbalance', phase: '电压不平衡度', data: [], yMethodList: [] }], +// unit: '%', +// data: [], +// yMethodList: [] +// }, +// { +// id: 8, +// name: '电流不平衡度(%)', +// children: [{ name: 'iUnbalance', phase: '电流不平衡度', data: [], yMethodList: [] }], +// unit: '%', +// data: [], +// yMethodList: [] +// } +// ] // searchForm.value.index[0] = indexOptions.value[0] const heightTop = mainHeight(275) let height: any = mainHeight(275).height -const params: any = ref({}) const loading = ref(false) +const allDataList: any = ref([]) const resetData = () => { loading.value = true indexOptions.value = [ @@ -252,11 +267,11 @@ const resetData = () => { ] searchForm.value.index = [] searchForm.value.index[0] = indexOptions.value[0] + allDataList.value = [] } resetData() const mqttMessage: any = ref() const setHarmonicSpectrumData = (val: any) => { - console.log("🚀 ~ setHarmonicSpectrumData ~ val:", val) mqttMessage.value = val init() } @@ -266,8 +281,6 @@ const setChildRef = (index: any) => { } const childRefs: any = {} const init = () => { - // resetData() - console.log(searchForm.value.index, '----------') loading.value = true searchForm.value.index.map((item: any, index: any) => { item?.children.map((vv: any, vvs: any) => { @@ -277,6 +290,7 @@ const init = () => { value: mqttMessage.value[vv.name], key: vv.name }) + allDataList.value.push(mqttMessage.value[vv.name]) vv.data.push(mqttMessage.value[vv.name]) vv.yMethodList.push([mqttMessage.value.dataTime, mqttMessage.value[vv.name] + '', vv.phase]) } @@ -340,8 +354,7 @@ const init = () => { }, yAxis: { type: 'value', - name: item.unit, - + name: item.unit }, series: [] } @@ -349,9 +362,9 @@ const init = () => { searchForm.value.index.length == 3 ? (height = mainHeight(275, 3).height) : (height = mainHeight(275, searchForm.value.index.length).height) - console.log(item.children, '<<<<<<<<<<<<<<<<<<<<<<344') item.children.map((zz: any, zzIndex: any) => { - console.log(zz, '-------------', zz.yMethodList) + let [min, max] = yMethod(allDataList.value) + console.log(max, min) item.echartsData.series.push({ name: zz.phase, type: 'line', @@ -364,14 +377,15 @@ const init = () => { smooth: true, // 这里设置平滑曲线 symbol: 'none' // 设置为 'none' 去掉折点小圆 }) + item.echartsData.yAxis.max = max + item.echartsData.yAxis.min = min }) - console.log(searchForm.value.index, item.echartsData, '最新的结果') }) loading.value = false } -onMounted(() => { }) +onMounted(() => {}) defineExpose({ resetData, setHarmonicSpectrumData })