html table 合并单元格 分页,element table组件合并单元格

合并单元格,如果situation 一致,则合并

5746f898b667c208d31c87e9d6dcec1d.png

getSpanArr(data)方法 data就是我们从后台拿到的数据,通常是一个数组;spanArr是一个空的数组,用于存放每一行记录的合并数;pos是spanArr的索引。如果是第一条记录(索引为0),向数组中加入1,并设置索引位置;如果不是第一条记录,则判断它与前一条记录是否相等,如果相等,则向spanArr中添入元素0,并将前一位元素+1,表示合并行数+1,以此往复,得到所有行的合并数,0 即表示该行不显示

mounted () {

this.getSpanArr(this.tableData)

},

methods: {

getSpanArr(data) {

for (var i = 0; i < data.length; i++) {

if (i === 0) {

this.spanArr.push(1);

this.pos = 0;

} else {

// 判断当前元素与上一个元素是否相同

if (data[i].situation === data[i - 1].situation) {

this.spanArr[this.pos] += 1;

this.spanArr.push(0);

} else {

this.spanArr.push(1);

this.pos = i;

}

}

}

},

objectSpanMethod({ row, column, rowIndex, columnIndex }) {

if (columnIndex === 0) {

const _row = this.spanArr[rowIndex];

const _col = _row > 0 ? 1 : 0;

// alert(_row);

// alert(_col);

console.log('row--', _row)

console.log('col--', _col)

return {

rowspan: _row,

colspan: _col

};

}

}

复制代码

结果

b2be290c852d348fcc5df2b79903c27e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值