mpvue——动态渲染echarts图表

前言

使用mpvue-echarts来写图表,那个F2再提醒本身下要踩坑不能忘记。遇到了一个问题就是数据不能动态的去渲染,这个其实官方给了咱们对应的方法vue

懒加载git

 

代码

修改了调用initChart()的位置github

<!--
 * @Author: wangyang
 * @LastEditors: wangyang
 * @Description: file content
 * @Date: 2019-04-08 16:34:52
 * @LastEditTime: 2019-04-10 14:15:29
 -->
<template>
  <div class="container">
    <!-- <button @click="initChart">初始化</button> -->
    <div class="wrap">
      <mpvue-echarts lazyLoad :echarts="echarts" :onInit="handleInit" ref="echarts" />
    </div>
  </div>
</template>

<script>
import * as echarts from 'echarts/dist/echarts.simple.min'
import mpvueEcharts from 'mpvue-echarts'
let chart = null
export default {
  data () {
    return {
      option: null,
      echarts,
      share:[]
    }
  },
  components: {
    mpvueEcharts
  },
  mounted(){
       this.query();
    },
  methods: {
    initChart () {
      this.option = {
        backgroundColor: '#fff',
        color: ['#67E0E3'],
   
    legend: {
      data: [ '访问人数'],
      top:'top'
    },
    grid: {
      containLabel: true
    },
    xAxis: {
      type: 'category',
      data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    },
    yAxis: {
      x: 'center',
      type: 'value',
      splitLine: {
        lineStyle: {
          type: 'dashed'
        }
      }
    },
    series: [ 
    {
      name: '访问人数',
      type: 'line',
      smooth: false,
      label: {
          normal: {
            show: true,
            padding:[0,7,0,0]
          }
        },
      data: this.share
    }]
      }
      this.$refs.echarts.init()
    },
    handleInit (canvas, width, height) {
      chart = echarts.init(canvas, null, {
        width: width,
        height: height
      })
      canvas.setChart(chart)
      chart.setOption(this.option)
      return chart
    },
    query() {
      const that = this;
      that.http({
        url: 'Employee/statistic',
        data:{
          wid:2,
          type:1,
          uid:100007
        }
      }).then(res =>{
          if (res.status) {
              this.share = res.data.share_count;
              this.initChart();
          }
      })
    },
  },
  onShareAppMessage () {}
}
</script>

<style scoped>
.wrap {
  width: 100%;
  height: 300px;
}
</style>