将行数据中公司名相同的数据进行合并

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) },
    },
]
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐