echarts在dialog弹框中不显示的解决方案

vue+element项目,点击echarts图表在dialog弹框中显示具体的柱状图详情信息。控制台没有报错,但柱状图就是没出来

解决方案:

使用$nextTick拿到最新的dom,在他里面加载echarts实例

<div class="dialogBox">
	<el-dialog width="100%" :visible.sync="bankView" @close="handleClose" @open="open()" class="dialogbank">
		<div class="dialog-charts">
			<div class="dialog-title"><span>各项目排名统计TOP20</span></div>
			<div class="mg-chart" ref="mgcharts"></div>
		</div>
		<div class="dialog-table"></div>
	</el-dialog>
</div>

  

data() {
    return {
         option: {
            tooltip: {
                trigger: 'axis',
                axisPointer: { type: 'shadow' }
            },
            xAxis: [
                {
                    type: 'category',
                    data: ['一公司', '二公司', '三公司', '四公司', '五公司', '六公司','七公司'],
                    axisLine: {
                        lineStyle: {color: "#B4E4FF"},
                    },
                    axisLabel: {
                        formatter: function(value) {
                            return value.split('').join('\n');
                        }
                    }
                }
            ],
            series: [
                {
                    name: '一级项目',
                    type: 'bar',
                    stack: true,
                    barWidth:18,
                    itemStyle:{
                        normal:{ color:'#1165b2'}
					          },
                    data: [2, 3, 2, 3, 2, 3, 4, 3, 1]
                },
                {
                    name: '三级项目',
                    type: 'bar',
                    stack: true,
                    itemStyle:{
                        normal:{ color:'#a27110'}
					          },
                    data: [2, 1, 2, 1, 3, 3, 2, 1, 1]
                }
            ]
        },    
    }
}

  

methods: {
     MgCharts() {
          let mycharts = this.$echarts.init(this.$refs.mgcharts);
          mycharts.setOption(this.option, true);
          window.addEventListener('resize', () => {
              mycharts.resize();
	 })
     },
     open() {
	  this.$nextTick(() => {
	      this.MgCharts();
           })
     }
}

  

posted @ 2020-10-23 17:39  紫诺花开  阅读(3366)  评论(0编辑  收藏  举报