1、el-table 中加入
:span-method="arraySpanMethod"
2、添加方法:methods中
getRowspan方法将相同name数据单独获取出来,并记录个数,然后按着合并逻辑将合并规则当成对象rowSpan添加到原data中
arraySpanMethod直接在需要合并行里直接使用合并规则即可
getRowspan(data){
const counts = {};
data.forEach(item => {
if (counts[item.name]) {
counts[item.name]++;
} else {
counts[item.name] = 1;
}
});
let names = Object.entries(counts).map(([name, count]) => ({name, count }));
data.forEach((item,index) =>{
names.forEach(res =>{
if(item.name=== res.name){
if(index != 0 && item.declareName === data[index - 1].name){
item.rowSpan = [0,0]
}else{
item.rowSpan = [res.count,1]
}
}
})
})
return data;
},
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 2) {
return row.rowSpan
}
},