饼图

描述:当前是关于Echarts图表中的 饼图 示例。
 
            let aa ='';
let scale = 1;
var data = [{
        value: 13,
        name: '武汉'
    },
    {
        value: 12,
        name: '广州'
    },
    {
        value: 12,
        name: '西安'
    },
    {
        value: 5,
        name: '北京'
    },
    {
        value: 13,
        name: '成都'
    },
    {
        value: 5,
        name: '太原'
    },
    {
        value: 40,
        name: '上海'
    },
];
function getRich() {
    let result = {}
    colorArr.forEach((v, i) => {
        result[`normal${i}`]={
            fontSize: 20 * scale,
            align: 'left',
            padding: [10, 4],
            color: '#ACCFFF',
        },
        result[`value${i}`]={
            color: '#ACCFFF',
            align: 'left',
            fontSize: 14 * scale,
            padding: [2, 4],
        }
    })
    return result
}
var colorArr = ['#61a0a8', '#F87D7C', '#41E1FF', '#55D5B5', '#616BA6', '#6978F2', '#3769F4', '#01FFFF', '#FEDF00']
option = {
    backgroundColor:'#021434',
    color: colorArr,
    legend: {
        orient: 'vertical',
        right: 5,
        top: '30%',
        itemWidth: 10,
        itemHeight: 10,
        itemGap: 15,
        textStyle: {
            color: '#ACCFFF',
            fontSize: 12,
        },
        data: ['武汉', '广州', '西安', '北京', '成都', '太原', '上海', '一般待料', '紧急待料']
    },
    series: [
        {
            name: '访问来源',
            type: 'pie',
            radius: ['50%', '70%'],
            center: ["43%", "50%"],
            selectedMode: 'single',
            selectedOffset: 10,
            clockwise: true,
            label: {
                normal: {
                    formatter: function(params, ticket, callback) {
                        aa = params.dataIndex
                        var percent = 0;
                        var total = 0;
                        for (var i = 0; i < data.length; i++) {
                            total += data[i].value;
                        }
                        percent = ((params.value / total) * 100).toFixed(0)+ '%';
                            const index = params.dataIndex
                            // return [`{a${index}|${params.name}:${percent}}`].join('\n')
                        return  [`{normal${index}|${percent}}\n{value${index}|${params.name}}`].join('\n');
                    },
                    padding: [0, -80],
                    rich: getRich()
                }

            },
            labelLine: {
                length: 10,
                length2: 80,
                lineStyle: {
                    color: '#4B70C9',
                }
            },
            // label: {
            //     normal: {
            //         fontSize: 16,
            //         color: '#4B70C9',
            //         formatter: '{b}{d}%'
            //     },
            // },
            itemStyle: {
                normal: {
                    shadowColor: "rgba(0,0,0,0.4)",
                    shadowBlur: 15
                }
            },
            // labelLine: {
            //     normal: {
            //         length: 30,
            //         length2: 20,
            //         lineStyle: {
            //             color: '#4B70C9',
            //         }
            //     }
            // },
            data: data
        }
    ]
};