react antd Table动态合并单元格
1、实现效果图

2、实现方法
const mergeCells = (text :any, data:any, key:any, index:any)=> {
if (index !== 0 && text === data[index - 1][key]) {
return 0
}
let rowSpan = 1
for (let i = index + 1; i < data.length; i++) {
if (text !== data[i][key]) {
break
}
rowSpan++
}
return rowSpan
}
3、方法在渲染时的应用
const columns = [
{
title: '报警ID',
dataIndex: 'alarmId',
key: 'alarmId',
width: 120,
ellipsis: true,
sorter: (a: any, b: any) => a.alarmId - b.alarmId,
render: (value:any, record:any, index:any) => {
const obj = {
children: value !== null ? value : '',
props: {
rowSpan: 1
}
}
obj.props.rowSpan = mergeCells(value, coilAlarmMsgs, 'alarmId', index)
return obj
}
},
]