vue中echarts实现甘特图

vue中使用echarts实现甘特图,在网上找了很多代码都不完整,大家可以试一下我写的这个简单的demo

效果如下:

vue中echarts实现甘特图

<template>
 <div id="myChart" ref="chart" ></div>
</template>
<script>
  export default {
  updated(){
      this.changeView();
    },
    methods: {
      drawLine () {
        // 基于准备好的dom,初始化echarts实例
        // var bar_dv = document.getElementById('bar_dv');
        var barDv = this.$refs.chart;
        if (barDv) {
          console.log('bar_dv不为空');
          let myChart = this.$echarts.init(barDv)
          // 基于准备好的dom,初始化echarts实例
          // let myChart = this.$echarts.init(document.getElementById('myChart'))
          // 绘制图表
          var option = {
            title: {
              text: '阶梯瀑布图',
              subtext: 'From ExcelHome',
              sublink: 'http://e.weibo.com/1341556070/Aj1J2x5a5'
            },
            tooltip: {
              trigger: 'axis',
              axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
              },
              formatter: function (params) {
                var tar;
                if (params[1].value != '-') {
                  tar = params[1];
                }
                else {
                  tar = params[0];
                }
                return tar.name + '<br/>' + tar.seriesName + ' : ' + tar.value;
              }
            },
            legend: {
              data: ['支出', '收入']
            },
            grid: {
              left: '3%',
              right: '4%',
              bottom: '3%',
              containLabel: true
            },
            yAxis: {
              type: 'category',
              splitLine: { show: false },
              data: function () {
                var list = [];
                for (var i = 1; i <= 11; i++) {
                  list.push('11月' + i + '日');
                }
                return list;
              }()
            },
            xAxis: {
              type: 'value'
            },
            series: [
              {
                name: '辅助',
                type: 'bar',
                stack: '总量',
                itemStyle: {
                  normal: {
                    barBorderColor: 'rgba(0,0,0,0)',
                    color: 'rgba(0,0,0,0)'
                  },
                  emphasis: {
                    barBorderColor: 'rgba(0,0,0,0)',
                    color: 'rgba(0,0,0,0)'
                  }
                },
                data: [0, 900, 1245, 1530, 1376, 1376, 1511, 1689, 1856, 1495, 1292]
              },
              {
                name: '收入',
                type: 'bar',
                stack: '总量',
                label: {
                  normal: {
                    show: true,
                    position: 'top'
                  }
                },
                data: [900, 345, 393, '-', '-', 135, 178, 286, '-', '-', '-']
              },
              {
                name: '支出',
                type: 'bar',
                stack: '总量',
                label: {
                  normal: {
                    show: true,
                    position: 'bottom'
                  }
                },
                data: ['-', '-', '-', 108, 154, '-', '-', '-', 119, 361, 203]
              }
            ]
          };
          myChart.setOption(option);
        } else {
          console.log('bar_dv为空!');
        }
      }
    }
  }
</script>