antd动态合并单元格
antd的表格文档中,介绍的合并单元格,介绍的很少,因此动态合并单元格是很麻烦的。
antd合并单元格的方法
在antd表格中,她是将你想合并的单元格的第一个单元格的rowSpan
设置你需要单元格的大小,然后这个单元格下面的格子的rowSpan
设置成0的方式实现的.
动态合并
动态合并的话是跟后台数据对接的,想要合并的数据一定要后台做好排序才行,这样方便我们排序。循环遍历我们的数组,定义一个全局对象temp
来放当前重复的值,为了实现多列的需求,需要存放多列的重复值,在避免多个全局变量的前提下,通过temp[col1]、temp[col2]存放不同列的重复值。
const mergeCells = (text, row, col) => {
let i = 0
if (text !== temp[col]) {
temp[col] = text
row.forEach(item => {
if (item[col] === temp[col]) {
i += 1
}
})
}
return i
}
//数据
{
title: 'Name',
dataIndex: 'name',
customRender: (text, row, index) => {
const obj = {
children: text,
attrs: {}
}
obj.attrs.rowSpan = mergeCells(row.name, data, 'name')
return obj
}
},