动态创建elementUI表格合计行

elementui加上合计行非常简单,在表格组件上,将show-summary设置为true就会在表格尾部展示合计行。定义自己的合计逻辑,使用summary-method并传入一个方法,返回一个数组,这个数组中的各项就会显示在合计行的各列中。

<el-table ref="table" 
	show-summary 
	:summary-method="summaryMethod">
// 合计行
summaryMethod(param) {
   let that = this;
   const { columns, data } = param;
   const sums = [];
   let arr = []; //合计行数组
   columns.forEach((column, index) => {
     //处理合计行数组
     //that.summaryList是表格需要进行合计行的具体字段
     that.summaryList.forEach(item => {
       if (column.property == item) arr.push(`${item}`);
     });

     if (index === 0) {
       sums[index] = "合计";
       return;
     }
     //that.$util.delcommafy将值转化成number类型,方便做计算
     const values = data.map(
       item => that.$util.delcommafy(item[column.property]) * 1
     );
     if (arr.includes(column.property)) {
       sums[index] = values.reduce((prev, curr) => {
         const value = Number(curr);
         if (!isNaN(value)) {
           return prev + curr;
         } else {
           return prev;
         }
       }, 0);
       //金额字段数组
       that.amountList.map(stuff => {
         // 加上金额千位分隔符
         if (column.property == stuff){
           sums[index] = that.$util.fmtMoney(sums[index], 2);
         }
       });
     } else {
       sums[index] = "--";
     }
   });
   return sums;
 },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值