配置项如下
function linearColor(color1, color2, color3, r, b, l, t) {
return new echarts.graphic.LinearGradient(r, b, l, t, [{
offset: 1,
color: color1
}, {
offset: 0.5,
color: color2
}, {
offset: 0,
color: color3
}])
}
let color1 = linearColor('#33ccff', '#33ccff', '#33ccff', 0, 0, 0, 1)
let color2 = linearColor('#0099cc', '#0099cc', '#0099cc', 0, 0, 0, 1)
let color3 = linearColor('#3366cc', '#3366cc', '#3366cc', 0, 1, 0, 0)
let color4 = linearColor('#6633cc', '#6633cc', '#6633cc', 0, 1, 0, 0)
let load = 75
let active = 45
let sign = 56
option = {
tooltip: {
formatter: '{a}: {c}率',
position: 'top'
},
series: [
{
name: '外框',
type: 'gauge',
radius: '30%',
z: 5,
center: ['50%', '35%'],
axisLine: {
show: false,
lineStyle: { // 属性lineStyle控制线条样式
color: [
[0.3, color1],
[0.6, color2],
[0.9, color3],
[1, color4]
],
width: 6
}
},
splitLine: {
show: false
},
detail: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
}
},
{
name: '人工处理率',
type: 'gauge',
radius: '25%',
min: 0,
max: Math.ceil(load / 100) * 100 + 50,
splitNumber: 5,
z: 5,
center: ['50%', '35%'],
axisLine: {
show: false,
lineStyle: { // 属性lineStyle控制线条样式
width: 2,
opacity: 0
}
},
splitLine: {
show: false,
length: 2,
lineStyle: { // 属性lineStyle控制线条样式
width: 6,
color: '#05abf8'
}
},
axisTick: {
show: true,
length: 3,
lineStyle: { // 属性lineStyle控制线条样式
width: 6,
color: '#05abf8'
}
},
pointer: { // 指针
length: '60%',
width: 5
},
itemStyle: { // 指针
color: '#04b2ff'
},
title: { // 标题
color: '#04b1fe',
offsetCenter: ['10%', '120%'],
fontSize: 13
},
axisLabel: {
distance: 5,
color: '#04b1fe',
fontSize: 12,
padding: 1.5
},
detail: {
color: '#04b1fe',
fontSize: 15,
fontWeight: 600,
offsetCenter: [0, '90%'],
formatter: function(value) {
return value+"%"
}
},
markPoint: {
symbol: 'arrow'
},
data: [{
value: load,
name: '人工处理率'
}]
},
{
name: '外框',
type: 'gauge',
radius: '25%',
center: ['27%', '40%'],
axisLine: {
show: false,
lineStyle: { // 属性lineStyle控制线条样式
color: [
[0.3, color1],
[0.6, color2],
[0.9, color3],
[1, color4]
],
width: 6
}
},
splitLine: {
show: false
},
axisTick: {
show: false
},
pointer: { // 指针
show: false
},
title: { // 标题
show: false
},
axisLabel: {
show: false
},
detail: {
show: false
}
},
{
name: '一次性解决率',
type: 'gauge',
radius: '20%',
z: 3,
min: 0,
max: Math.ceil(active / 100) * 100 + 50,
splitNumber: 5,
center: ['27%', '40%'],
axisLine: {
show: false,
lineStyle: { // 属性lineStyle控制线条样式
opacity: 0
}
},
splitLine: {
show: false,
length: 2,
lineStyle: {
color: '#04b2ff',
width: 4
}
},
axisTick: {
show: true,
length: 3,
lineStyle: {
color: '#04b1fe',
width: 5
}
},
pointer: {
length: '60%',
width: 5
},
itemStyle: {
color: '#04b2ff'
},
title: {
color: '#04b1fe',
width: 10,
offsetCenter: ['0', '120%'],
lineHeight: 15,
fontSize: 13
},
axisLabel: {
distance: 5,
color: '#04b1fe',
fontSize: 12,
padding: 1
},
detail: {
color: '#04b1fe',
fontSize: 14,
fontWeight: 600,
offsetCenter: [0, '90%'],
formatter: function(value) {
return value+"%"
}
},
markPoint: {
symbol: 'arrow'
},
data: [{
value: active,
name: '一次性解决率'
}]
},
{
name: '外框',
radius: '25%',
z: 2,
type: 'gauge',
min: 0,
max: 300,
center: ['73%', '40%'],
axisLine: {
show: false,
lineStyle: {
color: [
[0.3, color1],
[0.6, color2],
[0.9, color3],
[1, color4]
],
width: 6,
barBorderRadius: 6
}
},
splitLine: {
show: false,
length: 5,
lineStyle: {
color: '#078bd9',
width: 2
}
},
axisTick: {
show: false
},
pointer: { // 指针
show: false
},
title: { // 标题
show: false
},
axisLabel: {
show: false
},
detail: {
show: false
}
},
{
name: '员工利用率',
radius: '20%',
z: 5,
type: 'gauge',
min: 0,
splitNumber: 5,
max: Math.ceil(sign / 100) * 100 + 50,
center: ['73%', '40%'],
axisLine: {
show: false,
lineStyle: {
opacity: 0
}
},
splitLine: {
show: false,
length: 2,
lineStyle: {
color: '#04b2ff',
width: 8
}
},
axisTick: {
show: true,
length: 3,
lineStyle: {
color: '#04b2ff',
width: 5
}
},
pointer: {
length: '60%',
width: 5
},
itemStyle: {
color: '#04b2ff'
},
title: {
color: '#04b2ff',
width: 10,
offsetCenter: ['0', '120%'],
fontSize: 13
},
axisLabel: {
distance: 5,
color: '#04b2ff',
fontSize: 12,
padding: 2
},
detail: {
show: true,
color: '#04b2ff',
fontSize: 14,
fontWeight: 600,
formatter: '{value}',
offsetCenter: [0, '90%'],
formatter: function(value) {
return value+"%"
}
},
markPoint: {
symbol: 'arrow'
},
data: [{
value: sign,
name: '员工利用率'
}]
}
]
}