import { TreeProps } from 'antd'; import { DataNode } from 'antd/lib/tree'; import { MouseEvent } from 'react'; export type SubMenuItem = { name: string; value: string; icon: string; disabled?: boolean; [key: string]: any; }; export interface BareTreeProps extends Omit { /** 展开图标的Unicode码 */ expandCode?: string; /** 折叠图标的Unicode码 */ foldCode?: string; /** 是否开启重命名编辑功能 */ editable?: boolean; /** 叶子节点类名 */ leafClassName?: string; /** 父节点类名 */ parentClassName?: string; /** 子菜单列表 */ subMenuList?: SubMenuItem[] | ((node: TreeItem) => SubMenuItem[]); /** 自定义渲染子菜单节点 */ renderSubMenu?: (node: TreeItem, menuItem: SubMenuItem) => React.ReactNode; /** 子菜单点击事件 */ onSubMenuClick?: (menuItem: SubMenuItem, node: TreeItem, e: MouseEvent) => void; /** 重命名保存事件(仅`editable`为true时生效) */ onRename?: (item: TreeItem) => void; /** 自定义图标字体库的字体名称,类似iconfont库默认的`iconfont` */ iconFontFamily?: string; } type DeleteTypes = 'icon' | 'showLine' | 'switcherIcon' | 'titleRender' | 'multiple' | 'showIcon'; export interface TreeItem extends DataNode { [key: string]: any; } export type InnerTreeNodeProps = { node: TreeItem; onNodeEdit: () => void; onNodeBlur: () => void; } & Pick; export type TitleIconProps = Pick; export {};