配置项如下
let color = ['#A468F3', '#2FB3FF', '#FFD42B'];
let chartData = [{
name: "行政复议诉讼",
value: 34,
},
{
name: "诉转案",
value: 286,
},
{
name: "投诉举报",
value: 26115,
},
];
let arrName = [];
let arrValue = [];
let sum = 0;
let pieSeries = [],
lineYAxis = [];
// 数据处理
chartData.forEach((v, i) => {
arrName.push(v.name);
arrValue.push(v.value);
sum = sum + v.value;
})
// 图表option整理
chartData.forEach((v, i) => {
if (i === 2) {
console.log('v',sum)
pieSeries.push({
type: 'pie',
clockWise: false,
hoverAnimation: false,
radius: [90 - i * 22 + '%', 77 - i * 22 + '%'],
center: ["50%", "55%"],
label: {
show: false
},
data: [{
value: v.value-25160,
name: v.name
}, {
value: sum - v.value,
name: '',
itemStyle: {
color: "rgba(0,0,0,0)"
}
}]
});
} else {
pieSeries.push({
type: 'pie',
clockWise: false,
hoverAnimation: false,
radius: [90 - i * 22 + '%', 77 - i * 22 + '%'],
center: ["50%", "55%"],
label: {
show: false
},
data: [{
value: v.value,
name: v.name
}, {
value: sum - v.value,
name: '',
itemStyle: {
color: "rgba(0,0,0,0)"
}
}]
});
}
pieSeries.push({
name: '',
type: 'pie',
silent: true,
z: 1,
clockWise: false, //顺时加载
hoverAnimation: false, //鼠标移入变大
radius: [90 - i * 22 + '%', 77 - i * 22 + '%'],
center: ["50%", "55%"],
label: {
show: false
},
data: [{
value: 7.5,
itemStyle: {
color: "#013159" //圆环颜色
}
}, {
value: 2.5,
name: '',
itemStyle: {
color: "rgba(0,0,0,0)"
}
}]
});
v.percent = (v.value / sum * 100).toFixed(1) + "%";
lineYAxis.push({
value: i,
textStyle: {
rich: {
circle: {
color: color[i],
padding: [0, 0]
}
}
}
});
})
option = {
backgroundColor: 'black',
title: {
text: 26115,
textStyle: {
color: '#5EC8FF',
fontSize: 16,
align: 'center',
},
top: '50%',
left: '40%'
},
color: color,
grid: {
top: '8%',
bottom: '60%',
left: "50%",
},
yAxis: [{
type: 'category',
inverse: true,
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
formatter: function(params) {
let item = chartData[params];
return '{name|' + item.name + '}'
},
interval: 0,
inside: true,
textStyle: {
rich: {
name: {
color: '#DDDDDD',
fontSize: 12,
},
}
},
show: true
},
data: lineYAxis
}],
xAxis: [{
show: false
}],
series: pieSeries
};