带标注的仪表图

描述:当前是关于Echarts图表中的 仪表盘 示例。
 
            var dataList = [{
        name: '人员总数',
        value: 100,
        unit: '人'
    },
    {
        name: '已到人数',
        value: 80,
        unit: '人'
    },
    {
        name: '未到人数',
        value: 20,
        unit: '人'
    }
]

var value = 80;

option = {
    backgroundColor: 'rgba(19,22,24,0.8)',
    legend: {
        top: "center",
        right: '20',
        orient: 'vertical',
        icon: 'circle',
        itemWidth: 10,
        itemGap: 30,
        data: ['人员总数', '已到人数', '未到人数'],
        formatter: function(name) {
            console.log(name)
            let res = dataList.filter(v => v.name === name);
            console.log(res)
            return "{name|" + name + "}"+"{value|" + res[0].value + "}"+"{unit|" + res[0].unit + "}";
        },
        textStyle: {
            color: '#fff',
            rich: {
                name: {
                    padding: [0, 20, 0, 2]
                },
                value: {
                    fontSize: 16,
                    color: '#1ED79F',
                    padding: [0, 5]
                }
            }
        }
    },
    series: [
        // 外围刻度
        {
            type: 'gauge',
            center: ['40%', '50%'],
            radius: '80%', // 1行3个
            splitNumber: 10,
            min: 0,
            max: 100,
            startAngle: 225,
            endAngle: -45,
            axisLine: {
                show: true,
                lineStyle: {
                    width: 1,
                    color: [
                        [1, 'rgba(0,0,0,0)']
                    ]
                }
            }, //仪表盘轴线
            axisTick: {
                show: true,
                lineStyle: {
                    color: 'rgba(255,255,255,0.6)',
                    width: 1
                },
                length: -8
            }, //刻度样式
            splitLine: {
                show: true,
                length: -20,
                lineStyle: {
                    color: 'rgba(255,255,255,0.6)'
                }
            }, //分隔线样式
            axisLabel: {
                show: false
            },
            pointer: {
                show: 0
            },
            detail: {
                show: 0
            }
        },
        // 内侧指针、数值显示
        {
            name: "已到人数",
            type: 'gauge',
            center: ['40%', '50%'],
            radius: '75%',
            startAngle: 225,
            endAngle: -45,
            min: 0,
            max: 100,
            title: {
                fontWeight: 'bold',
                offsetCenter: [0, '70%'],
                fontSize: 24,
                color: '#fff'
            },
            axisLine: {
                show: true,
                lineStyle: {
                    width: 16,
                    color: [
                        [
                            value / 100, new echarts.graphic.LinearGradient(
                                0, 0, 1, 0, [{
                                        offset: 0,
                                        color: "#0092FA",
                                    },
                                    {
                                        offset: 1,
                                        color: "#54F200",
                                    }
                                ]
                            )
                        ],
                        [
                            1, '#2C3136'
                        ]
                    ]
                }
            },
            axisTick: {
                show: 0,
            },
            splitLine: {
                show: 0,
            },
            axisLabel: {
                show: 0
            },
            pointer: {
                show: false,
                length: '105%'
            },
            detail: {
                show: true,
                offsetCenter: [0, 0],
                formatter: '{value|' + value.toFixed(0) + '}{unit|.' + value.toFixed(1).toString().split('.')[1] + '%}',
                rich: {
                    value: {
                        fontSize: 48,
                        lineHeight: 48,
                        color: '#fff'
                    },
                    unit: {
                        fontSize: 24,
                        lineHeight: 24,
                        color: '#fff',
                        padding: [0, 0, 12, 0]
                    },
                    name: {
                        fontSize: 20,
                        lineHeight: 30,
                        color: '#fff'
                    }
                }
            },
            itemStyle: {
                normal: {
                    color: '#54F200',
                }
            },
            data: [{
                value: value,
                name: '人员到岗进度'
            }]
        },
        {
            name: "人员总数",
            type: 'gauge',
            axisLine: {
                show: false
            },
            axisTick: {
                show: 0,
            },
            splitLine: {
                show: 0,
            },
            axisLabel: {
                show: 0
            },
            pointer: {
                show: false
            },
            detail: {
                show: false
            },
            itemStyle: {
                normal: {
                    color: '#0092FA',
                }
            },
            data: [{
                value: 100,
                name: ''
            }]
        },
        {
            name: "未到人数",
            type: 'gauge',
            axisLine: {
                show: false
            },
            axisTick: {
                show: 0,
            },
            splitLine: {
                show: 0,
            },
            axisLabel: {
                show: 0
            },
            pointer: {
                show: false
            },
            detail: {
                show: false
            },
            itemStyle: {
                normal: {
                    color: '#FE6B03',
                }
            },
            data: [{
                value: 100,
                name: ''
            }]
        }
    ]

};