基于VUE的v-charts的曲线显示功能


Posted in Javascript onOctober 01, 2019

1. 应用背景

在做一个某路灯管理处的物联网项目时,需要统计8个电表的电能曲线(时间-电能),需求就是能生成日报(24个点,间隔1小时,实时),月报(30个点,间隔1天,取每天的凌晨1点数据),年报(每个月,1号凌晨1点数据开始间隔9天,每个月取3个点,总共36个点)。

2. 分析数据生产者生成

首先采集服务每隔一段时间会去采集电表的电能数据,模拟历史表会利用存储过程将实时数据写入his_aic表里。

3. 取出数据消费者

30天 aic数据4万条记录左右 日报,月报可以直接在历史数据表中取
日表,定时任务,每隔1小时存入整点数据(如果没有整点,排序之后取接近点数据),一天24个数据,一年8760条记录。
月表,定时

任务,每天凌晨1点取数据,按时间存入,一个月30条记录
年表,定时任务,1号,10号,19号,28号(每个月取4个数据,按时间记录,一年48条记录)
定时任务利用Coravel定时器完成,具体可参见Coravel定时器相关博客

4. 前端显示

前端曲线基于v-chart。

在使用 echarts 生成图表时,经常需要做繁琐的数据类型转化、修改复杂的配置项,v-charts 的出现正是为了解决这个痛点。基于 Vue2.0 和 echarts 封装的 v-charts 图表组件,只需要统一提供一种对前后端都友好的数据格式设置简单的配置项,便可轻松生成常见的图表。

4.1 安装V-charts插件

npm i v-charts echarts -S

如果已经安装了echarts,则直接安装v-charts即可

npm i v-charts -S

4.2 引入veline曲线插件

import VeLine from 'v-charts/lib/line'

4.3 曲线标签 ve-line

4.3.1 方法一:直接使用html标签

<template>
 <div>
  <ve-line :data="chartData" :settings="chartSettings"></ve-line>
 </div>
</template>

4.3.2 方法二:pug编译

4.3.2.1 pug的安装

先安装node环境

安装支持pug依赖:npm install pug pug-loader pug-filters -D
安装支持jade依赖:npm install jade jade-loader -D

4.3.2.2 pug的使用

<template lang="pug">
     div
      ve-line(:data='chartData', :settings='chartSettings')
</template>

注意:使用pug空格数量要与上下文对应

4.4 前端写入调试模拟数据

export default {
 data(){  
  return {
   chartData: {
    columns: ['日期','电能1','电能2','电能3','电能4','电能5','电能6','电能7','电能8'],
    rows: [
     { '日期': '10月1日', '电能1': 0, '电能2': 1, '电能3': 0.5, '电能4': 0.63,'电能5': 0.8, '电能6': 2, '电能7': 2.1, '电能8': 1.7 },
     { '日期': '10月2日', '电能1': 1, '电能2': 2, '电能3': 4, '电能4': 0.9,'电能5': 1.1, '电能6': 2.1, '电能7': 4.3, '电能8': 2.6 },
     { '日期': '10月3日', '电能1': 1.6, '电能2': 2.6, '电能3': 4.5, '电能4': 1.9,'电能5': 2.3, '电能6': 3.5, '电能7': 5.3, '电能8': 3.2 },
     { '日期': '10月4日', '电能1': 2.3, '电能2': 5.2, '电能3': 5.4, '电能4': 2.7,'电能5': 3.2, '电能6': 4.3, '电能7': 6.8, '电能8': 3.5 },
     { '日期': '10月5日', '电能1': 3.8, '电能2': 6.2, '电能3': 6.4, '电能4': 4.5,'电能5': 4.5, '电能6': 6.5, '电能7': 7.1, '电能8': 5.5 },
     { '日期': '10月6日', '电能1': 5.3, '电能2': 6.8, '电能3': 8.4, '电能4': 5.6,'电能5': 6.3, '电能6': 7.8, '电能7': 7.5, '电能8': 7.3 }
    ]
   },
   chartSettings: {
     yAxisName: ['kWh']
   },
  }
 }
 components: { VeLine }
}

使用 data 属性表示图表的数据,使用 settings 用作图表的显示状态配置,settings 中所包含的是具体的图表配置,这里通过yAxisName设置电能单位为kWh

4.5 注册组件

4.4中已经加入了注册组件的代码。

components: { VeLine  }

5 总体效果

基于VUE的v-charts的曲线显示功能

这里只展示了月报里的7天,可以设置按钮同样道理依次展示日报年报数据。

Javascript 相关文章推荐
TFDN图片播放器 不错自动播放
Oct 03 Javascript
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
Dec 25 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
Oct 17 Javascript
js编写当天简单日历效果【实现代码】
May 03 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
Jun 24 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
Oct 26 Javascript
JS刷新父窗口的几种方式小结(推荐)
Nov 09 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
Feb 14 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
Aug 14 Javascript
VUE长按事件需求详解
Oct 18 Javascript
vue中使用vee-validator完成表单校验方案
Nov 01 Javascript
Echarts地图添加引导线效果(labelLine)
Sep 30 #Javascript
javascript实现摄像头拍照预览
Sep 30 #Javascript
java和js实现的洗牌小程序
Sep 30 #Javascript
JS使用H5实现图片预览功能
Sep 30 #Javascript
在vue中使用jsx语法的使用方法
Sep 30 #Javascript
微信小程序自定义tabBar在uni-app的适配详解
Sep 30 #Javascript
详解小程序云开发攻略(解决最棘手的问题)
Sep 30 #Javascript
You might like
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
php while循环控制的简单实例
2016/05/30 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Python创建或生成列表的操作方法
2019/06/19 Python
python实现的发邮件功能示例
2019/09/11 Python
python中JWT用户认证的实现
2020/05/18 Python
初学者学习Python好还是Java好
2020/05/26 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
捷克钓鱼用品网上商店:Parys.cz
2018/06/15 全球购物
教师档案管理制度
2014/01/23 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
农村门前三包责任书
2014/07/25 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
食品安全承诺书范文
2014/08/29 职场文书
2014年资料员工作总结
2014/11/18 职场文书
会议主持词开场白
2015/05/28 职场文书
师范生教育见习总结
2015/06/23 职场文书
Go 语言中 20 个占位符的整理
2021/10/16 Golang
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL