前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >模拟返回的后台数据实现统计图

模拟返回的后台数据实现统计图

作者头像
ProsperLee
发布2018-10-24 10:44:39
4880
发布2018-10-24 10:44:39
举报
1 <div id="vmchart">
2     <div id="chart" style="width: 600px;height: 400px;"></div>
3 </div>

引用的框架有:

逻辑部分:

  1 var vm = new Vue({
  2 
  3     el: '#vmchart',
  4 
  5     data: {
  6 
  7         // 绘制统计图(横纵坐标,数据从后台会返回一个数组,数组由对象组成)
  8         // 统计图数据(timeline:时间轴x)(datanum:数据y)
  9         chartData: [
 10             { timeline: "2018-02-01", datanum: "1" },
 11             { timeline: "2018-02-03", datanum: "2" },
 12             { timeline: "2018-02-04", datanum: "5" },
 13             { timeline: "2018-02-06", datanum: "8" }
 14         ],
 15 
 16         timeline: [],
 17 
 18         datanum: []
 19 
 20     },
 21 
 22     methods: {
 23 
 24         /**
 25          * [将时间转换为标准]
 26          * @param  {[String]} datestr [2018-01-02]
 27          * @return {[Object]}         [Fri Feb 02 2018 00:00:00 GMT+0800 (中国标准时间)]
 28          */
 29         timeDate: function(datestr) {
 30 
 31             var temp = datestr.split("-"); //["2018","01","02"]
 32 
 33             var date = new Date(temp[0], temp[1], temp[2]); // 年月日
 34 
 35             return date;
 36 
 37         },
 38 
 39         /**
 40          * [给出开始日期和结束日期计算每天日期]
 41          * @param {[String]} [st] [开始时间]
 42          *        {[String]} [et] [结束时间]
 43          *        {[Array]}  [receive] [接收参数]
 44          * @return {[Array]} [日期数组]
 45          */
 46         timer: function(st,et,receive) {
 47             
 48             // 开始和结束时间
 49             var start = st; // 开始时间轴
 50             
 51             var end = et; // 结束时间轴
 52             
 53             var startTime = this.timeDate(start);
 54             
 55             var endTime = this.timeDate(end);
 56             
 57             // 判断循环
 58             while ((endTime.getTime() - startTime.getTime()) >= 0) {
 59             
 60                 var year = startTime.getFullYear();
 61             
 62                 var month = startTime.getMonth().toString().length == 1 ? "0" + startTime.getMonth().toString() : startTime.getMonth();
 63             
 64                 var day = startTime.getDate().toString().length == 1 ? "0" + startTime.getDate() : startTime.getDate();
 65             
 66                 receive.push(year + "-" + month + "-" + day);
 67             
 68                 startTime.setDate(startTime.getDate() + 1);
 69             
 70             }
 71             
 72             return receive;
 73         },
 74 
 75     }
 76 
 77 });
 78 
 79 // 执行函数
 80 vm.timer(vm.chartData[0].timeline,vm.chartData[vm.chartData.length - 1].timeline,vm.timeline);
 81 
 82 // 定义一个空数组用于存放阅读数
 83 var timeObj = {};
 84 
 85 // 先定义新的时间数组 设置默认阅读数为0(数组去重思想)
 86 $.each(vm.timeline,function(i,v){
 87 
 88     timeObj[v] = "0";
 89 
 90 });
 91 
 92 // 在定义后台返回的数组,赋值到对象中以取代应该不为0的数组
 93 $.each(vm.chartData,function(i,v){
 94 
 95     timeObj[v.timeline] = v.datanum;
 96 
 97 });
 98 
 99 // 将对象的value值(阅读数)拿出来组成数组
100 for (var index in timeObj) {
101 
102     vm.datanum.push(timeObj[index]);
103 
104 }
105 
106 /**
107  * 统计图
108  */
109 // 基于准备好的dom,初始化echarts实例
110 var myChart = echarts.init(document.getElementById('chart'));
111 
112 // 指定图表的配置项和数据
113 var option = {
114     title: {
115         text: '例:文章阅读数'
116     },
117     tooltip: {},
118     legend: {
119         data: ['阅读量']
120     },
121     xAxis: {
122         data: vm.timeline //timeline
123     },
124     yAxis: {},
125     series: [{
126         name: '阅读量',
127         type: 'line',
128         data: vm.datanum // datanum
129     }]
130 };
131 
132 // 使用刚指定的配置项和数据显示图表。
133 myChart.setOption(option);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档