配置项如下
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: ''
}]
}
]
};