<el-table :data="tableData" border height="200"
:summary-method="getSummaries" show-summary
style="width: 100%; margin-top: 20px">
this.totalObj = res.data.data.num;
第一种
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = "合计";
return;
}
let arr = Object.keys(this.totalObj);
if (arr.length) {
arr.forEach((item) => {
switch (column.property) {
case item:
sums[index] = this.totalObj[item];
break;
default:
break;
}
});
}
});
return sums;
},
第二种
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = "合计";
return;
}
if (index === 18) {
sums[index] = this.totalObj.naked_car_amount;
return;
}
if (index === 19) {
sums[index] = this.totalObj.increment_amount;
return;
}
if (index === 20) {
sums[index] = this.totalObj.total_amount;
return;
}
if (index === 21) {
sums[index] = this.totalObj.interest_amount;
return;
}
if (index === 22) {
sums[index] = this.totalObj.service_amount;
return;
}
if (index === 23) {
sums[index] = this.totalObj.service_rate;
return;
}
});
return sums;
},
第三种
后端没反,自己硬算
//合计
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计';
return;
}
if(index === 5 || index === 8){
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)) {
let total = parseFloat(parseFloat(prev || 0) + parseFloat(curr || 0)).toFixed(2);
return parseInt(total.split('.')[1]) > 0 ? total : parseInt(total)
} else {
return prev;
}
}, 0);
}else{
sums[index] = '0.00';
}
return;
}
});
return sums;
},
第四种
this.order_detail.map(item=>{
item.unit1 = Number(item.number) - Number(item.out_stock_num)
})
// 合计
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = "合计";
return;
}
if (index === 5) {
sums[index] = data.reduce(function (prev, cur, index, arr) {
return accAdd(prev, cur.unit1 || 0);
}, 0).toFixed(2);
return;
}
if (index === 6) {
sums[index] = data.reduce(function (prev, cur, index, arr) {
return accAdd(prev, cur.out_stock_num || 0);
}, 0).toFixed(2);
return;
}
});
return sums;
},
<el-table-column show-overflow-tooltip prop="unit1" label="待出库数" min-width="80"></el-table-column>