function getSpan(list) {
function _getSpan(list, keyName) {
return list.reduce(
(root, line) => {
line._rowSpan = line._rowSpan || {}
line._rowSpan[keyName] = 1
if (!root.last) {
// first line
line.children = [line]
root.last = line
root.result.push(line)
} else if (root.last[keyName] !== line[keyName]) {
// root.last.children[0]._rowSpan[keyName] = root.last.children.length
line.children = [line]
root.last = line
root.result.push(line)
} else {
root.last.children.push(line)
line._rowSpan[keyName] = 0
root.last.children[0]._rowSpan[keyName]++
}
return root
},
{ result: [], last: null }
).result
}
const treeData = _getSpan(list, 'one').map(bu => {
return {
...bu,
children: _getSpan(bu.children, 'two'),
}
})
return treeData.reduce((listData, { children }) => {
const getChildren = arr => arr.map(({children, ...row}) => row)
const childrens = children.reduce((listData, { children }) => [...listData, ...getChildren(children)], [])
return [...listData, ...childrens]
}, [])
}
function arraySpanMethod({ row, column, rowIndex, columnIndex }) {
const colName = ['one', 'two']
if (columnIndex === 0 || columnIndex === 1) {
return {
rowspan: row._rowSpan[colName[columnIndex]],
colspan: 1,
}
}
}
接口返回数据
const vc = {
code: 1,
data: [
{
baogaojiage: "6420810.46",
changpin: "123",
shuliang: "2791800",
jiageone: "8065860",
two: "第二行",
one: "第一行",
jiagetwo: "5774890.35",
id: null,
jiagethree: "3629010.46",
jiagefour: "56.52",
},
{
baogaojiage: "6420810.46",
changpin: "杨幂",
shuliang: "2791800",
jiageone: "8065860",
two: "第二行",
one: "第一行",
jiagetwo: "5774890.35",
id: null,
jiagethree: "3629010.46",
jiagefour: "56.52",
},
{
baogaojiage: "4833602.42",
changpin: "刘诗诗",
shuliang: "910800",
jiageone: "6072000",
two: "第二行",
one: "第一行",
jiagetwo: "4277524.27",
id: null,
jiagethree: "3922802.42",
jiagefour: "81.16",
},
{
baogaojiage: "0",
changpin: "what",
shuliang: "0",
jiageone: "0",
two: "第二行",
one: "第一行",
jiagetwo: "0.00",
id: null,
jiagethree: "0",
jiagefour: "0",
},
{
baogaojiage: "1587208.04",
changpin: "why",
shuliang: "1881000",
jiageone: "1993860",
two: "第二行",
one: "第一行",
jiagetwo: "1497366.08",
id: null,
jiagethree: "-293791.96",
jiagefour: "-18.51",
},
{
baogaojiage: "0",
changpin: "oo",
shuliang: "0",
jiageone: "0",
two: "第二行",
one: "第一行",
jiagetwo: "0.00",
id: null,
jiagethree: "0",
jiagefour: "0",
},
// -----2222222222222222222222222222222
{
baogaojiage: "291461.16",
changpin: "bb",
shuliang: "238000",
jiageone: "366135.23",
two: "第二行",
one: "蔡依林",
jiagetwo: "268235.66",
id: null,
jiagethree: "53461.16",
jiagefour: "18.34",
},
{
baogaojiage: "291461.16",
changpin: "杨幂",
shuliang: "238000",
jiageone: "366135.23",
two: "第二行",
one: "蔡依林",
jiagetwo: "268235.66",
id: null,
jiagethree: "53461.16",
jiagefour: "18.34",
},
{
baogaojiage: "0",
changpin: "刘诗诗",
shuliang: "0",
jiageone: "0",
two: "第二行",
one: "蔡依林",
jiagetwo: "0.00",
id: null,
jiagethree: "0",
jiagefour: "0",
},
{
baogaojiage: "291461.16",
changpin: "what",
shuliang: "238000",
jiageone: "366135.23",
two: "第二行",
one: "蔡依林",
jiagetwo: "268235.66",
id: null,
jiagethree: "53461.16",
jiagefour: "18.34",
},
{
baogaojiage: "0",
changpin: "why",
shuliang: "0",
jiageone: "0",
two: "第二行",
one: "蔡依林",
jiagetwo: "0.00",
id: null,
jiagethree: "0",
jiagefour: "0",
},
{
baogaojiage: "0",
changpin: "oo",
shuliang: "0",
jiageone: "0",
two: "第二行",
one: "蔡依林",
jiagetwo: "0.00",
id: null,
jiagethree: "0",
jiagefour: "0",
},
// -----------------------33333333333333333333
{
baogaojiage: "526615.9",
changpin: "bb",
shuliang: "430000",
jiageone: "661538",
two: "林俊杰",
one: "蔡依林",
jiagetwo: "466031.77",
id: null,
jiagethree: "96615.9",
jiagefour: "18.35",
},
{
baogaojiage: "819821.43",
changpin: "周董",
shuliang: "253065.63",
jiageone: "1029864.5",
two: "林俊杰",
one: "蔡依林",
jiagetwo: "739928.02",
id: null,
jiagethree: "566755.80",
jiagefour: "69.13",
},
{
baogaojiage: "11610712.72",
changpin: "晴天",
shuliang: "9726210",
jiageone: "14585445.80",
two: "林俊杰",
one: "蔡依林",
jiagetwo: "10953502.58",
id: null,
jiagethree: "1884502.72",
jiagefour: "16.23",
},
{
baogaojiage: "12957150.05",
changpin: "杨幂",
shuliang: "10409275.63",
jiageone: "16276848.30",
two: "林俊杰",
one: "蔡依林",
jiagetwo: "12159462.37",
id: null,
jiagethree: "2547874.42",
jiagefour: "19.66",
},
{
baogaojiage: "670819.58",
changpin: "刘诗诗",
shuliang: "93965.63",
jiageone: "842687.5",
two: "林俊杰",
one: "蔡依林",
jiagetwo: "593645.63",
id: null,
jiagethree: "576853.95",
jiagefour: "85.99",
},
{
baogaojiage: "8490142.08",
changpin: "what",
shuliang: "6932500",
jiageone: "10665366.50",
two: "林俊杰",
one: "蔡依林",
jiagetwo: "7978792.32",
id: null,
jiagethree: "1557642.08",
jiagefour: "18.35",
},
{
baogaojiage: "3796188.39",
changpin: "why",
shuliang: "3382810",
jiageone: "4768794.30",
two: "林俊杰",
one: "蔡依林",
jiagetwo: "3587024.42",
id: null,
jiagethree: "413378.39",
jiagefour: "10.89",
},
{
baogaojiage: "0",
changpin: "oo",
shuliang: "0",
jiageone: "0",
two: "林俊杰",
one: "蔡依林",
jiagetwo: "0.00",
id: null,
jiagethree: "0",
jiagefour: "0",
},
],
};