From 300a480751c63fa970e3879965ff64c5bbfb4eac Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期一, 13 一月 2025 14:04:32 +0800
Subject: [PATCH] 数采改为3秒刷新,无感刷新
---
src/views/equipment/mqtt-show/components/largeAreaChart.vue | 36 ++++-------------
src/views/equipment/mqtt-show/index.vue | 45 ++++++++++------------
2 files changed, 29 insertions(+), 52 deletions(-)
diff --git a/src/views/equipment/mqtt-show/components/largeAreaChart.vue b/src/views/equipment/mqtt-show/components/largeAreaChart.vue
index 0c5b6d1..325ab08 100644
--- a/src/views/equipment/mqtt-show/components/largeAreaChart.vue
+++ b/src/views/equipment/mqtt-show/components/largeAreaChart.vue
@@ -4,8 +4,6 @@
<script>
import * as echarts from 'echarts'
-var myChart = null
-var option = null
export default {
props: {
@@ -25,12 +23,6 @@
data() {
return {
option: {
- tooltip: {
- trigger: 'axis',
- position: function(pt) {
- return [pt[0], '10%']
- }
- },
title: {
left: '5%',
text: '璁惧鍚嶇О锛�' + this.otherData.deviceName
@@ -97,38 +89,28 @@
}
},
mounted() {
- myChart = echarts.init(this.$refs.myChart)
+ // 姝g‘浣跨敤 this 鏉ュ畾涔� myChart 涓虹粍浠跺疄渚嬬殑鍙橀噺
+ this.myChart = echarts.init(this.$refs.myChart)
this.initDrag()
},
methods: {
initDrag() {
- myChart.setOption((option = this.option), true)
+ this.myChart.setOption(this.option)
- // 椤甸潰鍙戠敓鍙樺寲tree涔熸敼鍙�
+ // 椤甸潰鍙戠敓鍙樺寲 tree 涔熸敼鍙�
window.addEventListener('resize', () => {
- if (myChart) myChart.resize()
+ if (this.myChart) this.myChart.resize()
})
},
refreshData(seriesData, xAxisData) {
- //鍒锋柊鏁版嵁
- let refreshOption = myChart.getOption()
+ // 鍒锋柊鏁版嵁
+ const refreshOption = this.myChart.getOption()
refreshOption.series[0].data = seriesData
refreshOption.xAxis[0].data = xAxisData
- myChart.setOption(refreshOption)
+ // 浣跨敤 Promise 鍖呰 setOption 浣垮叾鎴愪负寮傛鎿嶄綔
+ this.myChart.setOption(refreshOption, true)
}
}
- // watch: {
- // yAxisMonth: {
- // handler(newVal) {
- // console.log(`output->myChart`,myChart)
- // setTimeout(()=>{
- // myChart.setOption((option = this.option), true)
- // },100)
-
- // },
- // deep: true
- // }
- // }
}
</script>
diff --git a/src/views/equipment/mqtt-show/index.vue b/src/views/equipment/mqtt-show/index.vue
index fc50651..b4af695 100644
--- a/src/views/equipment/mqtt-show/index.vue
+++ b/src/views/equipment/mqtt-show/index.vue
@@ -66,8 +66,7 @@
style="height: 40vh; padding-top: 0.4em;"
:span="12"
><largeAreaChart
- :ref="'largeAreaChartRef' + k"
- :key="new Date()"
+ ref="largeAreaChartRef"
:yAxisMonth="v.yAxisMonth"
:seriesData="v.listData"
:otherData="v"
@@ -175,35 +174,31 @@
obj.endTime = this.datePicker[1]
}
// 璋冪敤鏁版嵁鎺ュ彛
- await mqttList(obj).then(async (res) => {
- const data = res.data.data
- await data.forEach((i, k) => {
- i.listData = []
- i.yAxisMonth = []
- if (i.listMqttTableData.length > 0) {
- i.deviceId = i.listMqttTableData[0].deviceId
- }
- i.listMqttTableData.forEach((j) => {
- i.listData.push(j.value)
- i.yAxisMonth.push(j.collectionTime)
- })
- i.listMqttTableData = []
- })
- this.largeAreaChartList = data
- })
+ const res = await mqttList(obj)
+ const data = res.data.data
+ for (const i of data) {
+ i.listData = []
+ i.yAxisMonth = []
+ if (i.listMqttTableData.length > 0) {
+ i.deviceId = i.listMqttTableData[0].deviceId
+ }
+ for (const j of i.listMqttTableData) {
+ i.listData.push(j.value)
+ i.yAxisMonth.push(j.collectionTime)
+ }
+ i.listMqttTableData = []
+ }
+ this.largeAreaChartList = data
// 澶勭悊鏁版嵁锛岄�傞厤鎶樼嚎鍥炬牸寮�
- await this.largeAreaChartList.forEach((i, k) => {
- this.$refs['largeAreaChartRef' + k][0].refreshData(
- i.listData,
- i.yAxisMonth
- )
- })
+ for (const [k, i] of this.largeAreaChartList.entries()) {
+ this.$refs.largeAreaChartRef[k].refreshData(i.listData, i.yAxisMonth)
+ }
},
// 寮�鍚畾鏃跺櫒
destroyTimerAgainStart() {
this.largeAreaChartList = []
clearInterval(this.timer)
- this.timer = setInterval(this.getMqttLists, 1000 * 30)
+ this.timer = setInterval(this.getMqttLists, 1000 * 3)
this.getMqttLists()
}
}
--
Gitblit v1.9.3