# tree-wrapper LLMs.txt > 供 LLM 快速理解 `@flatbiz/antd/tree-wrapper` 的使用方式。 ## 模块定位 Tree包装组件,默认返回父节点,可配置不返回 ## 导入方式 ```ts import { TreeWrapper } from '@flatbiz/antd/tree-wrapper'; // 也可以从主入口导入:import { ... } from '@flatbiz/antd'; ``` ## 公开导出 - `getTreeDataList` - `TreeWrapper` - Tree包装组件,默认返回父节点,可配置不返回 - `treeWrapperModel` - - `ModelState` - `TreeServiceConfig` - `TreeLoadDataServiceConfig` - `TreeWrapperMenuItem` - `TreeWrapperProps` - `TreeWrapperRefApi` - `getDefaultExpandAllKeys` - `getExpandedKeys` - `getVauleList` - `array2map` - `treeWrapperValueDeepEqual` - value的类型包括 string、number、 Array、{ label: string, value: string | nuber }、 Array<{ label: string, value: string | nuber }> … - `onTreeDrop` - `dragNodeData` - `getActualSelectKeyList` - 由于树节点过滤后,选中了父节点不一定是全部子节点,此处进行筛查 - `removeTargetNodeAndAllChildrenNode` - 移除指定节点以及所有子节点 - `removeAllSelectLeafNode` - 移除父节点全选下的叶子节点 - `removeAllParentNode` - 移除所有的父节点 - `completionParentChildrenNode` - values中的数据可能存在缺少父节点下的子节点情况,此处补齐 ## 依赖的 antd 能力 `Button`、`message`、`Spin`、`Tree` ## Props / 配置要点 ### TreeServiceConfig - `params`(可选):: TPlainObject - `requiredParamsKeys`(可选):: string[] - `onRequest`(可选):: (params?: TAny) => TAny - `onRequestResultAdapter`(可选):: (respData: TAny) => TPlainObject[];响应数据适配器 ### TreeLoadDataServiceConfig - `getParams`(可选):: (dataItem: TPlainObject) => TPlainObject - `onRequest`(必填):: (params: TPlainObject) => TAny - `onRequestResultAdapter`(可选):: (respData: TAny) => TPlainObject[];响应数据适配器 ### TreeWrapperMenuItem - `title`(必填):: string - `onClick`(必填):: (dataItem: TPlainObject, event) => void - `icon`(可选):: ReactElement ### TreeWrapperProps - `modelKey`(可选):: string;设置请求唯一值 - `fieldNames`(可选):: { label?: string; value?: string; children?: string; list?: string; };字段映射 - `effectDependencyList`(可选):: DependencyList;useEffect依赖项数组,用于重新发起获取接口数据 - `serviceConfig`(可选):: TreeServiceConfig;请求服务需求的数据,当设置selectorTreeList后无效果 - `loadDataFlag`(可选):: boolean;是否开启异步加载 - `loadDataServiceConfig`(可选):: TreeLoadDataServiceConfig;异步加载数据配置 - `selectorTreeList`(可选):: TPlainObject[];当设置selectorTreeList后,serviceConfig将失效 - `onSelectorTreeListChange`(可选):: (dataList: TPlainObject[]) => void;通过服务获取数据后回调,当设置selectorList后无效果 - `onRequestResponseChange`(可选):: (data: TAny) => void;接口响应数据变更 - `onChange`(可选):: ( selectedKey?: TreeWrapperValue, operateNodeData?: TPlainObject[] | TPlainObject, operateAllNodeDataList?: TPlainObject[], extraData?: TPlainObject ) => void - `searchValue`(可选):: string;搜索关键字,打开tree折叠过滤关键字 - `checkableResponseParentNode`(可选):: boolean;checkable模式下,onChange是否返回父节点,默认值true @description 已过期,请使用 checkableType 配置 - `menuTriggerType`(可选):: 'click' | 'hover';菜单触发类型,默认:click - `menus`(可选):: (dataItem) => ButtonOperateProps - `showSearch`(可选):: boolean - `onSearchValueChange`(可选):: (searchValue?: string) => void - `searchPlaceholder`(可选):: string - `searchStyle`(可选):: CSSProperties - `icon`(可选):: (data: { isParent: boolean; isLeaf: boolean; [key: string]: TAny; }) => ReactElement - `requestMessageConfig`(可选):: TRequestStatusProps['messageConfig'];状态文案配置 - `value`(可选):: TreeWrapperValue;value格式 - `labelInValue`(可选):: boolean;选择的节点数据,是否包含label信息 - `labelInValueFieldNames`(可选):: { label: string; value: string } - `disabledCanUse`(可选):: boolean;禁用状态是否可选,默认值true 当dateItem中包含 disabled 则数据为禁用状态 - `treeItemDataAdapter`(可选):: (dataItem: TPlainObject) => TPlainObject;treeItem数据适配器 - `searchExtraElement`(可选):: ReactElement;搜索位置额外元素 - `initRootExpand`(可选):: boolean;有唯一跟节点时,初始化是否展开,默认值:false - `searchResultType`(可选):: 'highlight' | 'filter';搜素过滤方式,高亮 | 过滤;默认:filter - 其余 8 个字段见源码类型定义。 ## 使用规则与行为 - Tree包装组件,默认返回父节点,可配置不返回 @param props @returns - 获取树形原数据 - 响应数据适配器 - 设置请求唯一值 - 字段映射 - useEffect依赖项数组,用于重新发起获取接口数据 - 请求服务需求的数据,当设置selectorTreeList后无效果 - 是否开启异步加载 - 异步加载数据配置 - 当设置selectorTreeList后,serviceConfig将失效 ## 默认值线索 - `menuTriggerType => 'click'` - `searchPlaceholder => '搜索'` - `data => []` ## 基础示例 ```tsx import { TreeWrapper, type TreeWrapperProps } from '@flatbiz/antd/tree-wrapper'; const props: TreeWrapperProps = { // 按业务传入必要参数 }; ; ``` ## 源码索引 - `src/tree-wrapper/hooks.ts` - `src/tree-wrapper/index.ts` - `src/tree-wrapper/model.ts` - `src/tree-wrapper/tree-wrapper.tsx` - `src/tree-wrapper/utils.ts` ## 给 LLM 的注意事项 - 优先使用 `@flatbiz/antd/tree-wrapper` 或主入口 `@flatbiz/antd` 的公开导出,不要引用内部实现文件。 - 当 Props 与 antd 原组件同名能力冲突时,以本模块导出的 Props 类型为准。 - 若文档未覆盖某个边缘参数,请读取上方源码索引中的类型定义和 JSDoc。