vue element-ui 表格table列求和(合计行)

vue element-ui 表格table列求和(合计行)

<el-table :data="tableData" border show-summary  :summary-method="getSummaries" style="width: 100%">
<el-table-column
     prop="total1"
     label="总数"
     align="center"
     width="120"></el-table-column>
 </el-table>

  1. :summary-method=“getSummaries” show-summary 必须加。
  2. summary-method中传入getSummaries自定义方法。
  3. el-table-column中必须有prop。
//列求和
getSummaries(param) {
   const { columns, data } = param;//这里可以看出,自定义函数会传入每一列,以及数据
   const sums = [];
   columns.forEach((column, index) => {
     if (index === 0) {
       sums[index] = '总计';
       return;
     }else if (index >= 3) { //index>=3后的列进行求和               
       //页面分别统计 处理
       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);
       //此处结合了方式一的判断处理,实现多种条件处理
       //此处的column.property获取的值对应<el-table-column>中prop对应的字段
         switch(column.property) {
            case "total1":
            case "total2":
            case "total3":                    
                 return sums[index] = sums[index]  ;
                 break;                 
          } 
                      
       } else {
          sums[index] = ''; //如果列的值有一项不是数字,就显示这个自定义内容
       }
     }else {
		sums[index] = '--'
	 }
    });
     return sums;//最后返回合计行的数据
},

这里完成后,会出现总计行在滚动条下方的问题。解决方法可参考这里。https://blog.csdn.net/qq_32103525/article/details/119758716?spm=1001.2014.3001.5501

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱技术的大仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值