基于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 相关文章推荐
js类后台管理菜单类-MenuSwitch
Sep 12 Javascript
javascript TextArea动态显示剩余字符
Oct 22 Javascript
javascript 10进制和62进制的相互转换
Jul 31 Javascript
jQuery源码解读之addClass()方法分析
Feb 20 Javascript
JavaScript调用客户端Java程序的方法
Jul 27 Javascript
判断输入的字符串是否是日期格式的简单方法
Jul 11 Javascript
浅谈js多维数组和hash数组定义和使用
Jul 27 Javascript
BootStrap table表格插件自适应固定表头(超好用)
Aug 24 Javascript
javascript 解决浏览器不支持的问题
Sep 24 Javascript
JavaScript实现一个空中避难的小游戏
Jun 06 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
Nov 01 Javascript
JS开发前端团队展示控制器来为成员引流
Aug 14 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
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
jquery 指南/入门基础
2007/11/30 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
JavaScript的Vue.js库入门学习教程
2016/05/23 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
《两只鸟蛋》教学反思
2014/02/10 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
2014年招生工作总结
2014/11/26 职场文书
个人简历求职信范文
2015/03/20 职场文书
期中考试后的感想
2015/08/07 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python