将行数据中公司名相同的数据进行合并
1. 代码
// 单元格合并
const getTablecells = (_, index, s) => {
let str = _.companyName
// 取出公司名
var arr = config.tableData.map((item) => {
return item.companyName
})
function duplicates(arr) {
var Arr = []
arr.forEach((elem, index) => {
if (
arr.indexOf(elem) !== arr.lastIndexOf(elem) &&
Arr.indexOf(elem) === -1
) {
Arr.push({
indexs: index,
val: elem,
})
}
})
return Arr
}
// 找到相同公司名项
let sameArr = duplicates(arr)
let arr0 = sameArr.filter((item1) => item1.val == str)
// 如果是index匹配上了,并且是匹配到的第一项那么当前格需要合并.
// 如果是index匹配上了,但不是匹配到的第一项那么当前格需要去除.
// 如果是index没匹配,显示默认的一格
let obj = {
rowSpan:
arr0[0] && index == arr0[0].indexs
? arr0.length
: arr0.filter((item1) => item1.indexs == index).length
? 0
: 1,
}
for(var i = 0;i<9;i++){
return obj
}
return {}
}
// 配置表格列
const columns: TableListItem[] = [
{
title: '序号',
// dataIndex: 'id',
valueType: 'indexBorder',
hideInSearch: true,
width: 40,
onCell: (_, index, s) => { return getTablecells(_, index, s) },
},
{
title: '公司名称',
width: 120,
dataIndex: 'companyName',
onCell: (_, index, s) => { return getTablecells(_, index, s) },
}, {
title: '印章数量',
width: 80,
dataIndex: 'sealNumber',
hideInSearch: true,
onCell: (_, index, s) => { return getTablecells(_, index, s) },
},
]