element 表格两级单元格合并功能

2023-10-28

在这里插入图片描述

代码如下

<template>
  <div class="GlobalSituation">
    <el-table class="control-table master-table" :data="tableList.tableData" style="width: 100%;" border :span-method="spanMethod" :row-class-name="tableRowClassName">
      <el-table-column label="序号" width="50" align="center">
        <template slot-scope="scope">
          <div class="table-index">{{ (scope.row.group) + 1 }}</div>
        </template>
      </el-table-column>
      <el-table-column v-for="(val,index) in tableList.tableHeader" :key="index" :prop="val.displayName" :label="val.name" align="center">
      </el-table-column>
    </el-table>
  </div>
</template>
<script>
export default {
  name: 'GlobalSituation',
  components: {},
  directives: {},
  filters: {},
  mixins: [],
  // props: ['tableList'],
  data() {
    return {
      tableList: {
        tableHeader: [{ name: '阶段', displayName: 'stage' }, { name: '名字', displayName: 'plotcode' }, { name: '代码', displayName: 'landCode' }, { name: '性质', displayName: 'landUse' }, { name: '面积(m2)', displayName: 'area' }, { name: '概率', displayName: 'volumeRate' }, { name: '密度(%)', displayName: 'buildingDensity' }, { name: '成功率(%)', displayName: 'greenRate' }, { name: '高度(m)', displayName: 'buildingHeight' }],
        tableData: [
          {
            id: 1,
            stage: '调整前',
            plotcode: 'A01-01',
            landCode: 'R2',
            landUse: '王小虎',
            area: 76017.86,
            volumeRate: 2.5,
            buildingDensity: 35,
            greenRate: 35,
            buildingHeight: 80
          },
          {
            id: 1,
            stage: '调整前',
            plotcode: 'A01-01',
            landCode: 'R2',
            landUse: '王小虎',
            area: 76017.86,
            volumeRate: 2.5,
            buildingDensity: 35,
            greenRate: 35,
            buildingHeight: 80
          },
          {
            id: 1,
            stage: '调整后',
            plotcode: 'A02-04',
            landCode: 'R2',
            landUse: '王小虎',
            area: 76017.86,
            volumeRate: 2.5,
            buildingDensity: 35,
            greenRate: 35,
            buildingHeight: 80
          }, {
            id: 2,
            stage: '调整前',
            plotcode: 'A01-03',
            landCode: 'G2',
            landUse: '王小虎',
            area: 76017.86,
            volumeRate: 2.5,
            buildingDensity: 35,
            greenRate: 35,
            buildingHeight: 80
          }, {
            id: 2,
            stage: '调整前',
            plotcode: 'A03-03',
            landCode: 'G2',
            landUse: '王小虎',
            area: 76017.86,
            volumeRate: 2.5,
            buildingDensity: 35,
            greenRate: 35,
            buildingHeight: 80
          }, {
            id: 2,
            stage: '调整前',
            plotcode: 'A03-06',
            landCode: 'G1',
            landUse: '王小虎',
            area: 76017.86,
            volumeRate: 2.5,
            buildingDensity: 35,
            greenRate: 35,
            buildingHeight: 80
          }, {
            id: 2,
            stage: '调整后',
            plotcode: 'A02-06',
            landCode: 'G2',
            landUse: '王小虎',
            area: 76017.86,
            volumeRate: 2.5,
            buildingDensity: 35,
            greenRate: 35,
            buildingHeight: 80
          }, {
            id: 2,
            stage: '调整后',
            plotcode: 'A02-06',
            landCode: 'G2',
            landUse: '王小虎',
            area: 76017.86,
            volumeRate: 2.5,
            buildingDensity: 35,
            greenRate: 35,
            buildingHeight: 80
          },
          {
            id: 2,
            stage: '调整后',
            plotcode: 'A0222-06',
            landCode: 'G2',
            landUse: '王小虎',
            area: 76017.86,
            volumeRate: 2.5,
            buildingDensity: 35,
            greenRate: 35,
            buildingHeight: 80
          }
        ]
      },
      spanArr: [],
      position: 0,
      needSpan: ['stage', 'id'], // 需要合并的属性
      spanArrObj: {
        stage: [],
        id: []
      }
    }
  },
  created() {
    this.getSpanArr()
  },
  watch: {
  },
  mounted() {
  },
  methods: {
    // 表格行样式
    tableRowClassName({ row, rowIndex }) {
      if (row.stage === '调整前') {
        return 'highlight-row'
      } else {
        return ''
      }
    },
    getSpanArr() {
      this.needSpan.forEach(item => {
        this.rowspan(item)
      })
    },
    // 获取合并行参数(数组)
    rowspan(prop) {
      this.tableList.tableData.forEach((item, index) => {
        if (index === 0) {
          this.spanArrObj[prop].push(1)
          this.position = 0
        } else {
          if (this.tableList.tableData[index][prop] === this.tableList.tableData[index - 1][prop]) {
            this.spanArrObj[prop][this.position] += 1
            this.spanArrObj[prop].push(0)
          } else {
            this.spanArrObj[prop].push(1)
            this.position = index
          }
        }

        // 获取表格的序号
        if (index === 0) {
          item.group = index //先设置组号赋值为0 也就是序号
        } else {
          // stage字段相同进行合并
          if (item.id === this.tableList.tableData[index - 1].id) {
            item.group = this.tableList.tableData[index - 1].group //如果一样 将组号改为和上一个数据相同
          } else {
            item.group = this.tableList.tableData[index - 1].group + 1 //如果不一样 将组号设置为上一个数据的组号加1
          }
        }
      })
      console.log(this.spanArrObj)
    },


    // 合并行方法
    spanMethod({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0) {
        const _row = this.spanArrObj['id'][rowIndex]
        const _col = _row > 0 ? 1 : 0
        return {
          rowspan: _row,
          colspan: _col
        }
      }
      if (columnIndex === 1) {
        const _row = this.spanArrObj['stage'][rowIndex]
        const _col = _row > 0 ? 1 : 0
        return {
          rowspan: _row,
          colspan: _col
        }
      }
    }
  }

}
</script>

<style lang="scss" scoped>
.GlobalSituation {
  /deep/.el-table .success-row {
    background: #f5f7fa;
  }
  /deep/.el-table--border td:first-child .cell,
  /deep/.el-table--border th:first-child .cell {
    padding-left: 10px;
  }
  .el-table /deep/ .highlight-row {
    background-color: #f1fafd;
  }
}
</style>


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

element 表格两级单元格合并功能 的相关文章

  • ajax三种错误ie,ie下jquery ajax 80020101错误的解决方法

    注意注释 删除这些注释就可以了 Windows下一个MySQL有些错误的解决方法 1 无论是什么提示 我们有一个直接看错误日志 由于它描述了最具体描述错误日志 于MySQL安装文件夹中找到 my ini简介 看日志保存路径 2 我的错误是
  • Linux——信号及其使用

    信号的基本概念 信号是系统响应某个条件而产生的事件 进程接受到信号会执行相应的操作 软中断信号 用来通知进程发生了异步事件 信号是进程间通信机制中唯一的异步通信机制 一个进程不必通过任何操作来等待信号的到达 系统预先定义好的某些特定事件 信
  • 异构网络的理解

    异构网络 Heterogeneous Network 是一种类型的网络 其是由不同制造商生产的计算机 网络设备 和系统组成的 大部分情况下运行在不同的协议上支持不同的功能或应用 图1 给出了一种异构网络模型 不同类型的网络 通过网关连接到核

随机推荐

  • python 按自己的理解尝试实现fn算法

    贪心算法FN具体步骤如下所述 1 去掉网络中所有的边 网络的每个节点都单独作为一个社区 2 网络中的每个连通部分作为一个社区 将还未加入网络的边分别重新加回网络 如果加入网络的边连接了两个不同的社区 即合并了两个社区 则计算形成的新的社区划
  • 【计算机组成原理笔记】1.2计算机的基本组成

    1 2计算机的基本组成 冯 诺依曼计算机 冯诺依曼计算机的六个特点 冯 诺依曼计算机硬件框图 各部分功能 缺点 计算机硬件框图 以存储器为中心的计算机硬件框图 现代计算机硬件框图 系统复杂性管理方法 计算机的工作步骤 指令格式举例 存储器的
  • Java 核心机制

    Java 核心机制 Java 虚拟机 Java Virtual Machine 简称 JVM 垃圾收集机制 Garbage collection 简称 GC 垃圾收集的目的在移除不再使用的对象 当对象建立的时候垃圾收集期 就开始监控对象的动
  • 图片相相似度计算(Hash、SSIM、compareHist)

    哈希相似度算法 Hash algorithm 用一个快速算法 就达到基本的效果 哈希算法 Hash algorithm 它的作用是对每张图片生成一个固定位数的Hash 值 指纹 fingerprint 字符串 然后比较不同图片的指纹 结果越
  • SDH概述

    1 SDH概述 1 1 SDH产生的技术背景 为什么会产生SDH传输体制 在讲SDH传输体制之前 我们首先要搞清楚SDH到底是什么 那么SDH是什么呢 SDH全称叫做同步数字传输体制 由此可见SDH是一种传输的体制 协议 就像PDH 准同步
  • 基于视频图像的火灾检测算法

    要求 视频帧满足R x y gt gt R x y gt 190 gt 100 140 Y x y Cr x y x y Cb x y Y x y gt 通道均值 Cr x y gt 通道均值 Cb x y lt 通道均值条件且满足利用帧差
  • Java IO流分析整理

    Java中的流 可以从不同的角度进行分类 按照数据流的方向不同可以分为 输入流和输出流 按照处理数据单位不同可以分为 字节流和字符流 按照实现功能不同可以分为 节点流和处理流 输出流 输入流 因此输入和输出都是从程序的角度来说的 字节流 一
  • centos8 stream 屏幕共享 远程桌面 vnc 出错

    在连接vnc之前 干脆直接把防火墙禁用掉 免得出现别的麻烦 systemctl stop firewalld systemctl disable firewalld 然后直接去设置开启屏幕共享 然后用vnc客户端连接 会出现以下错误 Una
  • Redis实现分布式锁的7种方案,及正确使用姿势!

    redis学习笔记 7种方案前言 日常开发中 秒杀下单 抢红包等等业务场景 都需要用到分布式锁 而Redis非常适合作为分布式锁使用 本文将分七个方案展开 跟大家探讨Redis分布式锁的正确使用方式 如果有不正确的地方 欢迎大家指出哈 一起
  • Sqlserver 把小数点后面多余的0去掉

    select convert float 0 05000 结果 0 05 保留有效小数 convert decimal 18 4 0 00900 结果 0 0090 保留有效小数后转换数据类型 convert nvarchar 20 con
  • Python实现房产数据分析与可视化 数据分析 实战

    Python库的选择 话说 工欲善其事 必先利其器 虽然我们已经选择Python来完成剩余的工作 但是我们需要考虑具体选择使用Pytho的哪些利器来帮助我们更快更好地完成剩余的工作 我们可以看一下 在这个任务中 主要涉及到四类工作要完成 c
  • python三个变量互换值_Python中有几种办法交换两个变量的值?

    交换两个变量的值方法 这个面试题如果只写一种当然很简单 没什么可以说的 今天这个面试是问大家有几种办法来实现交换两个变量的值 在没开始看具体答案前 你可以先想想看 下面分别来说说这几种方法 1 方法一 通过新添加中间变量temp的方式 这个
  • Angular脚手架系列:四、使用Angular CLI进行Build (构建) 和 部署

    目录 一 Build 二 ng build 三 Build Targets和Environment 四 Serve 五 部署到nginx 一 Build Build主要会做以下动作 编译项目文件并输出到某个目录 Build targets决
  • ConstrainLayout 基础教程2,近期想跳槽的程序员必看

    特性详解 Visibility behavior 可见性的表现 ConstraintLayout对可见性被标记View GONE的控件 后称 GONE控件 有特殊的处理 一般情况下 GONG控件是不可见的 且不再是布局的一部分 但是在布局计
  • 【服务器】查看服务器文件夹大小

    问题描述 服务器的接口突然访问不到了 报错Networ Error 直接想到了 是不是数据库连不上了导致的 然后看了下服务器的硬盘占用情况 当然了 这里是处理过后的了 发现有问题的那个框框那个Avail为0了 查看文件夹占用 查看某个目录下
  • 旋转数组问题“环状替换”解法最详细的说明

    leecode 旋转数组 问题 环状替换 解法的思路 小白向 思路 假设一数组 a 1 2 3 4 5 6 7 8 9 移动位数k 3 从1开始 要将a 0 右移三位 移到a 3 a 3 右移三位 移到a 6 a 6 移到a 0 回到了a
  • 蓝桥杯2020年第十一届国赛真题-重复字符串

    题目描述 如果一个字符串 S 恰好可以由某个字符串重复 K 次得到 我们就称 S 是 K 次重复字符串 例如 abcabcabc 可以看作是 abc 重复 3 次得到 所以 abcabcabc 是 3 次重复字符串 同理 aaaaaa 既是
  • oracle 中使用 select a into b 时遇到空值问题

    今天一朋友问及我这个问题 当记录不存在 会提示 no data 的错误 下面是网上这类问题的解决方法 转载 当在PL SQL中执行SELECT INTO 语句时 如果返回结果集为空 则回触发NO DATA FOUND错误 但是当 SELEC
  • SSL/TLS原理 详细整理版

    1 SSL TLS握手 简化版 浏览器 服务器 发起 gt 1 浏览器通知服务器浏览器所支持的加密协议 接收 接收 lt 2 服务器通知浏览器从1中选用的加密协议 并给予证书 发起 3 用CA的公钥鉴别服务器的证书是否有效 有效则生成一个随
  • element 表格两级单元格合并功能

    代码如下