elementui表格table根据数据动态计算合并行

先上效果图,可根据需求自行修改代码

代码如下 先添加合并行或列的计算方法

在data中建立indexArr和indexPos

 以下为合并行或列的计算方法

//indexArr来存放要合并的格数,同时还要没定一个变量indexPos来记录
   this.indexArr = []
for (var i = 0; i < v.length; i++)
    if (i === 0) {
    //给当前数组添加一个1现在数组为[1]代表第一个各自占一行
    this.indexArr.push(1)
    //当前索引为0
    this.indexPos = 0
    }else {
        //判断当前元素与上一个元素是否相同
        if (v[i].system === v[i - 1].system) {
            //给当前素引下合并的格子数量 自增1 例如 现在是[1]增加用后变为[2]代表现在合并的格子数量为2
            this.indexArr[this.indexPos] += 1
            //给数组添加一个0因为有格子合并了他的位置当前被合并的格子需要隐藏, 所以当前被合并的格子占0行是隐藏状态,数组为[2,0]
            this.indexArr.push(0)
        else {
            //当两行的数据不相同时 则给新的数据 合并的格子数量为1
            this.indexArr.push(1)
            //将当前索引 赋值为 便于this.indexArr[this.indexPos]修改相对应索引的合并的格子数量
            this.indexPos = i
        }
    }
}

 以下为合并行或列的计算方法后的返回值

objectSpanMethod({ row, column, rowindex, columnindex}){
    if (columnIndex === 0) {
        //当前行占几个合并的格子数量
        const _row = this.firstlevelindexArr[rowIndex]
        //判断当前行合并的格子数量是否大于0 用于单元格的展示与隐藏
        // const _col = _row > 0 ? 1 : 0
        return {
            rowspan: _row,
            colspan:1,//不可赋值为0 可为了方便直接赋值为1
        }
    }
}
    
在created的生命周期里先调用上面的计算方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值