vue-cli-echarts-在tab切换时图标的宽度为默认的100px的bug解决方案

前沿


最近在用echarts开发大数据可视化时,发现在tab切换时echarts图标默认隐藏的时候,图表是不渲染的,等再次有数据的时候就会渲染,但这时候渲染的默认是100px,这就很坑了,今天折腾了一下午,非常爽,简直不知道从那下手,看了一遍有一边的代码。老以为是样式写错了,扎心了,现在记录下来,以方便以后学习和解决问题。行了,不说了,上解决方案。

解决方法,就是每次绘图之前动态在给eharts赋一次width就好了

       <div class="PieAssetL"
               ref="pieEcharts">
            <div id="AssetAllocationProductStructurePieChart"
                 :style="{width: '100%', height: '530px'}"></div>
          </div>
       setTimeout(() => {
          let pieCharts = document.getElementById(
            "AssetAllocationProductStructurePieChart"
          );
       ******** 先动态设置一遍width然后再初始化      重点就是这两句*********
          pieCharts.style.width = this.$refs.pieEcharts.offsetWidth + "px";
          let myChart = this.$echarts.init(pieCharts);

          myChart.clear();
       myChart.setOption(
            {
              tooltip: {
                trigger: "item",
                formatter: "{a} <br/>{b} : {d}%"
              },

              legend: {
                //图例组件
                orient: "vertical", //图例列表的布局朝向
                top: "31.3%", //图例组件距离容器顶部的距离
                right: "0%", //图例组件距离容器右侧的距离
                itemGap: 22,
                textStyle: {
                  color: this.echartsXYcolor
                }
                // data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
              },
              series: [
                {
                  name: AAllocation.acc_time,
                  type: "pie",
                  radius: "45%", // 饼图的半径
                  center: ["35%", "50%"], //饼图的中心坐标
                  data: PieLists,
                  itemStyle: {
                    emphasis: {
                      shadowBlur: 10,
                      shadowOffsetX: 0,
                      shadowColor: "rgba(0, 0, 0, 0.5)"
                    },
                    normal: {
                      label: {
                        show: false //隐藏标示文字
                      },
                      labelLine: {
                        show: false //隐藏标示线
                      }
                    }
                  }
                }
              ]
            },
            true
          );
        }, 10);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值