当前位置: 首页 > news >正文

Vue2 +Element UI 表格行合并

如果相邻数据是一致的,则单元格的行合并,指定需要合并的列,下面我是指定合并了分类和类型这两列。
先看效果
在这里插入图片描述Element UI为我们的<el-table>提供了一个属性span-method:合并行或列的计算方法
下面是一个示例:

html部分 - 主要是在表上指定span-method方法

<template><div><el-table :span-method="objectSpanMethod" :data="tableData" row-key="id" border><el-table-column label="序号" width="55" align="center"><template slot-scope="scope">{{ scope.$index + 1 }}</template></el-table-column><el-table-column prop="name" label="分类" align="center"></el-table-column><el-table-column prop="num" label="数量" align="center"></el-table-column><el-table-column prop="type" label="类型" align="center"></el-table-column></el-table></div>
</template>

data部分 - 表格数据

data() {return {tableData: [{name: '咖啡',num: '2',type: '饮料'},{name: '咖啡',num: '5',type: '饮料',}, {name: '巧克力',num: '2',type: '高热量食品',}, {name: '巧克力',num: '2',type: '高热量食品',}, {name: '巧克力',num: '2',type: '高热量食品',}, {name: '牛奶',num: '2',type: '蛋白质',}]}}

methods部分 - span-method方法,行合并的逻辑

methods: {// table合并列objectSpanMethod({row, column, rowIndex, columnIndex}) {let data = this.tableData; // 拿到当前table中的数据let cellValue = row[column.property]; // 获取当前位置的值let sortArr = ['name', 'type']; // 需要合并的字段(用于合并行的属性)if (cellValue && sortArr.includes(column.property)) {let prevRow = data[rowIndex - 1]; // 获取上一行的数据let nextRow = data[rowIndex + 1]; // 获取下一行的数据if (prevRow && prevRow[column.property] === cellValue) { // 当有上一行的数据,并且与当前值相等时return {rowspan: 0, colspan: 0}; // 返回一个对象,表示不需要合并单元格} else {let countRowspan = 1;while (nextRow && nextRow[column.property] === cellValue) { // 当有下一行的数据并且与当前值相等时,获取新的下一行数据nextRow = data[++countRowspan + rowIndex];}if (countRowspan > 1) {return {rowspan: countRowspan, colspan: 1}; // 返回一个对象,表示需要合并行单元格}}}},}
http://www.lryc.cn/news/192739.html

相关文章:

  • SuperEdge易学易用系列-一键搭建SuperEdge集群
  • 农场养殖农产品商城小程序搭建
  • 大语言模型之十七-QA-LoRA
  • UML组件图综合指南:设计清晰、可维护的软件系统
  • 深入浅出ThreadPoolExecutor(一)
  • 网站的常见攻击与防护方法
  • 网络工程师知识点3
  • mongoDB 性能优化
  • 10月13日,每日信息差
  • Spring Boot 中的 Redis 数据操作配置和使用
  • rust宏
  • 性能测试之性能测试指标详解
  • CustomNavBar 自定义导航栏视图
  • canal rocketmq
  • 【数据库系统概论】第九章关系查询处理何查询优化
  • bp盐丘模型波场数值模拟matlab
  • 结构体对齐规则
  • css 如何让元素内部文本和外部文本 一块显示省略号
  • SQL语句-中级
  • 巧用h2-database.jar连接数据库
  • 136.只出现一次的数字
  • mysql中遇到查询字段的别名与函数冲突问题
  • 直播获奖
  • 选择适合自身业务的HTTP代理有哪些因素决定?
  • 1.3 do...while实现1+...100 for实现1+...100
  • react数据管理之setState与Props
  • 如何保护我们的网络安全
  • springboot 制造装备物联及生产管理ERP系统
  • Google zxing 生成带logo的二维码图片
  • 使用Python计算平面多边形间最短距离