// 使用summary-method 自定义的合计逻辑。主要是为了显示订单合计金额,并过滤不需要合计的列
getSummaries(param) {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
// 第一列 显示文字 小计
if (index === 0) {
sums[index] = '小计'
return
}
if (index === 2) { // 只针对第3列进行合计
const values = data.map(item => Number(item[column.property]))
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] = sums[index].toFixed(2) // 保留2位小数,解决小数合计列
} else {
sums[index] = '/' // 其余列一律不进行合计
}
}
})
return sums;
}
若需要保留整数,也可以使用 Math.round(x) 方法,可把一个数字舍入为最接近的整数:
sums[index] = Math.round(sums[index]*100)/100;