当前位置:   article > 正文

vue3中el-table实现表格合计行_vue表格合计

vue表格合计

el-table标签上加属性 show-summary :summary-method=“getSummary”

  1. <el-table :data="formDate.scoreList" style="width:100%;height: 96%;" stripe show-summary
  2. :summary-method="calculateSummary" :header-cell-style="{ textAlign: 'center', borderColor: ' #CCC', background: '#f5f7fa' }"
  3. :cell-style="{ textAlign: 'center' }">
  4. <el-table-column type="index" label="序号" width="120"></el-table-column>
  5. <el-table-column type="puuid" label="uuid" v-if="false"></el-table-column>
  6. </el-table>
js中添加函数(合计没有额外的附件参数添加)
  1. // 合计
  2. const calculateSummary = ({ columns, data }) => {
  3. const sums = []
  4. columns.forEach((column, index) => {
  5. if (index === 0) {
  6. sums[index] = '合计总分'
  7. return
  8. }
  9. const values = data.map((item) => Number(item[column.property]))
  10. // index === 3判断那一列求合计,下标从0开始
  11. if (!values.every((value) => Number.isNaN(value)) && index === 3) {
  12. sums[index] =` ${values.reduce((prev, curr) => {
  13. const value = Number(curr)
  14. if (!Number.isNaN(value)) {
  15. return prev + curr
  16. } else {
  17. return prev
  18. }
  19. }, 0)}`
  20. }
  21. })
  22. return sums
  23. }
js中添加函数(合计有额外的附件参数添加的情况)
  1. let activeList=ref('')
  2. // 合计
  3. const calculateSummary = ({ columns, data }) => {
  4. const sums = []
  5. columns.forEach((column, index) => {
  6. if (index === 0) {
  7. sums[index] = '合计总分'
  8. return
  9. }
  10. // 通过自定义参数判断除了表格中的数据外还额外加值
  11. let a = activeList.value == 'first' ? 21 : activeList.value == 'second' ? 12 : activeList.value == 'third' ? 18 : 3
  12. // 获取表格中的数据
  13. const values = data.map((item) => Number(item[column.property]))
  14. //index === 3判断那一列求合计,下标从0开始
  15. if (!values.every((value) => Number.isNaN(value)) && index === 3) {
  16. // 通过计算额外值a+表格中的合计值(模板字符串无法直接相加需要转换数据格式)
  17. sums[index] = a+Number(` ${values.reduce((prev, curr) => {
  18. const value = Number(curr)
  19. if (!Number.isNaN(value)) {
  20. return prev + curr
  21. } else {
  22. return prev
  23. }
  24. }, 0)}`)
  25. }
  26. })
  27. return sums
  28. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/686754
推荐阅读
相关标签
  

闽ICP备14008679号