antd 单元格合并处理
实现效果
代码
tableData为Table的数据
const mergeCells = (text, dataSource, index, key) => {
// 上一行该列数据是否一样
if (index !== 0 && text === dataSource[index - 1][key]) {
return 0
}
let rowSpan = 1
// 判断下一行是否相等
for (let i = index + 1; i < dataSource.length; i++) {
if (text !== dataSource[i][key]) {
break
}
rowSpan++
}
return rowSpan
}
const columns = [
{
title: () => (
<div className={s.tableTitle}>
编制时间:{reportData.time}
</div>
),
dataIndex: 'ybb',
key: 'ybb',
children: [
{
title: '所属污水处理厂',
dataIndex: 'plant',
key: 'plant',
align: 'center',
render: (value, row, index) => {
const obj = {
children: value || '',
props: {}
}
obj.props.rowSpan = mergeCells(value, tableData, index, 'plant')
return obj
}
},
{
title: '所属泵站',
dataIndex: 'pump',
key: 'pump',
align: 'center',
render: (value, row, index) => {
const obj = {
children: value || '',
props: {}
}
obj.props.rowSpan = mergeCells(value, tableData, index, 'pump')
return obj
}
},
{
title: '道路编码',
dataIndex: 'road',
key: 'road',
align: 'center',
},
]
}
]
THE END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!