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

el-table 合并单元格

参考文章:vue3.0 el-table 动态合并单元格 - flyComeOn - 博客园

<el-table :data="tableData" border empty-text="暂无数据" :header-cell-style="{ background: '#f5f7fa' }" class="parent-table" :span-method="objectSpanMethod">
getAll().then((rsp) => {
			if (rsp.status === HTTPStatus.OK) {
				tableData.value = rsp.data
				const colFields = ['groupNo', 'name', 'description', 'operation']
				setTableRowSpan(tableData.value, colFields)
			}
		})
		.catch(() => {})

// 设置合并的行和列
const setTableRowSpan = (tableData, colFields) => {
	let lastItem = []
	// 循环需要合并的列
	colFields.forEach((field, index) => {
		tableData.forEach((item) => {
			// 存值,把合并字段存入行,为了合并单元格时检索列是否含有该字段
			item.mergeCell = colFields
			// 合并的字段出现的次数
			const rowSpan = `rowspan_${field}`
			// 比较上一次的存值和该轮的合并字段,判断是否合并到上个单元格
			if (colFields.slice(0, index + 1).every((e) => lastItem[e] === item[e])) {
				// 如果是,合并行;
				item[rowSpan] = 0 // 该轮合并字段数量存0
				// 上轮合并字段数量+1
				lastItem[rowSpan] += 1
			} else {
				//初始化进入&& 如果不是,完成一次同类合并,lastItem重新赋值,进入下一次计算
				item[rowSpan] = 1 // 该轮合并字段第一次出现,数量存1
				// 改变比较对象,重新赋值,进行下一次计算
				lastItem = item
			}
		})
	})
}
const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {
	if (row.mergeCell.includes(column.property)) {
		const rowspan = row[`rowspan_${column.property}`]
		if (rowspan) {
			return { rowspan: rowspan, colspan: 1 }
		} else {
			return { rowspan: 0, colspan: 0 }
		}
	}
}


http://www.kler.cn/a/501722.html

相关文章:

  • android framework.jar 在应用中使用
  • 计算机网络(四)——网络层
  • 重塑视频创作的格局!ComfyUI-Mochi本地部署教程
  • 分布式ID—雪花算法
  • 信息安全、网络安全和数据安全的区别和联系
  • 新版AndroidStudio通过系统快捷创建带BottomNavigationView的项目踩坑记录
  • Redis解决热key问题
  • sql server cdc漏扫数据
  • C# 虚方法和抽象方法的区别,重写和重载的区别,参数修饰符(ref、out、in、params)--09
  • C语言程序环境和预处理详解
  • 基于element UI el-dropdown打造表格操作列的“更多⌵”上下文关联菜单
  • Transmon
  • linux网络 | http结尾、理解长连接短链接与cookie
  • 在 WSL 中使用 Jupyter Notebook 的 TensorBoard 启动问题与解决方法
  • GIN模型详解及代码复现
  • 【初体验】【学习】Web Component
  • 晶晨S905L3A/S905L3AB-ADB-ROOT-指示灯-安卓9-当贝桌4.0精简线刷固件包
  • 模拟ic入门——设计一个带隙基准Bandgap(二)性能参数和电路仿真
  • 为AI聊天工具添加一个知识系统 之30 概念整体运营平台:中间架构层的broker service的API模型
  • 0050.ssm+小程序高校订餐系统+论文
  • 计算机网络相关习题整理
  • 前端开发:form中的标签
  • PyCharm 的安装与使用(Window)
  • esp32 mqtt连接阿里云细节配置
  • 服务器的数据上传到阿里云的对象存储(OSS)数据桶
  • Python爬虫基础——selenium模块进阶(显示等待和隐式等待)