进度条( 圆 )

描述:当前是关于Echarts图表中的 示例。
 
            var bgColor = '#041F34',
    borderColor = "#fff",

        axisColor='#FFEB3B'

let dataVal = 52
const steps = 10; // 总共10个步骤
    // 使用数组和循环动态生成颜色数组
const axisLinecolor = Array.from({ length: steps + 1 }, (_, index) => {
   const ratio = index / steps;
   const colorValue = ratio <= (dataVal / 100) ? axisColor : 'transparent';
   return [ratio, colorValue];
});
option = {
    backgroundColor: bgColor,
    color: [borderColor],
          title: [
        {
            text: '轻度污染',
            x: 'center',
            top: '40%',
            textStyle: {
                color: '#FFE600',
                fontSize: 56,
                fontWeight: '600',
            },
        },],
    series: [{
            type: 'pie',
            zlevel: 1,
            radius: ['60%'],
            center: ['50%', '105.5%'],
            silent: true,
            startAngle: 180,
            label: {
                normal: {
                    show: false
                },
            },
            labelLine: {
                normal: {
                    show: false
                }
            },
            data: _pie1()
        },
        {
            type: 'pie',
            zlevel: 0,
            silent: true,
            center: ['50%', '60%'],
            radius: ['87%', '90%'],
            startAngle: -100,
            label: {
                normal: {
                    show: false
                },
            },
            labelLine: {
                normal: {
                    show: false
                }
            },
            data: [1]
        },
        {
            name: "",
            type: 'gauge',
            splitNumber: 8, //刻度数量
            min: 0,
            max: 100,
            radius: '80%', //图表尺寸
            center: ['50%', '60%'],
             zlevel: 12,
            axisLine: {
                show: true,
                lineStyle: {
                    width: 0,
                    shadowBlur: 0,
                    color: [
                        [1, '#cccccccc']
                    ]
                }
            },
            axisTick: {
                show: true,
                lineStyle: {
                    color: 'auto',
                    width: 10
                },
                length: 28,
                splitNumber: 5
            },
            splitLine: {
                show: true,
                length: 22,
                lineStyle: {
                    color: 'auto',
                }
            },
            axisLabel: {
                show: false
            },
            pointer: { //仪表盘指针
                show: 0,
            },
            detail: {
                show: 0,
            },
                data: [
              {
                
                name: "PM2.5",
                title: {
                  // 配置“家居总数”的样式
                  show: true,
                  fontSize: 28,
                  fontWeight: 700,
                  // fontFamily: fontFamily.fontFamily65W,
                  color: "rgba(128,255,255,1)",
                  offsetCenter: ["0", "70%"],
                  
                },
              },
            ],
        },
        {
            name: '统计',
            type: 'gauge',
            splitNumber: 8, //刻度数量
            min: 0,
            max: 100,
            radius: '80%', //图表尺寸
            center: ['50%', '60%'],
             zlevel: 21,
            axisLine: {
                show: true,
                lineStyle: {
                    width: 0,
                    shadowBlur: 0,
                    color:axisLinecolor
                    // color:[[dataVal/100,'#FFEB3B'],[1,'transparent']],
                    // color: [
                    //     [0, borderColor],
                    //     [0.10, borderColor],
                    //     [0.20, borderColor],
                    //     [0.30, borderColor],
                    //     [0.40, borderColor],
                    //     [0.50, borderColor],
                    //     [0.60, borderColor],
                    //     [0.70, 'transparent'],
                    //     [0.80, 'transparent'],
                    //     [0.90, 'transparent'],
                    //     [1, 'transparent']
                    // ]
                }
            },
            axisTick: {
                
                show: true,
                lineStyle: {
                    color: 'auto',
                    width: 10
                },
                length: 28,
                splitNumber: 5
            },
            splitLine: {
                
                show: true,
                length: 22,
                lineStyle: {
                    color: 'auto',
                }
            },
            axisLabel: {
                show: false
            },
            pointer: { //仪表盘指针
                show: 0,
                length: '70%',
                width: 2,
                
            },
          
             detail: {
               valueAnimation: true,
            show: true,
            color: "#fff",
            fontFamily: 'sans-serif',
            offsetCenter: [-30, '10%'],
            fontSize: 56,
         },
         title: {
            offsetCenter: [40, '15%'],
            color: "#fff",
            fontSize: 24
         },
            // data: [{
            //     name: "",
            //     value: 10
            // }]
              data: [{'name':'ug/m³','value': dataVal}],
        }, {
            zlevel: 3,
            top: '94.1%',
            breadcrumb: {
                show: false
            },
            levels: [{
                color: [bgColor],
            }],
            itemStyle: {
                normal: {
                    borderColor: bgColor
                }
            },
            roam: false,
            nodeClick: false,
            width: '100%',
            height: 80,
            type: 'treemap',
            data: [{
                name: '', // First tree
                value: 1
            }]
        }
    ]
};

function _pie1() {
    let dataArr = [];
    for (var i = 0; i < 2; i++) {
        if (i % 2 === 0) {
            dataArr.push({
                name: (i + 1).toString(),
                value: 20,
                itemStyle: {
                    
                    normal: {
                        color: "#0071F2",
                        borderWidth: 0,
                        
                         
          borderColor: "#fff",
          borderWidth: 10,
                    }
                }
            })
        } else {
            dataArr.push({
                name: (i + 1).toString(),
                value: 20,
                itemStyle: {
                    normal: {
                        color: "rgba(0,0,0,0)",
                        borderWidth: 0,
                        borderColor: "rgba(0,0,0,0)"
                    }
                }
            })
        }

    }
    return dataArr

}