vue+elementUI 显示表格指定列合计数据
明确需求下图来自elementUI官网根据合计行数据的来源可以分为两种情况:接口返回的数据只有表格中对应每个ID的数据,最后一行的合计是由前端来计算的表格中的合计行数据是从接口中返回的,不是由前端计算的,只需要将拿到的数据显示即可对于第一种情况,elementUI官网就有案例。在开发中遇到了第二种情况,来记录一下处理方案:1、明确返回数据结构以上述表格为例:res: {memberInfo: [{
·
明确需求
下图来自elementUI官网
根据合计行数据的来源可以分为两种情况:
- 接口返回的数据只有表格中对应每个ID的数据,最后一行的合计是由前端来计算的
- 表格中的合计行数据是从接口中返回的,不是由前端计算的,只需要将拿到的数据显示即可
对于第一种情况,elementUI官网就有案例。
在开发中遇到了第二种情况,来记录一下处理方案:
1、明确返回数据结构
以上述表格为例:
res: {
memberInfo: [
{
ID: 123456,
'姓名':'王小虎',
'数值1': 1,
'数值2': 4,
'数值3': 7
},
{
ID: 123456,
'姓名':'王小虎',
'数值1': 2,
'数值2': 5,
'数值3': 8
},
{
ID: 123456,
'姓名':'王小虎',
'数值1': 3,
'数值2': 6,
'数值3': 9
}
],
sumInfo: {
'sum1': 6,
'sum1': 15,
'sum1': 24,
}
}
2、elementUI官网 - table显示合计行相关的属性
<el-table
:data = "tableData"
border
show-summary
:summary-method="getSummaries"
>
</el-table>
3、具体方案
在methods里面定义合计方法:
methods: {
getSummaries () {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if(index === 0) {
sums[index] = '合计';
return;
}
switch(column.property) { // column.property可以匹配它的每一列的命名, 然后赋值
case "数值1":
sums[index] = this.sum.sum1; //值取自后台
break;
case "数值2":
sums[index] = this.sum.sum2; //值取自后台
break;
case "数值3":
sums[index] = this.sum.sum3; //值取自后台
break;
default:
break;
}
});
return sums;
}
}
sum中存放的是从后台拿到的合计数据:
data() {
return {
members: [] // === res.memberInfo
sum:{} // === res.sumInfo
}
}
至此,表格尾行显示合计就实现了。
更多推荐
已为社区贡献2条内容
所有评论(0)