Echarts用了很多类型的图表了,才发现雷达图和其他柱状图折线图还真不一样,此次记录的问题是Echarts自定义添加的“全选”图例,全选勾选情况下,提示框显示错误Bug解决方案,雷达图的数值添加 %
效果图
当勾选全选,鼠标放在最中间,之前的问题是这样的,有数据展示但是是错误的
之所以不好处理,是因为雷达图中的series中的data的value值只能为数字,不可以百分比,所以%只能前端拼接添加了,其次折线图,柱状图的formatter所带参数输出的seriesName为当前的正确数据,而雷达图的所有的seriesName则全部显示为“雷达图”,这个设计有点恶心@百度
折线图,柱状图的输出
雷达图的输出
代码
所有处理都在tooltip中进行
tooltip: {
trigger: 'item',
backgroundColor: '#999',
formatter(params) {
var relVal = '' //声明一个最后用来展示的字符串 marker 是Echarts自带的颜色圆点
if (params.name == '全选') {
relVal = ' ' //如果是全选就不显示,为空
} else{
var ObjNames = { //声明一个对象用于存放提示框中的键和值
nameer:[], //存键值名
labelValue:[] //存值
}
//circleName为雷达图属性中radar对象中indicator的值,自定义的
for (let i = 0; i < circleName.length; i++) {
ObjNames.nameer.push(circleName[i].name) //赋值
}
ObjNames.labelValue = params.value //赋值
relVal = params.marker + params.name
for (let i = 0; i < ObjNames.nameer.length; i++) {
relVal += '<br/>'+ ObjNames.nameer[i]
relVal += ':' + ObjNames.labelValue[i].toFixed(2) * 100 + '%' //后端返回的是小数,此处做数据处理
}
}
console.log('toolTip提示框1111',relVal); //输出查看
return relVal //最后将处理好的值return
},
},
circleName来源
marker 是Echarts的属性,是一个HTML字符串