通用行合并函数(将多行相同字段的数据合并为一行

68 阅读1分钟

通用行合并函数

const list = [ { id: '10000', parentId: null, name: '账号管理' }, { id: '11000', parentId: '10000', name: '用户管理' }, { id: '11100', parentId: '11000', name: '查看' }, { id: '11110', parentId: '11100', name: '用户列表' }, { id: '11200', parentId: '11000', name: '编辑' }]

rowspanMethod ({ row, _rowIndex, column, visibleData }) { 
    const fields = ['name1', 'name2', 'name3'] 
    const cellValue = row[column.field] 
    if (cellValue && fields.includes(column.field)) { 
        const prevRow = visibleData[_rowIndex - 1] 
        let nextRow = visibleData[_rowIndex + 1] 
        if (prevRow && prevRow[column.field] === cellValue) {
            return { rowspan: 0, colspan: 0 } 
        } else { 
            let countRowspan = 1 
            while (nextRow && nextRow[column.field] === cellValue) {
                nextRow = visibleData[++countRowspan + _rowIndex] 
            } 
            if (countRowspan > 1) {
                return { rowspan: countRowspan, colspan: 1 } 
            }
        } 
    }
}