echarts饼状图实现不同icon

11 篇文章 0 订阅


在这里插入图片描述

1 引入图片

import img1 from '@/assets/img/power.png'
import img2 from '@/assets/img/underPan.png'
import img3 from '@/assets/img/assist.png'
import img4 from '@/assets/img/control.png'
import img5 from '@/assets/img/other.png'
const imgConfig = {
  '动力系统': '{img1|}',
  '底盘系统': '{img2|}',
  '辅助驾驶系统': '{img3|}',
  '车身控制系统': '{img4|}',
  '其它': '{img5|}'
}

2 饼状图配置

 series: [
          {
            label: {
              normal: {
                // formatter: function(params) {
                //   return `${imgConfig[params.name]} ${params.name}`
                // },
                formatter: this.formate,
                rich: {
                  // 这里设置您的图片引用名称
                  img1: {
                    // 引入图片
                    backgroundColor: {
                      image: img1
                    }

                  },
                  img2: {
                    backgroundColor: {
                      image: img2
                    }
                  },
                  img3: {
                    backgroundColor: {
                      image: img3
                    }
                  },
                  img4: {
                    backgroundColor: {
                      image: img4
                    }
                  },
                  img5: {
                    backgroundColor: {
                      image: img5
                    }
                  }
                },
                show: true
              }
            },
            labelLine: {
              normal: {
                position: 'inner',
                show: true
              }

            },
            radius: ['50%', '60%'], // 把饼状图改成空心
            type: 'pie',
            // radius: '50%',
            data: listData,
            animationDelay: idx => idx * 200 + 100,
            itemStyle: {
              normal: {
                color: function(params) {
                  var colorList = ['#31E9FD', '#FD8C31', '#25E2BC', '#00997B', '#5D9AA2']
                  return colorList[params.dataIndex]
                },
                label: {
                  textStyle: {
                    fontSize: 10,
                    fontWeight: '300',
                    color: function(params) {
                      var colorList = ['red', '#FD8C31', '#25E2BC', '#00997B', '#5D9AA2']
                      return colorList[params.dataIndex]
                    }
                  }
                }
              }
            }

          }
        ]

3 设置饼状图label文字超过指定个数换行

 formate(e) {
      var newStr = ' '
      var start, end
      var name_len = e.name.length // 每个内容名称的长度
      var max_name = 4 // 每行最多显示的字数
      var new_row = Math.ceil(name_len / max_name) // 最多能显示几行,向上取整比如2.1就是3行
      if (name_len > max_name) { // 如果长度大于每行最多显示的字数
        for (var i = 0; i < new_row; i++) { // 循环次数就是行数
          var old = '' // 每次截取的字符
          start = i * max_name // 截取的起点
          end = start + max_name // 截取的终点
          if (i === new_row - 1) { // 最后一行就不换行了
            old = ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + e.name.substring(start)
          } else {
            // old = e.name.substring(start, end) + '\n'
            old = `${imgConfig[e.name]} ${e.name.substring(start, end)}` + '\n'
          }
          newStr += old // 拼接字符串
        }
      } else { // 如果小于每行最多显示的字数就返回原来的字符串
        newStr = `${imgConfig[e.name]} ${e.name}`
      }
      return newStr
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值