配置项如下
let bgColor = '#fff';
let title = '总量';
let color = ['#0E7CE2', '#FF8352', '#E271DE', '#F8456B', '#00FFFF', '#4AEAB0'];
let echartData = [{
name: "业绩",
value: "3720"
},
{
name: "创新",
value: "2920"
},
{
name: "敬业",
value: "2200"
},
{
name: "忠诚",
value: "1420"
},
{
name: "公益",
value: "500"
}
];
let formatNumber = function(num) {
let reg = /(?=(\B)(\d{3})+$)/g;
return num.toString().replace(reg, ',');
}
let total = echartData.reduce((a, b) => {
return a + b.value * 1
}, 0);
option = {
backgroundColor: bgColor,
color: color,
// tooltip: {
// trigger: 'item'
// },
title: [{
text: '{name|' + title + '}\n{val|' + formatNumber(total) + '}',
top: 'center',
left: 'center',
textStyle: {
rich: {
name: {
fontSize: 65,
fontWeight: 'normal',
color: '#666666',
padding: [10, 0]
},
val: {
fontSize: 65,
fontWeight: 'bold',
color: '#333333',
}
}
}
},{
text: '单位:个',
top: 20,
left: 20,
textStyle: {
fontSize: 14,
color:'#666666',
fontWeight: 400
}
}],
legend: {
orient: 'vertical',
icon: 'rect',
x: '85%',
y: 'center',
itemWidth: 12,
itemHeight: 12,
align: 'left',
textStyle: {
rich: {
name: {
fontSize: 32
},
value: {
fontSize: 16,
padding: [0, 5, 0, 15]
},
unit: {
fontSize: 12
}
}
},
formatter: function(name) {
let res = echartData.filter(v => v.name === name);
res = res[0] || {};
let unit = res.unit || '';
return '{name|' + name + '}'
}
// data: legendName
},
series: [{
type: 'pie',
radius: ['45%', '60%'],
center: ['50%', '50%'],
data: echartData,
hoverAnimation: false,
itemStyle: {
normal: {
borderColor: bgColor,
borderWidth: 2
}
},
labelLine: {
normal: {
length: 20,
length2: 120,
lineStyle: {
color: '#e6e6e6'
}
}
},
label: {
normal: {
formatter: params => {
return (
'{icon|●}{name|' + params.name + '}{value|' +
formatNumber(params.value) + '}'
// + ' ' + params.percent + '%'
);
},
padding: [0 , -100, 25, -100],
rich: {
icon: {
fontSize: 20
},
name: {
fontSize: 28,
padding: [0, 10, 0, 4],
color: '#666666'
},
value: {
fontSize: 28,
fontWeight: 'bold',
color: '#333333'
}
}
}
},
}]
};