当前位置:   article > 正文

elementui的table合并单元格_elementui表格合并单元格

elementui表格合并单元格

提示:公共js合并单元格


前言

当我们项目中多个页面都需要用到合并相同字段。一个页面一个页面的写太过于繁琐,所以封装了公共js:合并单元格


提示:以下是本篇文章正文内容,下面案例可供参考

一、合并单元格

elementui的官网上有span-method 合并行或列的计算方法的属性。

自带四个属性值:({ row, column, rowIndex, columnIndex }),

row: 当前行,column: 当前列, rowIndex:当前行号,columnIndex :当前列号

二、使用步骤

1.在公共的js中存放

代码如下(示例):

  1. <script>
  2. /**
  3. * 合并单元格
  4. * TableData:传递过来的表格数据
  5. * itemName:属性名
  6. * rowIndex:行索引值
  7. * */
  8. MergeCol: (TableData, itemName, rowIndex) => {
  9. // 合并单元格
  10. // id:属性名
  11. // rowIndex:行索引值
  12. var idName = TableData[rowIndex][itemName]; // 获取当前单元格的值
  13. if (rowIndex > 0) {
  14. // 判断是不是第一行
  15. // eslint-disable-next-line eqeqeq
  16. if (TableData[rowIndex][itemName] != TableData[rowIndex - 1][itemName]) {
  17. // 先判断当前单元格的值是不是和上一行的值相等
  18. var i = rowIndex;
  19. var num = 0; // 定义一个变量i,用于记录行索引值并进行循环,num用于计数
  20. while (i < TableData.length) {
  21. // 当索引值小于table的数组长度时,循环执行
  22. if (TableData[i][itemName] === idName) {
  23. // 判断循环的单元格的值是不是和当前行的值相等
  24. i++; // 如果相等,则索引值加1
  25. num++; // 合并的num计数加1
  26. } else {
  27. i = TableData.length; // 如果不相等,将索引值设置为table的数组长度,跳出循环
  28. }
  29. }
  30. return {
  31. rowspan: num, // 最终将合并的行数返回
  32. colspan: 1,
  33. };
  34. } else {
  35. return {
  36. rowspan: 0, // 如果相等,则将rowspan设置为0
  37. colspan: 1,
  38. };
  39. }
  40. } else {
  41. // 如果是第一行,则直接返回
  42. let i = rowIndex;
  43. let num = 0;
  44. while (i < TableData.length) {
  45. // 当索引值小于table的数组长度时,循环执行
  46. if (TableData[i][itemName] === idName) {
  47. i++;
  48. num++;
  49. } else {
  50. i = TableData.length;
  51. }
  52. }
  53. return {
  54. rowspan: num,
  55. colspan: 1,
  56. };
  57. }
  58. },
  59. </script>

2.在页面中使用

代码如下(示例):

页面表格使用

  代码如下:

  1. <script>
  2. //#region 合并单元格
  3. // 这个方法是 element-ui提供的单元格合并方法
  4. // objectSpanMethod 传入了 { row, column, rowIndex, columnIndex }
  5. // row: 当前行
  6. // column: 当前列
  7. // rowIndex:当前行号
  8. // columnIndex :当前列号
  9. // 1代表:独占一行
  10. // 更大的自然数:代表合并了若干行
  11. // 0:代表“消失”的哪那一个单元格,后面的单元格向前推一格
  12. //tableData:表格的数据
  13. //types:判断是合并哪一列
  14. objectSpanMethod({ row, column, rowIndex, columnIndex }, tableData, types) {
  15. if (types === 1) {
  16. switch (
  17. columnIndex // 将列索引作为判断值
  18. ) {
  19. // 通过传递不同的列索引和需要合并的属性名,可以实现不同列的合并(索引0,1 指的是页面上的0,1)
  20. case 2:
  21. return PublicFunction.MergeCol(tableData, "itemDetail", rowIndex);
  22. case 1:
  23. return PublicFunction.MergeCol(tableData, "item", rowIndex);
  24. }
  25. } else {
  26. switch (columnIndex) {
  27. case 1:
  28. return PublicFunction.MergeCol(tableData, "item", rowIndex);
  29. }
  30. }
  31. </script>

总结:

以上就是今天要讲的内容,本文仅仅简单介绍了公共js封装以及使用合并单元格

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

闽ICP备14008679号