思路:先输出合并的数据,根据输出值,构造自己需要的数据
上代码
// 不写完整的代码的了,把重要的东西写一下就可以了
// show-summary:是否显示合计列 :summary-method="getSummaries"自定义合计
<el-table :data="tableData" :summary-method="getSummaries" show-summary>
// 在官方文旦中,内容是这样的
// 思路,先运行一遍,看一下合并列会不会出现,然后再输出 返回的 数组 改造
methods: {
getSummaries(param) { // 上面自定义 内容
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总价';
return;
}
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] += ' 元';
} else {
sums[index] = 'N/A';
}
});
console.log(sums); // 先看输出格式,看最终要返回什么数据
return sums;
}
}
// 构造自己需要的自定义合并列数据
getSummaries(param) {
console.log(param); // 查看 传过来的参数
var arr = []; // 新建一个空数组,存放处理过后的数据
for(var i = 0; i < param.length; i++){
//处理自己的逻辑
arr.push(""); // 处理后的数据 push 到数组中
}
console.log(arr ) // 查看自己构造的数据是否是需要的内容 必须是一维数组
// 最后 把数组 return 出去就好了
return arr;
}
// 小技巧 求for循环某一项的和 如: 1+2+3+4+5+6+7+8
var sum = 0
for(var i = 0; i < 20; i++){
sum+= i
}
console.log(sum)