import React from 'react'; import { AntTreeNode, AntTreeNodeDropEvent, AntTreeNodeMouseEvent, AntTreeNodeExpandedEvent } from 'asp-antd-compatible/lib/tree/Tree'; /** * 节点数据信息 */ export declare type TreeNodeData = { key: string; title: string; dataRef: any; children: TreeNodeData[]; isLeaf?: boolean; loaded?: boolean; extChildren?: TreeNodeData[]; }; declare type Props = { getPopupContainer?: () => HTMLElement; /** * 装载子节点数据 * @param node 请求的数据,如果是第一次加载则数据为undefined * @returns 必须返回统一的 TreeNodeData 结构 */ loadData: (node: TreeNodeData | undefined) => Promise; /** * 节点前添加 Checkbox 复选框 */ checkable?: boolean; /** * 选中的key,表示当前Tree中设置选中状态 */ checkedKeys?: string[]; /** * 右键菜单的信息列表 */ contextMenu?: JSX.Element[]; /** * 是否独占一行 */ blockNode?: boolean; /** * 是否是目录树 */ isDirectoryTree?: boolean; /** * 渲染节点title的时候触发的事件,返回一个新的title对象 * @param data 当前树状节点的数据 * @param render 当前渲染的节点数据 */ onRenderTreeNodeTitle?: (data: TreeNodeData) => string | React.ReactNode; /** * 点击树节点触发的事件 * @param data 当前节点的数据信息 * @param selected 当前节点是否选中,true表示选中,false表示不选中 */ onTreeNodeClick?: (data: TreeNodeData, selected: boolean) => void; /** * 双击树节点触发的事件 */ onTreeNodeDoubleClick?: (data: TreeNodeData) => void; /** * 点击右键菜单 * - node.props.dataRef 可获取绑定的数据 */ onClickContextMenu?: (key: string | number, node?: AntTreeNode) => void; onRightClick?: (options: AntTreeNodeMouseEvent) => boolean; /** * 拖动Tree的节点触发的事件 * @param 源数据 * @param 目标数据 */ onDrag?: (dropEven: AntTreeNodeDropEvent) => Promise; onExpand?: (expandedKeys: string[], info: AntTreeNodeExpandedEvent) => void | PromiseLike; }; declare type State = { treeData: TreeNodeData[]; pageX: number; pageY: number; isShowMenu: boolean; node?: AntTreeNode; selectedKeys: string[]; expandedKeys: string[]; expandAll: boolean; threeKey: string; }; /** * 树形组件 */ export declare class Tree extends React.Component { static defaultProps: { checkable: boolean; checkedKeys: never[]; onRightClick: () => Promise; isDirectoryTree: boolean; }; state: { treeData: never[]; pageX: number; pageY: number; isShowMenu: boolean; node: undefined; selectedKeys: never[]; expandedKeys: never[]; expandAll: boolean; expandAllOk: boolean; threeKey: string; }; private clickTreeNode; private oldTreeData; constructor(props: Props); componentDidMount(): void; expandAll(): void; updateNode(key: string, callback: (treeNode: TreeNodeData) => TreeNodeData): Promise; filter(callback: (node: TreeNodeData) => boolean): void; setSelectedKeys(keys: string[]): void; setExpandedKeys(expandedKeys: string[]): void; appendNode(parent: string | null, nodes: TreeNodeData[]): Promise; sort(parent: string | null, order: (children: TreeNodeData[]) => TreeNodeData[]): Promise; insertNode(parent: string | null, nodes: TreeNodeData[], order: (node: TreeNodeData, children: TreeNodeData[]) => TreeNodeData[]): Promise; refresh(keys: string | string[]): void; delNode(keys: string | string[]): Promise; render(): JSX.Element; protected onLoadData(node: AntTreeNode): Promise; protected renderTreeNodes: (treeData: TreeNodeData[]) => JSX.Element[]; } export {};