From 926e80c10306e328cd4bc4d2a482a887c50c9fe0 Mon Sep 17 00:00:00 2001 From: LiuJiaNan <15703339975@163.com> Date: Tue, 4 Nov 2025 15:31:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96BasicLeftTree?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/LeftTree/Basic/index.js | 34 +++++++----------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/components/LeftTree/Basic/index.js b/components/LeftTree/Basic/index.js index 42280b6..935a584 100644 --- a/components/LeftTree/Basic/index.js +++ b/components/LeftTree/Basic/index.js @@ -1,5 +1,6 @@ import { Input, Tree } from "antd"; import { useEffect, useState } from "react"; +import { getTreeNodePaths } from "../../../utils"; const { Search } = Input; @@ -71,35 +72,16 @@ const BasicLeftTree = (props) => { setAutoExpandParent(false); }; - const getNodePaths = (data, targetId, idKey, childrenKey, path = [], isIncludeOneself) => { - for (let i = 0; i < data.length; i++) { - const node = data[i]; - const newPath = [...path, node]; - - // 找到目标节点,根据isIncludeOneself决定是否包含自身 - if (node[idKey] === targetId) { - if (isIncludeOneself) - return newPath; // 包含自身 - else - return path; // 不包含自身,只返回父节点路径 - } - - // 递归查找子节点 - if (node[childrenKey] && node[childrenKey].length > 0) { - const result = getNodePaths(node[childrenKey], targetId, idKey, childrenKey, newPath, isIncludeOneself); - if (result) { - return result; - } - } - } - - return null; - }; - const handleSelect = (selectedKeys, event) => { if (selectedKeys.length > 0) { const selectedNodeId = selectedKeys[0]; - const parentNodes = getNodePaths(treeData, selectedNodeId, idKey, childrenKey, onGetNodePathsIsIncludeOneself); + const parentNodes = getTreeNodePaths({ + data: treeData, + targetId: selectedNodeId, + idKey, + childrenKey, + isIncludeOneself: onGetNodePathsIsIncludeOneself, + }); onGetNodePaths?.(parentNodes); } onSelect?.(selectedKeys, event);