基于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 相关文章推荐
JavaScript 继承的实现
Jul 09 Javascript
jQuery图片预加载 等比缩放实现代码
Oct 04 Javascript
基于jquery自己写tab滑动门(通用版)
Oct 30 Javascript
jQuery之ajax技术的详细介绍
Jun 19 Javascript
js 通用订单代码
Dec 23 Javascript
浅谈js中的闭包
Mar 16 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
Aug 24 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
May 17 Javascript
利用JS实现数字增长
Jul 28 Javascript
JavaScript实现图片拖曳效果
Sep 08 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
Dec 20 Javascript
vue模式history下在iis中配置流程
Apr 17 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去除重复字的实现代码
2011/09/16 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
2020/05/02 PHP
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
[05:08]DOTA2-DPC中国联赛3月6日Recap集锦
2021/03/11 DOTA
Python生成随机数组的方法小结
2017/04/15 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
remote接口和home接口主要作用
2013/05/15 面试题
食品流通安全承诺书
2014/05/22 职场文书
开展党的群众路线教育实践活动工作总结
2014/11/05 职场文书
2015年清明节活动总结
2015/02/09 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
趣味运动会口号
2015/12/24 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
js实现模拟购物商城案例
2021/05/18 Javascript