双环

描述:当前是关于Echarts图表中的 示例。
 
            let center = '50.2,63.5'.split(',')
let startAngle = '207'
let radius = '95,100'.split(',')
let endRadius = '84,109'.split(',')
// 指针值
var gaugeValue = []
// 指针颜色
var gaugeColor = []
// 最大值
var max = 100;
// 圆环进度
var gaugeList = [15, 40]
// 从大-》小
var zIndex = [10, 9]
// 圆环颜色
var colorList = []
// 圆环大小
var gaugeSize = 650
// 单位
var gaugeMeasure = '元'

// 最大值
var max = 100
// 指针值
var value = 80
// 指针名称
var pointerName = ['使用率']
// 标题
var gaugeName = '大型设备总量'
// 使用率
var rate = ((value / max) * 100).toFixed(2)


var endValue = value * 0.65;
var pieSeriesData = [{
    value: endValue,
    itemStyle: {
        color: '#FFF4DD',
        shadowColor: 'rgb(0, 90, 160, 0.52)',
        shadowBlur: 20,
        shadowOffsetY: 6
    }
}, {
    value: max-endValue,
    itemStyle: {
        color: 'rgba(255, 206, 143, 0)',
        shadowColor: 'rgba(0, 90, 160, 0)',
        shadowBlur: 20,
        shadowOffsetY: 6
    }
}]
var endSeriesData = [{
    value: endValue - 0.2,
    itemStyle: {
        color: 'rgba(255, 206, 143, 0)',
        shadowColor: 'rgba(0, 90, 160, 0)',
        shadowBlur: 20,
        shadowOffsetY: 6
    }
}, {
    value: 0.2,
    itemStyle: {
        color: '#FFF4DD',
        shadowColor: 'rgb(0, 90, 160, 0.52)',
        shadowBlur: 20,
        shadowOffsetY: 6
    }
}, {
    value: max-endValue,
    itemStyle: {
        color: 'rgba(255, 206, 143, 0)',
        shadowColor: 'rgba(0, 90, 160, 0)',
        shadowBlur: 20,
        shadowOffsetY: 6
    }
}]



const seriesData = [];
var data = [];
pointerName.map((item, index) => {
    data.push({
        name: pointerName[index],
        value: rate,
        itemStyle: {
            color: gaugeColor[index]
        }
    })
})

for (let i = 0; i < gaugeList.length; i++) {
    seriesData.push({
        type: 'bar',
        data: [{ //上层圆环,显示数据
            value: gaugeList[i],
            itemStyle: {
                color: colorList[i],
            }
        }],
        barGap: '-100%', //柱间距离,上下两层圆环重合
        coordinateSystem: 'polar',
        roundCap: true, //顶端圆角
        z: zIndex[i] //圆环层级,同zindex
    })
}

var barList = ['']
var option = {
    backgroundColor: '#333',
    center: ['50%', '70%'],
    title: [{
        show:false,
        text: gaugeName,
        subtext:'89%',
        bottom: '30%',
        x: 'center',
        borderRadius: 15,
        padding: [7, 14],
        textStyle: {
            fontSize: 26,
            fontFamily: 'DIN',
            fontWeight: 400,
            color: '#FDFFDD',
            lineHeight: 26,
            textShadow: '0px 6px 10px rgba(0, 160, 136, 0.52)',
            WebkitTextStroke: '1px #FFCD8F',
            textStroke: '1px #FFCD8F',
        },
        subtextStyle:{
            fontSize: 15,
            fontFamily: 'Source Han Sans CN',
            fontWeight: 400,
            color: '#DDFEFF',
            lineHeight: 26,
            textShadow: '0px 0px 5px #00DEFF'
        },
        formatter:name=>{
            console.log(name)
            return 'name'
        }
    }],
    angleAxis: {
        show: false,
        max: 100 * 360 / 270, //-45度到225度,二者偏移值是270度除360度
        type: 'value',
        startAngle: 225, //极坐标初始角度
        splitLine: {
            show: false
        }
    },
    barMaxWidth: 14, //圆环宽度
    radiusAxis: {
        show: false,
        type: 'category',
    },
    //圆环位置和大小
    polar: {
        center: ['50%', '70%'],
        radius: '60%',
    },
    tooltip: {
        show: true,
    },
    series: [{
            type: 'pie',
            radius: [radius[0] + '%', radius[1] + '%'],
            center: ['50%', '70%'],
            silent: true,
            max: max,
            startAngle: startAngle,
            data:pieSeriesData, 
            label: {
                show: false
            },
            coordinateSystem: 'polar',
            z: 1
        },
        {
            type: 'pie',
            radius: [endRadius[0] + '%', endRadius[1] + '%'],
            center: ['50%', '70%'],
            silent: true,
            startAngle: startAngle,
            max: max,
            data: endSeriesData,
            label:{
                show:false,
            },
            barGap: '-100%',
            coordinateSystem: 'polar',
            roundCap: true,
            z: 1
        },

    ]
}