react 树形表格合并,基于hooks

react 树形表格合并,基于hooks

import React from ‘react’;
import { Checkbox, Row, Col } from ‘antd’;
import PropTypes from ‘prop-types’;

import Table from ‘components/table-antd’;

import ‘./homeStyle.less’;

// 编码Data, 转成表格格式
const encodeData = (data, i = 0, addData = {}) => {
const ret = []
data.forEach(item => {
const next = { [i]: item.name, …addData }
if (item.children) {
ret.push(…encodeData(item.children, i + 1, next))
} else {
ret.push(next)
}
})
return ret
}

// 获取最深的深度以确定列数
const getMaxDepth = data => {
let max = 1
data.forEach(item => {
if (item.children) {
const childDepth = getMaxDepth(item.children)
if (max < 1 + childDepth)
max = 1 + childDepth
}
})
return max
}

// 生成一个子节点map, 用于判断所有
const getChildrenMap = data => {
let ret = {}
data.forEach(item => {
if(item.children){
ret[item.name] = []
const childrenMap = getChildrenMap(item.children)
item.children.forEach(subItem => {
if(childrenMap[subItem.name]){
ret[item.name].push(…childrenMap[subItem.n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值