import { CSSProperties } from 'react'; import { Props as TreeItem } from "../pisellDraggable/components/TreeItem/TreeItem"; export interface NavigationMenuItem { id: string; /** 标题 */ title: string; /** 图标 */ icon?: string; /** 描述 */ description?: string; /** 子菜单 */ children?: NavigationMenuItem[]; /** 版本 */ version?: string; /** 是否是分组 */ isGroup?: boolean; /** 是否允许添加子菜单 */ allowAddChild?: boolean; /** 是否允许删除 */ allowDelete?: boolean; /** 是否允许编辑 */ allowEdit?: boolean; /** 是否允许添加子菜单 */ allowAddSubmenu?: boolean; /** 是否允许添加页面 */ allowAddPage?: boolean; /** 其他属性 */ [key: string]: any; } export interface PisellNavigationMenuProps { /** 导航菜单数据 */ value: NavigationMenuItem[]; /** 是否允许拖拽排序 */ allowDrag?: boolean; /** 是否允许删除菜单项 */ allowDelete?: boolean; /** 是否允许添加子菜单 */ allowAddChild?: boolean; /** 是否允许添加根菜单 */ allowAddRoot?: boolean; /** 是否允许显示隐藏 */ allowIsShow?: boolean; /** 是否禁用 */ disabled?: boolean; /** 菜单项间距 */ spacing?: number; /** 最大层级数 */ maxLevel?: number; /** 样式 */ style?: CSSProperties; /** 类名 */ className?: string; /** 数据变化回调 */ onChange?: (items: NavigationMenuItem[]) => void; /** 设计模式 */ __designMode?: string; /** 标题 */ title?: string; /** 添加子菜单回调 */ onAddSubMenu?: (item?: NavigationMenuItem) => void; /** 添加页面回调 */ onAddPage?: (item?: NavigationMenuItem) => void; /** 编辑回调 */ onEdit?: (item: NavigationMenuItem) => void; /** 删除回调 */ onDelete?: (item: NavigationMenuItem) => void; /** 左侧自定义内容 */ leftContent?: React.ReactNode; /** 右侧自定义内容 */ rightContent?: React.ReactNode; /** 获取item样式 */ getItemStyle?: (itemProps: TreeItem) => React.CSSProperties; /** 自定义拖拽判断函数,返回false时阻止拖拽 */ canDrop?: (dragItem: NavigationMenuItem, dropTarget: NavigationMenuItem, parentId: string | number | null) => boolean; /** 显示隐藏回调 */ onIsShow?: (item: NavigationMenuItem) => void; /** 节点缩进宽度 */ indentationWidth?: number; /** 隐藏描述 */ hideDescription?: boolean; /** 悬浮时展示action */ showActionOnHover?: boolean; /** 是否展示标题标签 */ showTitleTags?: boolean; }