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 相关文章推荐
javascript静态页面传值的三种方法分享
Nov 12 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
Nov 21 Javascript
javascript制作的网页侧边弹出框思路及实现代码
May 21 Javascript
AngularJS基础学习笔记之指令
May 10 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
Sep 27 Javascript
详解VueRouter进阶之导航钩子和路由元信息
Sep 13 Javascript
详解利用Angular实现多团队模块化SPA开发框架
Nov 27 Javascript
vue数组对象排序的实现代码
Jun 20 Javascript
详解vue组件中使用路由方法
Feb 12 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
Oct 15 Javascript
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
vant-ui框架的一个bug(解决切换后onload不触发)
Nov 11 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 日期时间处理函数小结
2009/12/18 PHP
php array_map()数组函数使用说明
2011/07/12 PHP
php获取用户IPv4或IPv6地址的代码
2012/11/15 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
JavaScript 调试器简介
2009/02/21 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
2017/02/28 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
vue内置指令详解
2018/04/03 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
Python语言的12个基础知识点小结
2014/07/10 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
详解python编译器和解释器的区别
2019/06/24 Python
Python实现代码统计工具
2019/09/19 Python
Numpy与Pytorch 矩阵操作方式
2019/12/27 Python
python 实现超级玛丽游戏
2020/11/25 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
拉丁舞学习者的自我评价
2013/10/27 职场文书
实习生单位鉴定意见
2013/12/04 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
2014年政协工作总结
2014/12/09 职场文书
党员民主生活会材料
2014/12/15 职场文书
英文辞职信范文
2015/05/13 职场文书