当前位置:   article > 正文

el-table表格 根据数据结构自定义合并行和列_根据一个数决定el-table的行和列数

根据一个数决定el-table的行和列数

在渲染表格时,有时需要根据表格数据,进行一定格式的合并行或列.例如达到下面的效果.

数据结构:

可以看到我们需要根据数据结构的变化,动态的设置表格需要合并的行数. a-table官网文档,提供了span-method方法,返回指定的数据,就可以实现.该方法里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性.

1.遍历后台返回的数据.得到mergeList数据

this.mergeList=[2,3,2]  //每组依次需要合并的行数产生的数组.

2.设置span-method方法

  1. <el-table :data="tableData" :span-method="objectSpanMethod" border>
  2. <el-table-column prop="id" label="ID" width="180">
  3. </el-table-column>
  4. <el-table-column prop="name" label="姓名">
  5. </el-table-column>
  6. ....
  7. </el-table>
  1. //合并行方法
  2. objectSpanMethod({ row, column, rowIndex, columnIndex }) {
  3. let list = this.mergeList //需要依次处理的行数组
  4. let s = 0
  5. //columnIndex代表那一列需要合并行
  6. if (columnIndex === 0 || columnIndex === 3) {
  7. for (var i = 0; i < list.length; i++) {
  8. s += list[i] //合计已经合并的行,设置区间
  9. if (i == 0) {
  10. if (rowIndex < list[i]) {
  11. if (rowIndex % list[i] === 0) {
  12. return {
  13. rowspan: list[i], //行数
  14. colspan: 1 , //列数
  15. }
  16. } else {
  17. //不需要合并,不做处理
  18. return {
  19. rowspan: 0,
  20. colspan: 0
  21. }
  22. }
  23. }
  24. } else {
  25. //只对指定区间的行进行合并
  26. if (rowIndex >= s - list[i] && rowIndex < s) {
  27. if ((rowIndex - (s - list[i])) % list[i] === 0) {
  28. return {
  29. rowspan: list[i],
  30. colspan: 1
  31. }
  32. } else {
  33. return {
  34. rowspan: 0,
  35. colspan: 0
  36. }
  37. }
  38. }
  39. }
  40. }
  41. }
  42. }

总结:使用官方文档,只能对指定倍数的行或列进行合并.做了一些修改,主要是遍历自定义合并行数组,循环进行遍历处理.列的合并也可以使用同样的思路进行处理. 小小总结,不成敬意.各位同学有更好的方法,可以楼下交流一下.

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