【Element Ui】el-table合计功能与只统计多选框选中行的指定列数据

vue3 + element plus

实现效果:

打开官网,只需要添加 show-summary 属性就能用自带的合计功能

添加 :summary-method="getSummaries"  就可以自定义合计方法

关键代码如下:

    <el-table
        show-summary
        :summary-method="getSummaries"
        :data="reconciliationList"
        @selection-change="handleSelectionChange"
        border
         >
      <el-table-column type="selection" width="55" align="center" fixed="left"/>
      <el-table-column label="对账人" align="center" prop="fname"  />
      <el-table-column label="对账日" align="center" prop="fdateValue" />
      <el-table-column label="数量" align="center" prop="fpriceqty"/>
      <el-table-column label="含税金额" align="center" prop="fallAmount"/>
      <el-table-column label="客户订单号" align="center" prop="fpyzuText" />
    </el-table> 
const selectData = ref([])

function getSummaries(val){
  const { columns, data } = val;
  const sums = [];
  columns.forEach((column, index) => {
    if (index === 0) {
      sums[index] = '合计';
      return;
    }
    let values = []
    if (selectData.value.length===0) {
      values = data.map(item => Number(item[column.property]));
    }else{
      values = selectData.value.map(item => Number(item[column.property]));
    }
    // 对需要统计的列进行判断
    if (column.property === 'fpriceqty' ||column.property ==='fallAmount') {
      sums[index] = values.reduce((prev, curr) => {
        const value = Number(curr);
        if (!isNaN(value)) {
          return prev + curr;
        } else {
          return prev;
        }
      }, 0).toFixed(2);
    }
  });
  return sums
}

function handleSelectionChange(selection) {
  selectData.value = selection.map(item => item)
}

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值