objectSpanMethod({ row, column, rowIndex, columnIndex }: any) {
if (
columnIndex === 0 ||
columnIndex === 1 ||
columnIndex === 2 ||
columnIndex === 6 ||
columnIndex === 7
) {
//这上面的这个if是你要合并的列
if (rowIndex % 2 === 0) {
return {
rowspan: 2,
colspan: 1,
};
} else {
// 隐藏单元格,否则单元格会错位,必不可少(这个地方加上就不会报错了)
return {
rowspan: 0,
colspan: 0,
};
}
}
}
getSpanArr() {
// 遍历数据
for (let i = 0; i < this.tableData.length; i++) {
// 如果是第一个数据,就将列表spanArr添加一个1,表示暂时只有一个名字相同的、且将索引pos赋值为0
if (i === 0) {
this.spanArr.push(1);
this.pos = 0;
} else {
// 判断当前元素与上一个元素是否相同
if (this.tableData[i].name === this.tableData[i - 1].name) {
// 如果相同就将索引为 pos 的值加一
this.spanArr[this.pos] += 1;
// 且将数组添加 0
this.spanArr.push(0);
} else {
// 如果元素不同了,就可以通过索引为 pos 的值知晓应该需要合并的行数
// 同时,我们再次添加一个值1,表示重新开始判断重复姓名的次数
this.spanArr.push(1);
// 同时 索引加一
this.pos = i;
}
}
}
}
el-table动态合并表格出现错乱问题记录
最新推荐文章于 2024-06-21 11:27:06 发布