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 相关文章推荐
newxtree.js代码
Mar 13 Javascript
JavaScript中使用arguments获得函数传参个数实例
Aug 27 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
Apr 03 Javascript
基于jQuery实现左右图片轮播(原理通用)
Dec 24 Javascript
ES6新特性三: Generator(生成器)函数详解
Apr 21 Javascript
[js高手之路]寄生组合式继承的优势详解
Aug 28 Javascript
AngularJS中下拉框的高级用法示例
Oct 11 Javascript
深入理解node.js http模块
Jan 24 Javascript
vue写一个组件
Apr 09 Javascript
js微信分享接口调用详解
Jul 23 Javascript
js实现九宫格布局效果
May 28 Javascript
Vue使用screenfull实现全屏效果
Sep 17 Javascript
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
php date()日期时间函数详解
2010/05/16 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
自动最大化窗口的Javascript代码
2013/05/22 Javascript
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
Vue 2.0学习笔记之Vue中的computed属性
2017/10/16 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
python单例模式实例解析
2018/08/28 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
Python计算一个点到所有点的欧式距离实现方法
2019/07/04 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
使用Python爬取小姐姐图片(beautifulsoup法)
2021/02/11 Python
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
毕业生医学检验求职信
2013/10/16 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
移交协议书
2014/08/19 职场文书
国庆节活动总结
2014/08/26 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
学历证明范文
2015/06/16 职场文书
单位提档介绍信
2015/10/22 职场文书
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python