arraySpanMethod({ row, column, rowIndex, columnIndex }) {
//row:当前行()
//column:当前列、
//rowIndex:当前行号、
//columnIndex:当前列号
if (rowIndex==this.tableData.length -1 && Math.ceil(this.page.total/10) == this.page.p){
if(columnIndex == 1){//代表如何处理第二列 (索引从0开始)
return {
rowspan: 0,
colspan: 0
}
}else if (columnIndex === 2) { //代表如何处理第三列
return {
rowspan: 0,
colspan: 0
}
}else if (columnIndex === 3) { //代表如何处理第四列
return {
rowspan: 1,
colspan: 3
}
}
}
},
//优化后
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
//是否是最后一行
const isLastRow = rowIndex === this.tableData.length - 1;
//判断是否是当前页this.page.p是否是最后一页
const isLastPage = Math.ceil(this.page.total / 10) === this.page.p;
//如果是最后一页的最后一行
if (isLastRow && isLastPage) {
// 定义需要隐藏的列是第1列、第2列
const hiddenColumns = [1, 2];
//如果当前列表的索引号在需要隐藏的列时(hiddenColumns为1,2列),就隐藏
if (hiddenColumns.includes(columnIndex)) {
return {
rowspan: 0,
colspan: 0
};
} else if (columnIndex === 3) {
//返回 { rowspan: 1, colspan: 3 } ,表示该单元格占用1行和3列,也就是合并了当前单元格和后面两个单元格。
return {
rowspan: 1,
colspan: 3
};
}
}
}
代码解释:
if (columnIndex == 1)
:如果当前列是第二列(索引从0开始),则返回{ rowspan: 0, colspan: 0 }
,表示该单元格不占用任何行和列,也就是说这个单元格将被隐藏
else if (columnIndex === 2)
:如果当前列是第三列,则返回{ rowspan: 1, colspan: 3 }
,表示该单元格占用1行和3列,也就是合并了当前单元格和后面两个单元格