element ui table表格计算最后一列的合计数

太过爱你忘了你带给我的痛 2021-07-25 20:29 1128阅读 0赞

table的合计功能

需求:计算表格中最后一列的总和,其他数字列不进行计算。

官网中的示例是所有数字列都进行计算总和的。所以需要自己处理。
在这里插入图片描述
参考官网知识点:
summary-method 自定义的合计计算方法 Function({ columns, data })
实现代码如下:

给table添加:summary-method="getSummaries"

  1. <el-table ref="table" size="small" :data="shopList" fit show-summary :summary-method="getSummaries">
  2. <el-table-column label="项目" align="center" prop="proName"></el-table-column>
  3. <el-table-column label="单笔(元)" align="center" prop="perMoney"></el-table-column>
  4. <el-table-column label="数量" align="center" prop="num"></el-table-column>
  5. <el-table-column label="合计(元)" align="center" prop="total"></el-table-column>
  6. </el-table>

对应的函数如下:

  1. getSummaries(param) {
  2. //此处打印param可以看到有两项,一项是columns,一项是data,最后一列可以通过columns.length获取到。
  3. const { columns, data } = param
  4. const len = columns.length
  5. const sums = []
  6. columns.forEach((column, index) => {
  7. //如果是第一列,则最后一行展示为“总计”两个字
  8. if (index === 0) {
  9. sums[index] = '总计'
  10. //如果是最后一列,索引为列数-1,则显示计算总和
  11. } else if (index === len - 1) {
  12. const values = data.map(item => Number(item[column.property]))
  13. if (!values.every(value => isNaN(value))) {
  14. sums[index] = values.reduce((prev, curr) => {
  15. const value = Number(curr)
  16. if (!isNaN(value)) {
  17. return prev + curr
  18. } else {
  19. return prev
  20. }
  21. }, 0)
  22. } else {
  23. sums[index] = 'N/A'
  24. }
  25. //如果是除了第一列和最后一列的其他列,则显示为空
  26. } else {
  27. sums[index] = ''
  28. }
  29. })
  30. return sums
  31. }

发表评论

表情:
评论列表 (有 0 条评论,1128人围观)

还没有评论,来说两句吧...

相关阅读