首页 > 其他分享 >解决element ui中table列合并

解决element ui中table列合并

时间:2024-12-24 15:43:23浏览次数:3  
标签:元素 spanArr 单元格 合并 pos element hzks ui table

1.创建一个空的数组存储处理的数据

spanArr: [], // 合并单元格

2.创建处理方法

//合并单元格
getSpanArr(data) {
    let pos = 0;
    for (let i = 0; i < data.length; i++) {
        if (i === 0) {
            this.spanArr.push(1);
            pos = 0;
        } else {
            if (data[i].hzks === data[i - 1].hzks) {
                this.spanArr[pos] += 1;
                this.spanArr.push(0);
            } else {
                this.spanArr.push(1);
                pos = i;
            }
        }
    }
    return this.spanArr;
},
handleHbhzks({row, column, rowIndex, columnIndex}) {
    if (columnIndex === 0) {
        const _row = this.spanArr[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
            rowspan: _row,
            colspan: _col
        }
    }
}

在getSpanArr中

初始化一个变量 pos 为 0,用于记录当前合并单元格的起始位置。
遍历 data 数组中的每个元素。(data就是需要处理的值)
如果当前元素是第一个元素,则将合并单元格的数量设为 1,并将 pos 设为 0。
如果当前元素不是第一个元素,并且 hzks 属性与上一个元素的 hzks 属性相同,则将合并单元格的数量加 1,并将 0 添加到 spanArr 数组中,表示当前单元格需要合并。(hzks就是需要合并的列的prop)
如果当前元素不是第一个元素,并且 hzks 属性与上一个元素的 hzks 属性不同,则将合并单元格的数量设为 1,并将 pos 设为当前元素的索引。
返回 spanArr 数组,其中每个元素表示对应单元格的合并数量。
handleHbhzks 方法:根据 spanArr 数组中的值来设置单元格的合并属性。

如果当前列的索引等于 0(即第一列),则根据 spanArr 数组中的值来设置合并属性。
rowspan:表示当前单元格的行合并数量。
colspan:表示当前单元格的列合并数量。
如果想要排除合并可以想如下方法进行替换。

if (row.hzks === '合计') {
    return {
        rowspan: 1,
        colspan: 1,
    }
}

如果当前行的 hzks 属性等于 '合计',则返回 { rowspan: 1, colspan: 1 },表示该单元格不合并。

handleHbhzks 方法需要使用 :span-method,使用span-method属性可以实现表格的动态行或列合并。

    <el-table
      :data="tableData"
      :span-method="handleHbhzks"
      border
      style="width: 100%"
    >
      <el-table-column prop="id" label="ID" width="180" />
      <el-table-column prop="name" label="Name" />
      <el-table-column prop="amount1" sortable label="Amount 1" />
      <el-table-column prop="amount2" sortable label="Amount 2" />
      <el-table-column prop="amount3" sortable label="Amount 3" />
    </el-table>

注:在执行完一次合并需要再次执行时需要清空数组数据,避免数据多次处理导致格式错乱。


原文链接:https://blog.csdn.net/2301_80754757/article/details/143405072

标签:元素,spanArr,单元格,合并,pos,element,hzks,ui,table
From: https://www.cnblogs.com/liuswi/p/18627822

相关文章