data = [{
name: "投入品",
value: 754
},
{
name: "产出品",
value: 611
},
];
var sum = 0
data.map(item => {
sum += item.value;
})
var seriesData = getSeriesData(data)
function getSeriesData(data) {
var series = [{
name: "大环",
type: 'gauge',
splitNumber: 12,
radius: '82%',
center: ['50%', '55%'],
startAngle: 0,
endAngle: 359.9999,
axisLine: {
show: false,
lineStyle: {
color: [
[1, '#0E8564']
]
}
},
axisTick: {
show: false
},
splitLine: {
show: true,
length: 32,
lineStyle: {
color: 'auto',
width: 3.5
}
},
axisLabel: {
show: false
},
detail: {
show: false
}
},
{
name: '小环',
type: 'gauge',
splitNumber: 12,
radius: '78%',
center: ['50%', '55%'],
startAngle: 0,
endAngle: 359.9999,
axisLine: {
show: false
},
axisTick: {
show: true,
lineStyle: {
color: '#0E8564',
width: 3
},
length: 20,
splitNumber: 3
},
splitLine: {
show: false
},
axisLabel: {
show: false
},
detail: {
show: false
}
},
]
for (let i = 0; i < data.length; i++) {
series.push({
name: data[i].name,
type: 'pie',
clockWise: true,
z: 2,
hoverAnimation: false,
radius: [71 - i * 30 + '%', 64 - i * 30 + '%'],
center: ["50%", "55%"],
label: {
show: true,
position: 'outside',
formatter: '{a|{b}:{d}%}\n{hr|}',
rich: {
// hr: {
// backgroundColor: 't',
// borderRadius: 3,
// width: 3,
// height: 3,
// padding: [3, 3, 0, -12]
// },
a: {
color: '#fff',
fontSize:13,
padding: [10, 0, 0, -110]
}
}
},
labelLine: {
normal: {
length: 70 + i * 135,
length2: 100,
lineStyle: {
width: 1
}
}
},
data: [{
value: data[i].value,
name: data[i].name
}, {
value: sum - data[i].value,
name: '',
itemStyle: {
color: "rgba(0,0,0,0)",
borderWidth: 0
},
tooltip: {
show: false
},
label: {
show: false
},
hoverAnimation: false
}]
});
series.push({
name: '背景线',
type: 'pie',
silent: true,
z: 1,
clockWise: true,
hoverAnimation: false,
radius: [69.5 - i * 30 + '%', 66.5 - i * 30 + '%'],
center: ["50%", "55%"],
label: {
show: false
},
itemStyle: {
label: {
show: false,
},
labelLine: {
show: false
},
borderWidth: 5,
color: "RGB(14,115,92)",
},
data: [{
value: 100,
tooltip: {
show: false
},
hoverAnimation: false
}]
});
}
return series;
}
option = {
backgroundColor: '#090F29',
color: [{
type: 'linear',
x: 0,
y: 0,
x2: 1,
y2: 1,
colorStops: [{
offset: 0,
color: 'rgba(21,215,142,1)'
}, {
offset: 1,
color: 'rgba(97,252,104,1)'
}],
global: false
}, {
type: 'linear',
x: 0,
y: 0,
x2: 1,
y2: 1,
colorStops: [{
offset: 0,
color: 'rgba(21,215,142,1)'
}, {
offset: 1,
color: 'rgba(97,252,104,1)'
}],
global: false
}],
grid: {
top: '10%',
bottom: '0%',
left: "0%",
containLabel: false
},
xAxis: [{
show: false
}],
yAxis: [{
type: 'category',
inverse: false,
z: 3,
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
interval: 0,
inside: false,
textStyle: {
color: "RGB(78,184,252)",
fontSize: 25,
},
show: false
},
// data: optionData.yAxis
}],
series: seriesData
};