在很多时间处理eacharts图例百分比数据时,直接使用 单个数据/总数 会出现总和不是100%情况,所以可以采取最后一个值使用100-其他数据之和来获取,以此来解决总和不是100%的问题:
数组数据:
list: [
{
park: '系统1',
num: 200
},
{
park: '平台1',
num: 100
},
{
park: '系统2',
num: 30
}
]
数据处理:
computed:{
//求和
sum() {
let sum = this.list.reduce((prev, next) => {
return prev + next.num
}, 0)
return sum
},
//求百分比函数
getValueFormat() {
//计算属性传参
return (item, index) => {
let text = 0
if (this.sum == 0) {
text == 0
return text
}
if (index != this.list.length - 1) {
text = Math.round((item.num / this.sum) * 100)
} else {
let sum = this.list.slice(0, this.list.length - 1).reduce((prev, next) => {
return prev + Math.round((next.num / this.sum) * 100)
}, 0)
text = 100 - sum
}
return text
}
}
}