elementUI 表格中如何合并动态数据的单元格

elementUI 表格中如何合并动态数据的单元格

ui中提供的案例是固定写法无法满足 实际开发需求

下面进行改造如下 准备数据如下

//在表格中 设置单元格的方法  :span-method="spanMethodFun"
<el-table :data="tableData" border  :span-method="spanMethodFun">
//...
</el-table>

//表格数据  这里的数据是动态获取的
let tableData = ref([{
   no:1,id:1},{
   no:1,id:1},{
   no:1,id:1},{
   no:1,id:2}])
//定义数组 用来临时存储 需要合并的列数 和行数
let spanArr:any = []
//下标 用来设置临时存储数据的
let pos:any = 0
//获取 需要合并数据的 方法
function getSpaArr(){
   
//循环表格数据
	for(let i=0;i<tableData.value.length;i++){
   
		if(i == 0){
   //如何是第一个数据  表示只有一个相同的数据索引设置为0
			spanArr.push(1)
			pos = 0
		}else{
   
			if(tableData.value[i].id == tableData.value[i - 1].id){
    //这里用id判断的 也可以用相同的名字 或者其他都可以判断值
				// 如果数据相同 第一列加1  其他 设置为0
				spanArr[pos] += 1
				spanArr.push(0)
			}else{
   
				// 不相同 重新开始判断
				spanArr.push(1)
				pos = i
			}
		}
	}
}
//调用方法 获取临时合并数据
getSpaArr()
//查看临时合并的数据
console.log(spanArr,'spanArr');// 得到数据如下:[3, 0, 0, 1] 'spanArr'

//这里调用合并单元格事件 row当前行的值,column当前列的值,rowIndex行的下标,columnIndex列的下标
const spanMethodFun = ({
     row, column, rowIndex, columnIndex, }: any) => {
   
	// console.log(row,column,rowIndex,columnIndex);
	//如何临时合并数据存在执行
	if(spanArr.length > 0){
   
	//这里设置第几行需要合并数据
		if (columnIndex == 1 || columnIndex == 6) {
   //第几列数据
			return {
    
				rowspan: spanArr[rowIndex], //需要合并的行数 通过行下表 获取临时存储值
				colspan: spanArr[rowIndex]>0?1:0, //需要合并的列数 0代表不合并 1 合并成一列
			}
		}
	}
}

效果如下 第2行 和最后一行进行了合并 其他没有合并
在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-02-06 22:44:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-06 22:44:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-06 22:44:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-06 22:44:03       20 阅读

热门阅读

  1. elementui上传文件不允许重名

    2024-02-06 22:44:03       30 阅读
  2. C#面:final ,finally,finalize 的区别

    2024-02-06 22:44:03       32 阅读
  3. Z0423 树的染色2

    2024-02-06 22:44:03       33 阅读
  4. 详解MYSQL中的平均值组大小

    2024-02-06 22:44:03       32 阅读
  5. 前端开发:入门(一)

    2024-02-06 22:44:03       27 阅读
  6. 记录 | .ui转.py

    2024-02-06 22:44:03       29 阅读
  7. 23种设计模式之工厂模式

    2024-02-06 22:44:03       33 阅读
  8. 设计模式(结构型模式)桥接模式

    2024-02-06 22:44:03       30 阅读
  9. Vue 插槽的基本用法

    2024-02-06 22:44:03       33 阅读