Vue 中使用vue2-highcharts实现top功能的示例


Posted in Javascript onMarch 05, 2018

1、要实现的效果如下图:

Vue 中使用vue2-highcharts实现top功能的示例

2、首先项目中引用vue2-highcharts

package.json中如下:

Vue 中使用vue2-highcharts实现top功能的示例

在命令行中输入:

cnpm install vue2-highcharts

3、页面代码如下:

<template>
 <div >
  <div>
  <div id="transparent-header" class="rank-head container" >
    <img src="../assets/index/back.png" class="rank-head-back" @click="routerBack"/>
    <span >用能排名</span>
  </div>
  </div>
  <div >
   <div >
    <datepicker v-on:picked="picked" style="margin-left:10px;"></datepicker>
   </div>
    <div >
    </div>
  </div>
  <div >
   <div class="charts">
     <vue-highcharts :options="options" ref="maxLineCharts"></vue-highcharts>
   </div>
  </div>
  <div >
   <div class="charts">
     <vue-highcharts :options="options" ref="minLineCharts"></vue-highcharts>
   </div>
  </div>
 </div>
</template>
<script>
 import datepicker from '../components/datepicker.vue'
 import VueHighcharts from 'vue2-highcharts'
 export default {
 data() {
  return{
   topHeight:240,
   freezeMon:'',
   ownerFreeData: [],
   options:{
    credits: {
     enabled: false
    },
    legend: {
     enabled: false
    },
    global: {
     useUTC: false
    },
    chart: {
     type: 'bar'
    },
    title: {
     text: ' '
    },
    subtitle: {
     text: ''
    },
    xAxis:[{
     categories: ['1', '2', '3', '4', '5','6', '7', '8', '9', '10'],
     title: {
      text: null
     },
    labels: {
     rotation: -45
    }
     }],
    yAxis:[{
      min: 0,
      labels:{
       overflow: 'justify'
      },
      title: {
       text: '单位 (kwh)',
       align: 'high'
       }
    }],
    tooltip: {
      formatter: function(){
      return this.x+':'+this.y+'kwh';
     }
    },
    credits: {
     enabled: false
    },
    plotOptions: {
     bar: {
      dataLabels: {
       enabled: true
      }
     },
    series: [{
     type: 'bar'
    }]
    }
   }
  }
 },
  methods: {
  picked(year, month, date) {
   if(month < 10){
    this.freezeMon = `${year}-0${month}`;
   }else{
    this.freezeMon = `${year}-${month}`;
   }
   this.getList();
  },
  routerBack(){
   this.$router.go(-1);
  },
  getList(){
   let maxLineCharts = this.$refs.maxLineCharts;
   let minLineCharts = this.$refs.minLineCharts;
   if(maxLineCharts != null && minLineCharts != null){
    //移除所有Series
    maxLineCharts.removeSeries();
    minLineCharts.removeSeries();
//设置标题名 
   maxLineCharts.getChart().title.update({ text: '用能最大TOP10' });
    minLineCharts.getChart().title.update({ text: '用能最小TOP10' });
    var userType = sessionStorage.getItem('userType');
    var areaCode = sessionStorage.getItem('areaCode');
    this.$http.post(this.URLINFO + '/mobile/rankingMonitor/getDayFreezeApp.do',{yearMonth:this.freezeMon,userType:userType,areaCode:areaCode})
    .then(function (res) {
      var seriesData = []
      var categoriesData = []
      for(var i = 0;i < res.data.max.length; i++) {
        //maxLineCharts.addSeries({name:res.data.max[i][1],data: [{name: res.data.max[i][1],y:res.data.max[i][2]}]});
        seriesData.push([res.data.max[i][1],res.data.max[i][2]]);
        categoriesData.push(res.data.max[i][1]);
      }
      maxLineCharts.addSeries({name: '用能',data: seriesData});
      maxLineCharts.getChart().xAxis[0].setCategories(categoriesData);
      seriesData = []
      categoriesData = []
      for(var i = 0;i < res.data.min.length; i++) {
        //minLineCharts.addSeries({name:res.data.min[i][1],data: [{name: res.data.min[i][1],y:res.data.min[i][2]}]});
        seriesData.push([res.data.min[i][1],res.data.min[i][2]]);
        categoriesData.push(res.data.min[i][1]);
      }
      minLineCharts.addSeries({name: '用能',data: seriesData});
      minLineCharts.getChart().xAxis[0].setCategories(categoriesData);
    })
    .catch(function (error) {
      this.$toast('查询排名信息异常');
    });
   }
  }
  },
 components: {
   datepicker,
  VueHighcharts
  },
 mounted () {
  this.getList()
 }
 }
</script>
<style>
*{margin:0;padding:0; list-style:none }
h1,h2,h3,h4,h5,h6{font-size:16px; font-weight:normal;}
.rank-head{
  width: 100%;
  height: 40px;
  position:fixed;
  background: -webkit-linear-gradient(top,rgba(0,0,0,.6),rgba(0,0,0,0));
  z-index: 999;
  color: #fff;
  font-size: 16px;
  text-align: center;
  line-height: 40px;
}
.container{
  width: 100%;
  overflow: hidden
}
.rank-head-back{
  display: block;
  float: left;
  width: 40px;
  height: 40px;
  background: url("../assets/index/back.png") no-repeat center center;
  background-size: 100% 100%;
}
</style>

以上这篇Vue 中使用vue2-highcharts实现top功能的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery中filter(),not(),split()使用方法
Jul 06 Javascript
JS对HTML标签select的获取、添加、删除操作
Oct 17 Javascript
jQuery中removeAttr()方法用法实例
Jan 05 Javascript
Javascript中的call()方法介绍
Mar 15 Javascript
jQuery中hover与mouseover和mouseout的区别分析
Dec 24 Javascript
jquery简单插件制作(fn.extend)完整实例
May 24 Javascript
JS传值出现中文参数乱码的解决方法
Jun 30 Javascript
使用JS实现图片展示瀑布流效果的实例代码
Sep 12 Javascript
BootStrap入门教程(三)之响应式原理
Sep 19 Javascript
jquery 判断div show的状态实例
Dec 03 Javascript
eslint 的三大通用规则详解
May 16 Javascript
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
Vue 中使用vue2-highcharts实现曲线数据展示的方法
Mar 05 #Javascript
vue项目中引入noVNC远程桌面的方法
Mar 05 #Javascript
vue项目中使用ueditor的实例讲解
Mar 05 #Javascript
快速处理vue渲染前的显示问题
Mar 05 #Javascript
Node.js爬取豆瓣数据实例分析
Mar 05 #Javascript
基于Vue渲染与插件的加载顺序的问题详解
Mar 05 #Javascript
AjaxUpLoad.js实现文件上传
Mar 05 #Javascript
You might like
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
php抓取页面的几种方法详解
2013/06/17 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
PHP中round()函数对浮点数进行四舍五入的方法
2014/11/19 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
最新28个很棒的jQuery 教程
2011/05/28 Javascript
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
2012/02/27 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
python 多线程实现检测服务器在线情况
2015/11/25 Python
python hough变换检测直线的实现方法
2019/07/12 Python
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
岗位职责定义及内容
2013/11/08 职场文书
学生思想表现的评语
2014/01/30 职场文书
自荐信如何制作?
2014/02/21 职场文书
合伙协议书
2014/04/23 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书