export default function jgOptions(personData) {
let personObj = {};
const Xdata = personData.map(item => item.taskName + '考核')
// 查找所有人员并去重
const allPerson= personData.map(item => {
return item.assessObjects.map(o => o.objectUserName )
}).flat();
const Ydata = Array.from(new Set(allPerson));
// 所有人员数据
const allData = personData.map(item => {
return item.assessObjects.map(o => {
return [item.taskName + '考核',o.objectUserName,o.assessScore||0,o.assessLevel]
})
}).flat()
personObj.best = allData.filter(item => item[3] == 1);
personObj.better = allData.filter(item => item[3] == 2);
personObj.pass = allData.filter(item => item[3] == 3);
personObj.nopass = allData.filter(item => item[3] == 4);
return {
legend: {
show: true,
itemGap:40,
},
tooltip: {},
xAxis: {
type: 'category',
axisLabel: {
interval: Xdata.length > 5 ? 0 : 1, // 强制显示所有标签
rotate: Xdata.length > 5 ? 20 : 0 // 旋转角度
},
data: Xdata
},
yAxis: {
type: 'category',
data: Ydata,
splitLine: {
show: false,
lineStyle: {
color: '#000'
}
}
},
series: [
{
name: '优秀',
type: 'scatter',
symbol: 'rect',
symbolSize: [(800/Xdata.length), (625/Ydata.length)],
itemStyle:{
color:"#91cc75"
},
label:{
show:true,
formatter: function (params) {
return params.value[2]; // 显示数据点的值
},
offset: [0, 0], // 调整标签位置
color: '#000' // 标签颜色
},
tooltip:{
backgroundColor: "#fff",
textStyle: {
color:"#000",
},
formatter: (data) => {
return `
${data.value[1]}
考核任务:
${data.value[0]}
考核得分:
${data.value[2]}
考核等级:
${data.seriesName}
`
}
},
data: personObj.best
},
{
name: '良好',
type: 'scatter',
symbol: 'rect',
symbolSize: [(800/Xdata.length), (625/Ydata.length)],
itemStyle:{
color:"#5470c6"
},
label:{
show:true,
formatter: function (params) {
return params.value[2]; // 显示数据点的值
},
offset: [0, 0], // 调整标签位置
color: '#fff' // 标签颜色
},
tooltip:{
backgroundColor: "#fff",
textStyle: {
color:"#000",
},
formatter: (data) => {
return `
${data.value[1]}
考核任务:
${data.value[0]}
考核得分:
${data.value[2]}
考核等级:
${data.seriesName}
`
}
},
data:personObj.better
},
{
name: '合格',
type: 'scatter',
symbol: 'rect',
symbolSize: [(800/Xdata.length), (625/Ydata.length)],
itemStyle:{
color:"#fac858"
},
label:{
show:true,
formatter: function (params) {
return params.value[2]; // 显示数据点的值
},
offset: [0, 0], // 调整标签位置
color: '#000' // 标签颜色
},
tooltip:{
backgroundColor: "#fff",
textStyle: {
color:"#000",
},
formatter: (data) => {
return `
${data.value[1]}
考核任务:
${data.value[0]}
考核得分:
${data.value[2]}
考核等级:
${data.seriesName}
`
}
},
data: personObj.pass
},
{
name: '不合格',
type: 'scatter',
symbol: 'rect',
symbolSize: [(800/Xdata.length), (625/Ydata.length)],
itemStyle:{
color:"#f07979"
},
label:{
show:true,
formatter: function (params) {
return params.value[2]; // 显示数据点的值
},
offset: [0, 0], // 调整标签位置
color: '#000' // 标签颜色
},
tooltip:{
backgroundColor: "#fff",
textStyle: {
color:"#000",
},
formatter: (data) => {
return `
${data.value[1]}
考核任务:
${data.value[0]}
考核得分:
${data.value[2]}
考核等级:
${data.seriesName}
`
}
},
data: personObj.nopass
}
]
}
}