vue2 合并单元格数据处理

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",
    },
  ],
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值