码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • element table表格行列合并span-method,根据数据动态行列合并


    表格行列合并需要用到 table的方法 span-method

    在这里插入图片描述

    根据数据来进行动态的行列合并,实例如下:

     <el-table
          :data="tableData"
          :span-method="objectSpanMethod" 
          style="width: 100%">
          <el-table-column
            prop="key"
            label="分类"
            width="180">
          </el-table-column>
          <el-table-column
            prop="id"
            label="编号"
            width="180">
          </el-table-column>
          <el-table-column
            prop="name"
            label="名称">
          </el-table-column>
        </el-table>
    let data = [
    	{ key:'test1', id:0, name:'xxx' },
    	{ key:'test1', id:1, name:'xxx' },
    	{ key:'test2', id:2, name:'xxx' },
    	{ key:'test1', id:3, name:'xxx' },
    	{ key:'test2', id:4, name:'xxx' },
    	{ key:'test1', id:5, name:'xxx' },
    ]
    

    我们要根据 key 进行列合并,将test1合并到一起,test2合并到一起

    //先处理数据
    let one = data.filter(item => item.key === 'test1')
    let two= data.filter(item => item.key === 'test2')
    
    //保证test1 在一堆,test2在一堆
    tableData = one.concat(two)
    
    //列合并方法
    objectSpanMethod =({ row, column, rowIndex, columnIndex })=>{
    	const { key } = row
            // test1 使用 rowIndex作为开始
            // test2 采用rowIndex - test1 长度开始
            let last = rowIndex - one.length
            if (columnIndex === 0) { //判断是否是第一列
              if(key === 'test1'){ //判断合并项 R1 R2
                 if (rowIndex % one.length === 0) {
                  return {
                    rowspan: one.length, // 需要合并的行数
                    colspan: 1
                  }
                }else{ //不在范围内 直接返回默认
                  return {
                    rowspan: 0,
                    colspan: 0
                  }
                }
              }else if(key === 'test2'){
                if(last % two.length === 0){
                  return {
                    rowspan: two.length, // 需要合并的行数
                    colspan: 1
                  }
               }else{
                return {
                  rowspan: 0,
                  colspan: 0
                }
               }
              }  
            }
    }
    

    我们根据 key 进行列合并,按照合并规则 id 为0 1 3 5的数据合并到 test1 中,id为2 4的数据合并到test2中

    在这里插入图片描述

  • 相关阅读:
    dubbo入门小案例
    设计模式浅析(五) ·单例模式
    【K8S系列】深入解析k8s网络插件—Flannel
    P8352-[SDOI/SXOI2022]小N的独立集【dp套dp】
    switch中的PVID、VID、untag、tag概念
    Linux中汇编语言的学习(加法、乘法、除法、左移、右移、按位与等多种命令操作实例以及ARM的 N、Z、C、V 标志位的解释)
    6款红黄黑榜摄像头评测:谁最安全?谁画质好?从此让你不再踩雷
    linux 信号
    CENTOS安装 graylog4.39
    5.4 服务器编程基本框架和两种高效的事件处理模式
  • 原文地址:https://blog.csdn.net/weixin_44180579/article/details/139330003
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号