带图标柱状图

描述:当前是关于Echarts图表中的 柱状图 示例。
 
            let chartData =[
    {"value": 600,"name": "单位1"},
    {"value":500,"name": "单位2"},
    {"value":400,"name": "单位3"},
    {"value": 300,"name": "单位4"},
    {"value": 200,"name": "单位5"},
];

let icon1 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAALCAYAAACUPhZAAAAB3ElEQVQokW2SzWsTURTFf2/mzUdGTUMlIY41SzfZ1IULrQu3bkT8C+zKnRs3QtGFFfzCtSCIUHDjzp2iqCVKKn5UalMtSDeSFkFpFUqaZJKRN86rL5McuAznzL3n3nffEyzVbgOTDGIDmAZ6WhXzH3cTLMfHcpxFy/UrZlW/vbPTrT1bSeknGVhiDrgAuJkGy3np3ipIOyGrg//uOqUwOxDt+gv1CYEOcNECPuelO5uXLpm4ClSzBsARJ5w4j2NjRru5Bs3vOmcWWJIVP6fIDeA0cNQw8YAHwHEgiqVA+AEyCJ4Q+KJvrmP7D733C5q+S/2QqRDtd6Ta8YfUVEM1u1R0vGtf/wn3rXJYijNH6Sy8hm432Ux6V5FprtAoOt4V4Gam9jLwGAicysQ01qB1+8sKrK9rquobmsipsTEz9w5wBjhmaOqi5+TB8FAc5IRp3f+9BW/rmtbT+l2Ykyv0iq6njrUI5Ax9cqp6mDc/N/8rcUzv1UuIktfayj5dBYthrI577sy452LGqbDEgT0+fVskETWWYeOHLp4Zfq0g7kW/RvgnTeeBE6bYbLW4/m2NzuYWPHykp64BJ9WWRpmMQr9gy3OBsKOCLdFR3buPs+UyPH2ujbfTdQwZA/wFDzGDEfJxOIQAAAAASUVORK5CYII=';
let icon2='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAALCAYAAACUPhZAAAAB4UlEQVQokW2TzUsVURjGfzNz5qPRe73dmNBr3U3Lu7EiqGzR1k1Ef4Gu2rVpE4gtNOgL10EQgtAfEG1ql0WUVGjWvSXYB5jpQqzM8HqdmRtnnCNnRh94GZ73nPd53/OcOQajc3eBPrJYBoaASGWN91O7G0zDwbTsGVN4Vb0qDpvN7cWpRkpnhe+Yk8AVwMk1+Fh0xZ2SLxIyn127Zxcq+YHYWnwuPxWgBVw1gQ9FV4wVXUEuRoFaXgA4bpeOXEZY6LG1/h3+Lqk9Y8CcqB70JLkFXABOaSIuMAGcBcK2EBiWh/D8JzieEWfs2CBafqvom1QPkSbCQwVbevwuFVWQza4Fvn3j807igdnRfbidO0rr62uIthNn0rsKdXGJeuDb14HbudoR4BHg20F1CNPM+rzyCdZ/Kirr64qI/mNd+t5x4CJwRsvJi54U5d6jbcc39Knj5h/4Ma3oq7R+F/rkElHQ6chjzQAHtHxf/+kaLxurWqpN9OUZRIkDm/lfVyJ7xh3MlwvucLngosfAiQo9QQexsJIIV+rwWz6HBMN7/1Yw7n9LOuchm8pXc05fWFrb5ObjBVobv2D6oZr6BXBeurSfyH6IS6416FtGWHItVNR6Orl0shsaT5Xwv9SOPcIA/wG11YJvCHXpxwAAAABJRU5ErkJggg==';

let colorList  =[
    ['#9ffafa', '#9ffafa', '#9ffafa', '#0093ff'],
    ['#f4ceb9', '#f4ceb9', '#f4ceb9', '#0093ff'],
    ['#b2b4ff', '#b2b4ff', '#b2b4ff', '#0093ff']
]

option = {
    backgroundColor:'#003a82',
    tooltip: {
                    show:false,
                    trigger: 'axis',
                    axisPointer: {
                        type: 'shadow'
                    }
                },
    legend: {
        show: false
    },
    grid: {
        left: '50',
        right:'3%',
        top: '6%',
        bottom:0,
        containLabel:true
    },
    xAxis: {
        show: false,
        type: 'value'

    },
    yAxis: [
        {
            type: 'category',
            inverse: true,
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
            axisPointer: {
                label: {
                    show: true,
                    margin: 5
                }
            },
            data:chartData.map(item => item.name),
            axisLabel: {
                show: false,
                inside: false,
                fontSize: 14,
                color: '#88caef',
            },
        }, 
        {
            type: 'category',
            inverse: true,
            axisTick: 'none',
            axisLine: 'none',
            show: true,
            data: chartData.map(item => item.value),
            axisLabel: {
                show:true,
                fontSize: 14,
                color: '#88caef',
                formatter:'{value}'
            }
        }
    ],
    series: [
        {
            z: 2,
            name: 'value',
            type: 'bar',
            barWidth: 5,
            zlevel: 1,
            data: chartData.map((item, i) => {
                let itemStyle = {
                    color: i > 3 ? colorList[0][3] : colorList[0][i]
                }
                return {
                    value: item.value,
                    itemStyle: itemStyle
                };
            }),
            label: {
                normal: {
                    color: '#b3ccf8',
                    show: true,
                    position: [-30, '-15'],
                    textStyle: {
                        fontSize: 12,
                        color: '#88caef',
                    },
                    rich: {
                    a1: {
                        color: '#fff',
                        fontSize: 16,
                        fontWeight:600,
                        backgroundColor: {
                            image: icon1
                        },
                        width: 20,
                        height: 10,
                        align: 'center',
                        borderRadius: 2
                    },
                    a2: {
                        color: '#fff',
                        fontSize: 16,
                        fontWeight:600,
                        backgroundColor: {
                            image: icon1
                        },
                        width: 20,
                        height: 10,
                        align: 'center',
                        borderRadius: 2
                    },
                    a3: {
                        color: '#fff',
                        fontSize: 16,
                        fontWeight:600,
                        backgroundColor: {
                            image: icon1
                        },
                        width: 20,
                        height: 10,
                        align: 'center',
                        borderRadius: 2
                    },
                    b: {
                        color: '#fff',
                        fontSize: 16,
                        fontWeight:600,
                        backgroundColor: {
                            image:icon2
                        },
                        width: 20,
                        height: 10,
                        align: 'center',
                        borderRadius: 2
                    }
                },
                    formatter: (a,b)=> {
                        var index = chartData.map(item => item.name).indexOf(a.name) ;
                        index = index + 1;
                        if (index - 1 < 3) {
                            return [
                                '{a' + index + '|' + index + '}' + '  ' + a.name
                            ].join('\n')
                        } else {
                            return [
                                '{b|' + index + '}' + '  ' + a.name
                            ].join('\n')
                        }
                    }
                }
            },
        },
        {
            name: '总量',
            type: 'bar',
            barWidth: 5,
            barGap: '-100%',
            itemStyle: {
                normal: {
                    color: 'rgba(32, 48, 85, 0.55)'
                }
            },
            data: (new Array(chartData.length)).fill(chartData[0].value+50)
        }

    ]
};