文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue弹窗里面使用echarts不显示的问题及解决

2023-01-28 06:08

关注

前言

弹出层中插入echarts图表,没有报错,但是图表加载不出来

此弹出层没有用element 的dialog 对话框,用的自己封装的组件,但是出现的问题是一样的

原因分析

弹出层 的内容是懒渲染的,即在第一次被打开之前,传入的默认 slot 不会被渲染到 DOM 上。

弹出层组件会监听 visible 的状态,当状态为 true 时,立刻触发 open 事件,但这个时候 弹出层 的内容还没有渲染。

因为 Vue 组件通过 $emit 触发的事件并不是异步执行的,而是同步执行。

解决方式

一、nextTick

      this.$nextTick(() => {
      //  执行echarts方法
        this.initEcharts()
      })

二、setInterval

 

 setInterval(() => {
        //  执行echarts方法
        this.initEcharts()
      }, 500);

弹出层组件和画图方法:

    <popup :tClick="retreatFromSave" :tBoot="organizationUp" tWidth='1080px'>  
      <div slot="main" class="teamwork-text-nr">
        <div class="line">实景图</div>
            <!-- 图表 -->
            <div id="sCharts" style="height: 500px;"></div>
          </div>
      <div slot="footer" style="text-align: right;padding-right: 30px;">
        <jurisbtn tFloat="none" :tClick="retreatFromSave" tName="关闭" type="primary"></jurisbtn>
      </div>
    </popup>
    //   图表
    initEcharts() {
      const myChart = this.$echarts.init(document.getElementById('sCharts'))
      const option = {
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross'
          }
        },
        xAxis: [
          {
            type: 'category',
            data: [
              '1月',
              '2月',
              '3月',
              '4月',
              '5月',
              '6月',
              '7月',
              '8月',
              '9月',
              '10月',
              '11月',
              '12月'
            ],
            axisPointer: {
              type: 'shadow'
            }
          }
        ],
        yAxis: [
          {
            type: 'value',
            name: '总体积',
            min: 0,
            max: 10,
            interval: 1,
            axisLabel: {
              formatter: '{value} m³'
            }
          },
          {
            type: 'value',
            name: '使用负荷',
            min: 0,
            max: 100,
            interval: 10,
            axisLabel: {
              formatter: '{value} %'
            }
          }
        ],
        series: [
          {
            name: '总体积',
            type: 'bar',
            data: [2.0, 4.9, 5.5, 2.2, 4.6, 6.7, 5.6, 6.2, 3.6, 2.0, 6.4, 3.3],
            itemStyle: {
              normal: {
                color: '#d0e17d'
              }
            }
          },
          {
            name: '使用负荷',
            type: 'line',
            yAxisIndex: 1,
            data: [100, 22, 33, 45, 63, 80, 20, 23, 23, 65, 12, 6.2],
            itemStyle: {
              normal: {
                color: '#898989'
              }
            }
          }
        ]
      }
      myChart.setOption(option);
    },

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯