配置项如下
let everyDepartment = {
stages: [
{ name: '维护', max: 100 },
{ name: '活动', max: 100 },
{ name: '巡查', max: 100 },
{ name: '整改', max: 100 },
{ name: '值班', max: 100 },
],
scores: [73, 87, 93, 80, 72],
};
function contains(arr, obj) {
var i = arr.length;
while (i--) {
if (arr[i].name === obj) {
return i;
}
}
return false;
}
// 格式化数据
function formatNumber(n) {
var b = parseInt(n).toString();
var len = b.length;
if (len <= 3) {
return b;
}
var r = len % 3;
return r > 0
? b.slice(0, r) + ',' + b.slice(r, len).match(/\d{3}/g).join(',')
: b.slice(r, len).match(/\d{3}/g).join(',');
}
option = {
backgroundColor: '#081A2F',
color: ['#fff'],
radar: {
center: ['50%', '50%'],
radius: '50%',
triggerEvent: true,
splitNumber: 6,
name: {
rich: {
a: {
color: '#B3BBD9',
fontSize: 12,
fontFamily: 'Microsoft YaHei',
fontWeight: 'bold',
lineHeight: 20,
},
b: {
color: '#FFF',
fontSize: 12,
align: 'right',
fontFamily: 'Microsoft YaHei',
fontWeight: 'bold',
},
d: {
color: '#fff',
fontSize: 12,
align: 'right',
fontFamily: 'Microsoft YaHei',
fontWeight: 'bold',
},
triggerEvent: true,
},
formatter: (a, index) => {
let values = a.length > 6 ? a.slice(0, 6) + '...' : a;
let i = contains(everyDepartment.stages, a); // 处理对应要显示的样式
return `{b| ${formatNumber(everyDepartment.scores[i])}}{d|%}\n{a| ${values}}`;
},
},
nameGap: '2',
indicator: everyDepartment.stages,
splitArea: {
areaStyle: {
color: [
'rgba(38, 96, 144, .1)',
'rgba(38, 96, 144, .2)',
'rgba(38, 96, 144, .4)',
'rgba(38, 96, 144, .6)',
'rgba(38, 96, 144, .8)',
'rgba(38, 96, 144, 1)',
].reverse(),
},
},
// axisLabel:{//展示刻度
// show: true
// },
axisLine: {
//指向外圈文本的分隔线样式
lineStyle: {
color: '#205278',
width: 2,
},
},
splitLine: {
lineStyle: {
width: 2,
color: 'RGBA(24, 67, 101, 1)',
},
},
},
series: [
{
type: 'radar',
symbol: 'circle',
symbolSize: 10,
lineStyle: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: '#03AFFF',
},
{
offset: 1,
color: '#03AFFF',
},
],
false
),
width: 2,
},
itemStyle: {
color: '#fff ',
borderColor: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: '#03AFFF',
},
{
offset: 1,
color: '#03AFFF',
},
],
false
),
borderWidth: 2,
opacity: 1,
},
data: [
{
value: everyDepartment.scores,
name: '',
itemStyle: {
normal: {
lineStyle: {
color: '#000',
},
shadowColor: '#000',
shadowBlur: 20,
},
},
areaStyle: {
normal: {
color: 'RGBA(42, 151, 193, .8)',
},
},
},
],
},
],
};