echarts在data里定义的formatter函数失效问题

在echarts官方运行的时候是生效的,拿到项目里循环之后就失效了

 

后来井排查发现,是因为循环的时候 使用了JSON.stringify(this.eqpOption)函数,导致 echarts的option里默认itemStyle的方法都为空了

所以要重新赋值一下,即使在 this.eqpOption 里声明了也不会生效,赋值后才会生效。

eqpOption: {
        tooltip: {
          trigger: 'item',
          formatter: function(params) {
            return params.name + ': ' + params.data.statusRunTimeStr + '(' + params.percent + '%)'
          }
        },
        series: [
          {
            type: 'pie',
            radius: [40, '68%'], //饼图半径大小
            avoidLabelOverlap: true,
            emphasis: {
              label: {
                show: true,
                fontSize: 14,
                fontWeight: 'bold'
              }
            },
            labelLine: {
              normal: {
                length: 5
              },
              show: true
            },
            itemStyle: {
              normal: { //饼图上的文字显示
                label: {
                  // formatter: '{b} {c}分',
                  formatter: function(params) {
                    return params.name + ' ' + params.data.statusRunTimeStr
                  }
                }
              }
            },
            data: []
          }
        ]
      },

打印数据截图:

未经过JSON格式化之前的 this.eqpOption

 

经过JSON格式化之后的 this.eqpOption

 

所以要赋值的时候给formatter重新构建一下就可以了。

item.eqpOption.series[0].itemStyle = {
          normal: { 
            label: {
              formatter: function(params) {
                return params.name + ' ' + params.data.statusRunTimeStr
              }
            }
          }
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值