码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • element-plus 表格-合并单元格


    利用表格:span-method="" 方法实现合并单元格

    合并前

    合并后

    重点代码generateIndexGroups ,找到合并的单元格的index号

    代码实现如下

    1. <script setup>
    2. import { onMounted, reactive, ref } from "vue";
    3. const tabHeader = [
    4. { prop: "dept", label: "部门", width: 180 },
    5. { prop: "name", label: "姓名" },
    6. { prop: "area", label: "所属地" },
    7. ];
    8. const tableData = reactive([
    9. {
    10. dept: "部门1",
    11. name: "李1",
    12. area: "1",
    13. },
    14. {
    15. dept: "部门1",
    16. name: "李2",
    17. area: "1",
    18. },
    19. {
    20. dept: "部门1",
    21. name: "李3",
    22. area: "3",
    23. },
    24. {
    25. dept: "部门1",
    26. name: "李4",
    27. area: "2",
    28. },
    29. {
    30. dept: "部门2",
    31. name: "李1",
    32. area: "5",
    33. },
    34. {
    35. dept: "部门2",
    36. name: "李想3",
    37. area: "5",
    38. },
    39. {
    40. dept: "部门3",
    41. name: "李想33",
    42. area: "7",
    43. },
    44. ]);
    45. let mindexGroups = reactive([]);
    46. let mnameGroups = reactive([]);
    47. const merge = ref(false)
    48. onMounted(() => {
    49. mindexGroups = generateIndexGroups(tableData, ["dept"]);
    50. mnameGroups = generateIndexGroups(tableData, ["dept", "area"]);
    51. });
    52. function testf() {
    53. console.log(mindexGroups);
    54. merge.value = !merge.value;
    55. }
    56. function arraySpanMethod({ row, column, rowIndex, columnIndex }) {
    57. if (merge.value != true)
    58. {
    59. return;
    60. }
    61. //第0列
    62. if (columnIndex == 0) {
    63. for (let i = 0; i < mindexGroups.length; ++i) {
    64. if (rowIndex == mindexGroups[i].start) {
    65. return [mindexGroups[i].end - mindexGroups[i].start + 1, 1];
    66. }
    67. }
    68. return [0, 0];
    69. }
    70. //第2列
    71. if (columnIndex == 2) {
    72. for (let i = 0; i < mnameGroups.length; ++i) {
    73. if (rowIndex == mnameGroups[i].start) {
    74. return [mnameGroups[i].end - mnameGroups[i].start + 1, 1];
    75. }
    76. }
    77. return [0, 0];
    78. }
    79. }
    80. function generateIndexGroups(data, field) {
    81. let tmp = data.map((i) => {
    82. let rstr = "";
    83. for (let j = 0; j < field.length; ++j) {
    84. rstr += "+" + i[field[j]];
    85. }
    86. console.log(i, rstr);
    87. return rstr;
    88. }); //排序
    89. return findIndexs(tmp);
    90. }
    91. function findIndexs(array) {
    92. /*
    93. @params:数组
    94. return:一个包含重复序列,开始索引和结束索引的数组
    95. 如:
    96. [
    97. {start:0;end:2
    98. },
    99. {start:3;end:5}
    100. ]
    101. */
    102. let current = array[0];
    103. let result = []; //返回结果
    104. let startIndex = 0;
    105. for (let i = 1; i < array.length; i++) {
    106. if (array[i] != current) {
    107. //if (startIndex == i -1) continue;
    108. result.push({ start: startIndex, end: i - 1 });
    109. current = array[i];
    110. startIndex = i;
    111. }
    112. }
    113. result.push({ start: startIndex, end: array.length - 1 });
    114. return result;
    115. }
    116. script>
    117. <style lang="scss" scoped>style>

    参考:element-ui 合并行单元格,列-CSDN博客

    element-ui 合并表格行_elementui表格合并行_nuise_的博客-CSDN博客

  • 相关阅读:
    「Spring Boot 系列」08. Spring Boot整合MyBatis
    功能强大的专业网页设计工具:RapidWeaver 8 mac版
    LEADTOOLS 入门教程: 配置和运行文档服务 - .NET Core
    HTML做一个个人博客页面(纯html代码)
    Embedding技术与应用(3):Embeddings技术的实践应用
    C语言:贪吃蛇游戏(万字解读超详细)
    egg(二十):fs读取本地的txt文件
    六大排序(插入排序、希尔排序、冒泡排序、选择排序、堆排序、快速排序)未完
    基于SSM的高速公路的智能交通管理系统
    MySQL——增删改查
  • 原文地址:https://blog.csdn.net/chyuanrufeng/article/details/134491289
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号