Vue中使用Echarts仪表盘展示实时数据的实现


Posted in Javascript onNovember 01, 2020

在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仪表盘展示实时数据的实现的文章就介绍到这了,更多相关Vue Echarts仪表盘 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
新浪微博字数统计 textarea字数统计实现代码
Aug 28 Javascript
Ajax异步提交表单数据的说明及方法实例
Jun 22 Javascript
vue router自动判断左右翻页转场动画效果
Oct 10 Javascript
基于JavaScript表单脚本(详解)
Oct 18 Javascript
Vue.js的复用组件开发流程完整记录
Nov 29 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
Mar 09 Javascript
javascript实现导航栏分页效果
Jun 27 Javascript
vue中keep-alive内置组件缓存的实例代码
Apr 16 Javascript
vue 实现超长文本截取,悬浮框提示
Jul 29 Javascript
vscode+gulp轻松开发小程序的完整步骤
Oct 18 Javascript
详解Javascript实践中的命令模式
May 05 Javascript
vue实现滑动解锁功能
Mar 03 Vue.js
JavaScript实现刮刮乐效果
Nov 01 #Javascript
微信小程序实现单个或多个倒计时功能
Nov 01 #Javascript
微信小程序实现页面监听自定义组件的触发事件
Nov 01 #Javascript
uniapp微信小程序实现一个页面多个倒计时
Nov 01 #Javascript
uni-app使用countdown插件实现倒计时
Nov 01 #Javascript
uni-app实现获取验证码倒计时功能
Nov 01 #Javascript
uniapp电商小程序实现订单30分钟倒计时
Nov 01 #Javascript
You might like
再说下636单管机
2021/03/02 无线电
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
文本框的字数限制功能jquery插件
2009/11/24 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
python实现二维插值的三维显示
2018/12/17 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
python实现ip地址的包含关系判断
2020/02/07 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
2014年消防工作实施方案
2014/02/20 职场文书
中学教师教育感言
2014/02/21 职场文书
地球一小时倡议书
2014/04/15 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
机动车交通事故协议书
2015/01/29 职场文书
暂住证证明
2015/06/19 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
浅谈spring boot使用thymeleaf版本的问题
2021/08/04 Java/Android
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers