vxe-table 多列合并 官方网站的是不管你第一列合第二列有没有联系,他是竖向合并,只要相同就合并。
本文改成 会在第一列的基础上,在合并第二列。
代码比较繁琐,有好的推荐联系我。
mergeRowMethod ({ row, _rowIndex, column, visibleData }) {
const fields = ['year', 'ji']
const cellValue = row[column.property]
if (cellValue && fields.includes(column.property)) {
const prevRow = visibleData[_rowIndex - 1]
let nextRow = visibleData[_rowIndex + 1]
if (column.property == 'year') {
if (prevRow && prevRow[column.property] === cellValue) {
return { rowspan: 0, colspan: 0 }
} else {
let countRowspan = 1
while (nextRow && nextRow[column.property] === cellValue) {
nextRow = visibleData[++countRowspan + _rowIndex]
}
if (countRowspan > 1) {
return { rowspan: countRowspan, colspan: 1 }
}
}
} else if (column.property == 'ji') {
if (prevRow && prevRow[column.property] === cellValue && prevRow.year == row.year) {
return { rowspan: 0, colspan: 0 }
} else {
let countRowspan = 1
while (nextRow && nextRow[column.property] === cellValue && nextRow.year == row.year) {
nextRow = visibleData[++countRowspan + _rowIndex]
}
if (countRowspan > 1) {
return { rowspan: countRowspan, colspan: 1 }
}
}
}
}
},
展示效果