≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > vue.js

Vue 中使用vue2-highcharts实现曲线数据展示的方法

人气:432 时间:2019-04-08

这篇文章主要为大家详细介绍了Vue 中使用vue2-highcharts实现曲线数据展示的方法,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

 

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

 

【q1010.com温馨提示:图片暂缺】

 

2、vue前端页面如下:

 

代码如下:



<template>
 <div>
  <div>
  <div>
    <img src="../assets/index/back.png" class="rank-head-back" @click="routerBack"/>
    <span >历史曲线</span>
  </div>
  </div>
  <div >
   <div >
    <span >{{$route.params.monitorName}}({{$route.params.meterId}})</span>
   </div>
  </div>
  <div >
   <div >
    <yesterdaypicker v-on:startPicked="startPicked" style="margin-left:10px;"></yesterdaypicker>
   </div>
    <div >
    <daypicker v-on:endPicked="endPicked" style="margin-left:10px;"></daypicker>
    </div>
  </div>
  <div >
   <div >
     <vchooser :selections="periodList" @on-change="onParamChange('versions', $event)"></vchooser>
   </div>
  </div>
  <div >
   <div class="charts" >
     <vue-highcharts :options="options" ref="lineCharts" ></vue-highcharts>
   </div>
  </div>
 </div>
</template>
<script>
 import vchooser from '../components/chooser.vue'
 import VueHighcharts from 'vue2-highcharts'
 import daypicker from '../components/daypicker.vue'
 import yesterdaypicker from '../components/yesterdaypicker.vue'
 export default {
 data() {
  return{
   startDay:'',
   endDay:'',
   setIntervalNum:0,
   itemStatus:0,
   itemTitle:'功率因数',
   itemType:this.$route.params.meterType,
   periodList:[
    {
    label: '功率因数',
    value: 0
    },
    {
    label: '电流',
    value: 1
    },{
    label: '电压',
    value: 2
    },{
    label: '有功功率',
    value: 3
    },{
    label: '无功功率',
    value: 4
    }/*,{
    label: '视在功率',
    value: 5
    }*/,{
    label: '有功电量',
    value: 6
    },
   ],
   ownerFreeData: [],
   options: {
   global: {
    useUTC: false
   },
   chart: {
    type: 'spline'
   },
   title: {
    text: '功率因素'
    //text: ' '
   },
   subtitle: {
    text: ''
   },
   xAxis: {
    type: 'category'
   },
   yAxis: {
    title: {
    text: '功率因素(%)'
    //text: ' '
    },
    labels: {
    formatter: function () {
     return this.value;
    }
    }
   },
   tooltip: {
    crosshairs: true,
    shared: true
   },
   credits: {
    enabled: false
   },
   plotOptions: {
    spline: {
    marker: {
     radius: 4,
     lineColor: '#666666',
     lineWidth: 1
    }
    }
   },
   series: []
   }
  }
 },
  methods: {
  startPicked(year, month, date) {
   //this.ownerFreeData = []
   if(this.$refs.lineCharts != null){
    this.$refs.lineCharts.removeSeries();
   }
   var monthStr = '';
   var dayStr = '';
   if(month < 10){
    monthStr = `0${month}`;
   }else{
    monthStr = `${month}`;
   }
   if(date < 10){
    dayStr = `0${date}`;
   }else{
    dayStr = `${date}`;
   }
   this.startDay = `${year}-` + monthStr + '-' + dayStr;
   if(this.$refs.lineCharts != null){
    this.getList();
   }
  },
  endPicked(year, month, date) {
   //this.ownerFreeData = []
   if(this.$refs.lineCharts != null){
    this.$refs.lineCharts.removeSeries();
   }
   var monthStr = '';
   var dayStr = '';
   if(month < 10){
    monthStr = `0${month}`;
   }else{
    monthStr = `${month}`;
   }
   if(date < 10){
    dayStr = `0${date}`;
   }else{
    dayStr = `${date}`;
   }
   this.endDay = `${year}-` + monthStr + '-' + dayStr;
   if(this.$refs.lineCharts != null){
    this.getList();
   }
  },
  onParamChange (attr, val) {
   this.itemStatus = val.value;
   if(this.$refs.lineCharts != null){
    this.$refs.lineCharts.removeSeries();
   }
   if(this.$refs.lineCharts != null){
    this.getList();
   }
  },
  routerBack(){
   //let lineCharts = this.$refs.lineCharts;
   //lineCharts.getChart().destroy();
   //this.$router.go(-1);
   var mid = this.$route.params.id;
   var mname = this.$route.params.name;
   var mpname = this.$route.params.pname;
   this.$router.push({name: 'timeSortPoint', params: {id: mid,name:mname,pname:mpname}});
  },
  setType(){
   var title = '';
   let lineCharts = this.$refs.lineCharts;
   if(this.itemStatus == 0){
    title = '功率因素';
    lineCharts.getChart().title.update({ text: '功率因素' });
    lineCharts.getChart().yAxis[0].setTitle({text:'功率因素(%)'});
    if(this.itemType == 0){
     lineCharts.addSeries({name: this.startDay + ' 功率因素',data: []});
     lineCharts.addSeries({name: this.endDay + ' 功率因素',data: []});
    }else if(this.itemType == 1){
     lineCharts.addSeries({name: this.startDay + ' 总功率因素',data: []});
     lineCharts.addSeries({name: this.startDay + ' A相功率因素',data: []});
     lineCharts.addSeries({name: this.startDay + ' B相功率因素',data: []});
     lineCharts.addSeries({name: this.startDay + ' C相功率因素',data: []});
     lineCharts.addSeries({name: this.endDay + ' 总功率因素',data: []});
     lineCharts.addSeries({name: this.endDay + ' A相功率因素',data: []});
     lineCharts.addSeries({name: this.endDay + ' B相功率因素',data: []});
     lineCharts.addSeries({name: this.endDay + ' C相功率因素',data: []});
    }
   }else if(this.itemStatus == 1){
    title = '电流';
    lineCharts.getChart().title.update({ text: '电流' });
    lineCharts.getChart().yAxis[0].setTitle({text:'电流(A)'});
    if(this.itemType == 0){
     lineCharts.addSeries({name: this.startDay + ' 电流',data: []});
     lineCharts.addSeries({name: this.endDay + '电流',data: []});
    }else if(this.itemType == 1){
     lineCharts.addSeries({name: this.startDay + ' Ia 相电流',data: []});
     lineCharts.addSeries({name: this.startDay + ' Ib 相电流',data: []});
     lineCharts.addSeries({name: this.startDay + ' Ic 相电流',data: []});
     lineCharts.addSeries({name: this.startDay + ' 零序电流',data: []});
     lineCharts.addSeries({name: this.endDay + ' Ia 相电流',data: []});
     lineCharts.addSeries({name: this.endDay + ' Ib 相电流',data: []});
     lineCharts.addSeries({name: this.endDay + ' Ic 相电流',data: []});
     lineCharts.addSeries({name: this.endDay + ' 零序电流',data: []});
    }
   }else if(this.itemStatus == 2){
    title = '电压';
    lineCharts.getChart().title.update({ text: '电压' });
    lineCharts.getChart().yAxis[0].setTitle({text:'电压(V)'});
    if(this.itemType == 0){
     lineCharts.addSeries({name: this.startDay + ' 电压',data: []});
     lineCharts.addSeries({name: this.endDay + ' 电压',data: []});
    }else if(this.itemType == 1){
     lineCharts.addSeries({name: this.startDay + ' A相电压',data: []});
     lineCharts.addSeries({name: this.startDay + ' B相电压',data: []});
     lineCharts.addSeries({name: this.startDay + ' C相电压',data: []});
     lineCharts.addSeries({name: this.endDay + ' A相电压',data: []});
     lineCharts.addSeries({name: this.endDay + ' B相电压',data: []});
     lineCharts.addSeries({name: this.endDay + ' C相电压',data: []});
    }
   }else if(this.itemStatus == 3){
    title = '有功功率';
    lineCharts.getChart().title.update({ text: '有功功率' });
    lineCharts.getChart().yAxis[0].setTitle({text:'有功功率(KVA)'});
    if(this.itemType == 0){
     lineCharts.addSeries({name: this.startDay + ' 有功功率',data: []});
     lineCharts.addSeries({name: this.endDay + ' 有功功率',data: []});
    }else if(this.itemType == 1){
     lineCharts.addSeries({name: this.startDay + ' 总有功功率',data: []});
     lineCharts.addSeries({name: this.startDay + ' A相有功功率',data: []});
     lineCharts.addSeries({name: this.startDay + ' B相有功功率',data: []});
     lineCharts.addSeries({name: this.startDay + ' C相有功功率',data: []});
     lineCharts.addSeries({name: this.endDay + ' 总有功功率',data: []});
     lineCharts.addSeries({name: this.endDay + ' A相有功功率',data: []});
     lineCharts.addSeries({name: this.endDay + ' B相有功功率',data: []});
     lineCharts.addSeries({name: this.endDay + ' C相有功功率',data: []});
    }
   }else if(this.itemStatus == 4){
    title = '无功功率';
    lineCharts.getChart().title.update({ text: '无功功率' });
    lineCharts.getChart().yAxis[0].setTitle({text:'有功功率(KVA)'});
    if(this.itemType == 0){
     lineCharts.addSeries({name: this.startDay + ' 无功功率',data: []});
     lineCharts.addSeries({name: this.endDay + ' 无功功率',data: []});
    }else if(this.itemType == 1){
     lineCharts.addSeries({name: this.startDay + ' 总无功功率',data: []});
     lineCharts.addSeries({name: this.startDay + ' A相无功功率',data: []});
     lineCharts.addSeries({name: this.startDay + ' B相无功功率',data: []});
     lineCharts.addSeries({name: this.startDay + ' C相无功功率',data: []});
     lineCharts.addSeries({name: this.endDay + ' 总无功功率',data: []});
     lineCharts.addSeries({name: this.endDay + ' A相无功功率',data: []});
     lineCharts.addSeries({name: this.endDay + ' B相无功功率',data: []});
     lineCharts.addSeries({name: this.endDay + ' C相无功功率',data: []});
    }
   }else if(this.itemStatus == 5){
   }else if(this.itemStatus == 6){
    title = '总有功电量';
    lineCharts.getChart().title.update({ text: '总有功电量' });
    lineCharts.getChart().yAxis[0].setTitle({text:'总有功电量(KWH)'});
    lineCharts.addSeries({name: this.startDay + ' 总有功电量',data: []});
    lineCharts.addSeries({name: this.endDay + '总有功电量',data: []});
   }
  },
  getList(){
   var title = '';
   let lineCharts = this.$refs.lineCharts;
   var meterId = this.$route.params.meterId;
   this.setType();
   this.$http.post(this.URLINFO + '/mobile/electricity/getElectricityApp.do',{meterId:meterId,startDay:this.startDay,endDay:this.endDay})
   .then(function (res) {
    for(var i = 0;i < res.data.ls1.length; i++) {
     if(this.itemStatus == 0){
      if(this.itemType == 0){
       lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].totalnum],false,false);
      }else if(this.itemType == 1){
       lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].totalnum],false,false);
       lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].numa],false,false);
       lineCharts.getChart().series[2].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].numb],false,false);
       lineCharts.getChart().series[3].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].numc],false,false);
      }
     }else if(this.itemStatus == 1){
      if(this.itemType == 0){
       lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ia[i].ia],false,false);
      }else if(this.itemType == 1){
       lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].ia],false,false);
       lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].ib],false,false);
       lineCharts.getChart().series[2].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].ic],false,false);
       lineCharts.getChart().series[3].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].zeroi],false,false);
      }
     }else if(this.itemStatus == 2){
      if(this.itemType == 0){
       lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ia[i].ua],false,false);
      }else if(this.itemType == 1){
       lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].ua],false,false);
       lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].ua],false,false);
       lineCharts.getChart().series[2].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].uc],false,false);
      }
     }else if(this.itemStatus == 3){
      if(this.itemType == 0){
       lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ia[i].totalp],false,false);
      }else if(this.itemType == 1){
       lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].pa],false,false);
       lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].pb],false,false);
       lineCharts.getChart().series[2].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].pc],false,false);
      }
     }else if(this.itemStatus == 4){
      if(this.itemType == 0){
       lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ia[i].reactivep],false,false);
      }else if(this.itemType == 1){
       lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ia[i].reactivep],false,false);
       lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].reactivepa],false,false);
       lineCharts.getChart().series[2].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].reactivepb],false,false);
       lineCharts.getChart().series[3].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ls1[i].reactivepc],false,false);
      }
     }else if(this.itemStatus == 6){
      lineCharts.getChart().series[0].addPoint([getTimeStr(res.data.ls1[i].transtime),res.data.ia[i].readNum],false,false);
     }
    }
    for(var i = 0;i < res.data.ls2.length; i++) {
     if(this.itemStatus == 0){
      if(this.itemType == 0){
       lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].totalnum],false,false);
      }else if(this.itemType == 1){
       lineCharts.getChart().series[4].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].totalnum],false,false);
       lineCharts.getChart().series[5].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].numa],false,false);
       lineCharts.getChart().series[6].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].numb],false,false);
       lineCharts.getChart().series[7].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].numc],false,false);
      }
     }else if(this.itemStatus == 1){
      if(this.itemType == 0){
       lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].ia],false,false);
      }else if(this.itemType == 1){
       lineCharts.getChart().series[4].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].ia],false,false);
       lineCharts.getChart().series[5].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].ib],false,false);
       lineCharts.getChart().series[6].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].ic],false,false);
       lineCharts.getChart().series[7].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].zeroi],false,false);
      }
     }else if(this.itemStatus == 2){
      if(this.itemType == 0){
       lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].ua],false,false);
      }else if(this.itemType == 1){
       lineCharts.getChart().series[3].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].ua],false,false);
       lineCharts.getChart().series[4].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].ub],false,false);
       lineCharts.getChart().series[5].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].uc],false,false);
      }
     }else if(this.itemStatus == 3){
      if(this.itemType == 0){
       lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].totalp],false,false);
      }else if(this.itemType == 1){
       lineCharts.getChart().series[4].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].totalp],false,false);
       lineCharts.getChart().series[5].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].pa],false,false);
       lineCharts.getChart().series[6].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].pb],false,false);
       lineCharts.getChart().series[7].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].pc],false,false);
      }
     }else if(this.itemStatus == 4){
      if(this.itemType == 0){
       lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].reactivep],false,false);
      }else if(this.itemType == 1){
       lineCharts.getChart().series[4].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].reactivep],false,false);
       lineCharts.getChart().series[5].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].reactivepa],false,false);
       lineCharts.getChart().series[6].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].reactivepb],false,false);
       lineCharts.getChart().series[7].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].reactivepc],false,false);
      }
     }else if(this.itemStatus == 6){
      lineCharts.getChart().series[1].addPoint([getTimeStr(res.data.ls2[i].transtime),res.data.ls2[i].readNum],false,false);
     }
    }
    lineCharts.getChart().redraw();
   })
   .catch(function (error) {
    console.log(error)
    this.$toast('查询业主电费异常');
   });
  }
  },
  components: {
   vchooser,
  VueHighcharts,
  daypicker,
  yesterdaypicker
  },
 mounted () {
  this.getList()
 }
 }
 function getCurrentTime(){
 var date = new Date();
 var hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
 var minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
 var second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
 return hour + ':' + minute + ':' + second;
 }
 function getTime(nS){
  return new Date(parseInt(nS) * 1000).toLocaleString().substr(0,17)
 }
 function formatDate(now) {
  var year=now.getYear();
  var month=now.getMonth()+1;
  var date=now.getDate();
  var hour=now.getHours();
  var minute=now.getMinutes();
  var second=now.getSeconds();
  //return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second;
  return hour+":"+minute+":"+second;
 }
 function getTimeStr(ns){
  var d=new Date(ns);
  return formatDate(d);
 }
</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实现曲线数据展示的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持四海网。

本文来自:http://www.q1010.com/184/4457-0.html

注:关于Vue 中使用vue2-highcharts实现曲线数据展示的方法的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:vue.js

您可能感兴趣的文章

  • vue.js-div滚动条隐藏但有滚动效果的实现方法
  • 基于vue v-for 循环复选框-默认勾选第一个的实现方法
  • 在Vue中使用Compass的方法
  • 基于Vue渲染与插件的加载顺序的问题分析
  • vue2.0使用swiper组件实现轮播的示例代码
  • 完美解决iview 的select下拉框选项错位的问题
  • Vue用v-for给src属性赋值的方法
  • Vuejs在v-for中,利用index来对第一项添加class的方法
  • Vue.directive()的用法和实例分析
  • vue中实现移动端的scroll滚动方法
上一篇:基于vue中解决v-for使用报红并出现警告的问题
下一篇:基于Vue渲染与插件的加载顺序的问题分析
热门文章
  • Vue 报错TypeError: this.$set is not a function 的解决方法
  • vue实现动态添加数据滚动条自动滚动到底部的示例代码
  • vue项目设置scrollTop不起作用(总结)
  • vue项目中使用vue-i18n报错的解决方法
  • iview实现select tree树形下拉框的示例代码
  • 分析关于element级联选择器数据回显问题
  • vue项目打包后打开页面空白解决办法
  • 解决element ui select下拉框不回显数据问题的解决
  • element-ui table span-method(行合并)的实现代码
  • element-ui 设置菜单栏展开的方法
  • 最新文章
    • 理解vue ssr原理并自己搭建简单的ssr框架
    • vue favicon设置以及动态修改favicon的方法
    • vue-router启用history模式下的开发及非根目录部署方法
    • 从零开始在NPM上发布一个Vue组件的方法步骤
    • Element input树型下拉框的实现代码
    • Vue 报错TypeError: this.$set is not a function 的解决方法
    • Vue.js组件高级特性实例分析
    • 浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
    • 分析Vue.js自定义tipOnce指令用法实例
    • 浅谈vuex actions和mutation的异曲同工

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。