问题描述:
要求为表格添加合计功能,若后端传出的数字带逗号,需要去掉逗号再计算。
修改之前:
修改之后:
解决方法:
1.页面表格代码如下,为表格添加getTotal方法
<el-table show-summary
:summary-method="getTotal"
ref="filterTable"
:data="dataTable"
stripe>
<el-table-column prop="eventname" label="事件名称" min-width="120"></el-table-column>
<el-table-column prop="cost" label="损失金额" min-width="120"></el-table-column>
</el-table>
2.js方法如下:
getTotal(param){
const {columns,data} = param;
const sums = [];
columns.forEach((column,index) => {
//将合计两个字放在列表下方的第一格
if(index === 0){
sums[index] = '合计';
return;
}
const values = data.map(item =>){
if(item[column.property] !=null){
//去掉数字中的逗号,并将数据类型转为数字类型
return Number(item[column.property].replace(/,/g,""))
}
});
if(column.property === 'cost'){
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);
} else {
sums[index] = '';
}
});
return sums;
}
注意:经过toFixed()方法,来进行数据处理之后,还要进行数值计算的话,那么一定要转成Number类型
版权声明:本文为qq_52999833原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。