首先,由于我的表头是动态的,所以就稍微复杂一点
效果图
表头数据格式是这样的
表格的数据格式是这样的
然后用合并的方法,此处就需要递归去计算,根据props去匹配每一列的数据,然后加起来,关键代码
//合计处理
getSummaries(param) {
const { columns, data } = param;
const sums = ["合计"];
let num = 0;
const func = (arr, props) => {
arr.forEach((item) => {
if (item.map) {
const value = item.map[props];
// 转数字
num += value && value != "" ? Number(value) : 0;
}
if (item.children && item.children.length > 0) {
func(item.children, props);
}
});
};
columns.forEach((item, index) => {
if (index > 0) {
const props = item.property;
num = 0;
func(data, props);
sums.push(num);
}
});
return sums;
},