echarts 实现分组柱状图,且小组内自定义每一个bar的label

option = {      color: ['#3e6591', '#eb7d22', '#d73f45'],      grid: {          left: 100    },    xAxis: {          axisLine: {              lineStyle: {color: '#ccc'}        },          axisLabel: {              textStyle: {color: '#777'}        }    },    yAxis: [{          inverse: true,          splitLine: {              show: true        },          axisTick: {              length: 0,              lineStyle: {color: '#ccc'}                  },          axisLine: {              lineStyle: {color: '#ccc'}        },        data: ['-', '-', '-', '-', '-']          }],    series: [{        type: 'bar',        data:[220, 182, 191, 234, 290],        label: {             normal: {                  show: true,                  position: 'left',                  textStyle: {color: '#000'},                  formatter: '合同金额',                          }        }    }, {        type: 'bar',        data:[210, 132, 91, 204, 220],        label: {             normal: {                  show: true,                  position: 'left',                  textStyle: {color: '#000'},                  formatter: '已收款',                          }        }          }, {        type: 'bar',        data:[120, 132, 131, 254, 278],        label: {             normal: {                  show: true,                  position: 'left',                  textStyle: {color: '#000'},                  formatter: '应收款',                          }        }          }]};

例如:

相干代码:

  initCharts() {      let seriesArr = []      let detail = this.detail ? this.detail : ''      let arr = [        [          {            name: ['钻井总数', '射孔总数', '压裂总数'],            data: [              { name: '钻井总数', value: detail.totalDrilling ? detail.totalDrilling - 0 : 0 },              {                name: '射孔总数',                value: detail.totalPerforate ? detail.totalPerforate - 0 : 0              },              { name: '压裂总数', value: detail.totalFracture ? detail.totalFracture - 0 : 0 }            ]          }        ],        [          {            name: ['已完钻', '已射孔', '已投产'],            data: [              {                name: '已完钻',                value: detail.finishingDrilling ? detail.finishingDrilling - 0 : 0              },              { name: '已射孔', value: detail.fractured ? detail.fractured - 0 : 0 },              { name: '已投产', value: detail.inProduction ? detail.inProduction - 0 : 0 }            ]          }        ]      ]      arr.forEach((item, ind) => {        seriesArr.push({          // name: item[0].name,          type: 'bar',          label: {            normal: {              show: true,              position: 'bottom',              textStyle: { color: '#000' },              formatter: (params, index) => {                console.log(params, index)                return params.data.name              }            }          },          barWidth: 45,          color: ind % 2 === 0 ? '#3FA7DC' : '#21a675',          barGap: '20%', //每个柱子间距          barCategoryGap: '60%', // 一组柱子间距          // 一个data 是一个色彩的所有数据 蓝色          data: item[0].data        })      })      // console.log('seriesArr=', seriesArr)      // return      // 基于筹备好的dom,初始化echarts实例      this.$nextTick(() => {        this.myChartOptions = {          xAxis: {            name: '井数',            type: 'category',            nameGap: 30,            nameLocation: 'middle',            boundaryGap: true,            // data: ['钻井总数', '已完钻', '射孔总数', '已射孔', '压裂总数', '已投产'],            // data: ['钻井总数,已完钻', '射孔总数,已射孔', '压裂总数,已投产'],            data: ['', '', ''],            axisLabel: {              show: true,              textStyle: {                margin: 20,                fontSize: 14              },              formatter: (value, index) => {                // console.log(222, value, index)                return value              }            }          },          tooltip: {            trigger: 'axis',            formatter: function(params) {              // console.log('params=', params)              var result = ''              var dotHtml =                '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#3FA7DC"></span>'              var dotHtml2 =                '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#21a675"></span>'              result +=                params[0].name +                ',' +                params[1].name +                '</br>' +                dotHtml +                params[0].name +                ':' +                params[0].value +                '</br>' +                dotHtml2 +                params[1].name +                ':' +                params[1].value              return result            }          },          yAxis: {            name: '井数(口)',            position: 'left',            nameGap: 30,            nameLocation: 'center',            axisTick: {              show: true            },            axisLine: {              onZero: false,              show: true // 显示坐标线            }          },          series: seriesArr        }        this.myChart = this.$echarts.init(document.getElementById('main'))        this.myChart.setOption(this.myChartOptions)      })      // this.myChartOptions.dataset.source = this.energyConsumptionDataSource;      // 应用刚指定的配置项和数据显示图表。    },