<el-table :data="tableData" :span-method="(...arg)=>mergeSpan(...arg,tableData)" :size="small">
</el-table>
//合并行的数据
function getSpanArr(data:any,spanKey:any) {
let spanArr = []
let pos = 0
for (let i = 0; i < data.length; i++) {
if (i === 0) {
spanArr.push(1)
pos = 0
} else {
// 判断当前元素与上一个元素是否相同
if (data[i][spanKey] === data[i - 1][spanKey]) {
spanArr[pos] += 1
spanArr.push(0)
} else {
spanArr.push(1)
pos = i
}
}
}
return spanArr
}
function mergeSpan({row, column, rowIndex, columnIndex} : any ,data:any){
if(columnIndex > 0){ //判断哪一列需要进行合并操作
let spanArr = getSpanArr(data, column.property)
const _row = spanArr[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
}
el-table span-method 合并相同数据
于 2024-02-29 16:01:32 首次发布