在vue中echarts仪表盘实时数据
彩笔一枚,简单记录一下。
业务场景:通过websocket实时推送数据,将数据渲染到仪表盘中。
第一步:
基于准备好的dom,初始化echarts仪表盘实例。
第二步:
我是通过父子组件传值把数据接收过来,在data中定义upPressure参数,并将接收来的devicePressure参数赋值给它,便于后面将值传入到echarts中
父组件中 <div class="chart" shadow="always"> <objEcharts :devicePressure="pressure"></objEcharts> </div> 子组件中 export default { props: { devicePressure: { type: String, require: true }, }, data() { return { upPressure: this.devicePressure, }; },
第三步:
因为是实时数据,就需要在watch中监听数据变化,实时更新。
注:这里我只监听一个参数变化,没有使用deep: true。
watch: { //监听devicePressure的数据变化。 devicePressure(newData, oldData) { //把更新后的数据newData,赋值给需要传入echarts中的参数。 this.upPressure = newData; //一定要调用echarts实例,要不然echarts不实时展示。 this.drawLine(); }, },
第四步:
数据处理完之后,就要把它展示到仪表盘中了,所以直接找到echarts中需要数据的地方就好了。
介于仪表盘样式,可结合官方文档自定义。
export default { props: { devicePressure: { type: String, require: true }, }, data() { return { upPressure: this.devicePressure, }; }, mounted() { this.drawLine(); }, watch: { devicePressure(newData, oldData) { this.upPressure = newData; this.drawLine(); }, }, methods: { drawLine() { // 基于准备好的dom,初始化echarts实例 let visualOneChart = this.$echarts.init(document.getElementById("visualOneChart")); // 绘制图表 visualOneChart.setOption({ tooltip: { formatter: "{a} <br/>{b} : {c}Pa", }, series: [ { name: "压力值", type: "gauge", clockwise: true, detail: { formatter: this.upPressure, textStyle: { fontSize: 14, }, }, data: [{ value: this.upPressure, name: "压力值" }], radius: "90%", axisLabel: {// 刻度标签。 show: true, distance: -5, color: "black", fontSize: 10, formatter: "{value}", }, axisLine: {// 仪表盘轴线(轮廓线)相关配置。 show: true, lineStyle: {// 仪表盘轴线样式。 opacity: 1, width: 15, shadowBlur: 10, }, }, pointer: { // 仪表盘指针。 show: true, length: "70%", width: 4, }, }, ], }); }, }, }
到此这篇关于Vue中使用Echarts仪表盘展示实时数据的实现的文章就介绍到这了,更多相关Vue Echarts仪表盘 内容请搜索站长技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持站长技术!
JSON 格式可以说是目前最流行的数据传输格式了,被广泛应用于前后端通信,尤其是...
用canvas创建带有阴影的图形和文字,供大家参考,具体内容如下 ctx.shadowBlur=2...
首先将以下代码加入网页中: spanid="Text"/span functionCurrentPosition(){ if...
Audacity一款免费的多轨音频编辑器 Audacity多轨音频编辑器 ?Audacity[???d?s?ti...
静态方法:将下面的代码复制到body~/body内 程序代码 table cellpadding="2" wid...
学习 jQuery 基本原理,探索其特性和功能,执行一些常见的 Ajax 任务并掌握如何...
我们知道Chrome是非常出色的浏览器,无论从性能还是功能的角度来看,都是如此。...
下载 KubeKey KubeKey 是新一代 Kubernetes 和 KubeSphere 安装器,可帮助您以简...
使用PHP语言实现,如果你看不明白,请留言.... 相信原理都差不多.. 为什么使用PHP...
题目描述 yy 的学校要求早上 8 点前到达。学校到 yy 的家一共有 s(s≤10000) 米...