echarts图表在el-dialog中显示问题

el-dialog 中动态渲染 echarts 图表

  • 现象

    第一次点开不显示图表,第二次点开虽然显示图表,但是图表挤在一起,页面检查发现宽高只有100px,但是明明已经设置样式宽高100%

  • 组件代码

    <el-dialog
      v-dialogDrag
      title=""
      width="50%"
      top="10vh"
      :visible.sync="dialogVisible"
      :close-on-click-modal="false"
      @close="handledialogClose"
    >
      <div class="chart-box">
        <div ref="chartContainer" class="chart-container"></div>
      </div>
    </el-dialog>
    
  • 分析问题

    初步估计是dialog还没完全显示出来,图表已经初始化,导致第一次图表容器还未挂载。然后因为装载图表容器的dom还未挂载,导致设置的宽高样式100%无效。

  • 解决办法

    this.$nextTick(() => {
        if (this.chart) {
        this.chart.dispose();
        this.chart = this.$echarts.init(this.$refs.chartContainer);
        this.chart.setOption(this.option, true);
        } else {
        this.chart = this.$echarts.init(this.$refs.chartContainer);
        this.chart.setOption(this.option, true);
        }
    })
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于在项目中需要对数据进行可视化处理,也就是用图表展示,众所周知echarts是非常强大的插件。一开始想在网上找一...
    小怪兽出没_86e0阅读 1,084评论 0 2
  • 特性介绍 百度的ECharts目前在国内使用的比较多,ECharts一个纯 Javascript的图表库,可以流畅...
    CodeMT阅读 955评论 0 3
  • 1、给element的input添加点击事件无效,代码如下: <el-input type="textarea" ...
    谭鱼鱼阅读 3,337评论 0 2
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,626评论 28 53
  • 人工智能是什么?什么是人工智能?人工智能是未来发展的必然趋势吗?以后人工智能技术真的能达到电影里机器人的智能水平吗...
    ZLLZ阅读 3,996评论 0 5