Element Table 根据列的label class 自动计算合计

定义 table 求和方法

export function getSummariesByTableColumn(param, opt) {
  opt.sumText ??= '合计'
  opt.getColProperty ??= rawProp => rawProp

  const { columns, data } = param

  const sums = []
  columns.forEach((column, index) => {
    if (index === 0) {
      sums.push(opt.sumText)
      return
    }
    if (!column.labelClassName?.includes('need-sum')) { // 不需要求和
      sums.push('-')
      return
    }

    const property = opt.getColProperty(column.property)
    const values = data.map(item => Number(item[property]))

    sums[index] = values.reduce((prev, curr) => {
      const value = Number(curr)
      if (!isNaN(value)) {
        return prev + curr
      } else {
        return prev
      }
    }, 0)
  })
  return sums
}

在 table 上使用

    <el-table
    ...
    show-summary
    :summary-method="param => getSummariesByTableColumn(param)"
  >
    <el-table-column
        ...
        label="损耗数量"
        prop="count"
        label-class-name="need-sum"
    />
    ...
  </el-table>

这样就实现了一个比较通用 table 求和方法,不用当 table 需要求和时都要单独写一个 summary-method 方法,在内部在声明需要求和列的字段,进行求和运算。

作者:暗恋桃花源丫
本人web前端小白,只是用博客作为笔记!
转载的文章,如有侵权24小时内删除!

posted @   暗恋桃埖源  阅读(90)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2020-06-29 富文本中src中的key替换成网络路径的demo
2019-06-29 git diff 的简单使用(比较版本区别)
点击右上角即可分享
微信分享提示