import React, { ReactNode } from 'react'; import { SubMenuProps } from "antd"; import XBaseDisplay, { XBaseDisplayProps } from "../base/XBaseDisplay"; export interface XMenuProps extends XBaseDisplayProps { /** * 菜单显示模式 */ mode?: 'vertical' | 'horizontal' | 'inline'; /** * 点击菜单项事件 */ onMenuItemClick?: (item: object, menu: XMenu) => void; /** * 菜单项打开闭关事件 */ onOpenChange?: (openKeys: [], lastOpenKeys: [], addKeys: any[], deleteKeys: any[], menu: XMenu) => void; /** * 默认打开的菜单项 */ openKeys?: string[]; /** * 菜单项的唯一键对应字段 */ keyField?: string; /** * 菜单项的路径对应字段 */ pathField?: string; /** * 菜单项的名称对应字段 */ nameField?: string; /** * 默认选中的菜单项 */ selectedKeys?: string[]; /** * 内联折叠 */ inlineCollapsed?: boolean; allowSubMenuClick?: boolean; expandIcon?: ReactNode | ((props: SubMenuProps & { isSubMenu: boolean; }) => ReactNode); /** * 渲染全部菜单 * @param data */ onMenuItemsRender?: (data: []) => ReactNode; /** * 渲染一个菜单 * @param menu */ onMenuItemRender?: (menu: any) => ReactNode; inlineIndent: number; } /** * 菜单组件是将一组数据显示为菜单列表,菜单列表一般为层次结构,通过与数据层次模型对应,可以直接显示为菜单结构。 * @name 菜单组件 * @groupName 列表 */ export default class XMenu extends XBaseDisplay { static ComponentName: string; static Mode: { vertical: string; horizontal: string; inline: string; }; static Menu: any; static defaultProps: { mode: string; selectPathItems: any[]; openKeys: any[]; selectedKeys: any[]; maxLevel: number; onMenuItemClick: any; selectedFontColor: string; selectedBackgroundColor: string; inlineCollapsed: boolean; allowSubMenuClick: boolean; overflow: string; keyField: string; nameField: string; pathField: string; inlineIndent: number; styleType: string; hasBox: boolean; showBorder: any; boxStyle: {}; width: string; height: string; visible: boolean; grid: number[]; gridSpan: number[]; parent: string; pureRender: boolean; dataSourceUrl: string; filterData: {}; mustHasFilter: boolean; }; constructor(props: any); componentDidMount(): void; formatData(data: any): any[]; GetData(): any; /** * 通过key获取menu * @param key */ GetMenuItem(key: any): any; /** * 设置打开的菜单 */ SetOpenKeys(openKeys: any): void; /** * 获取打开的菜单 */ GetOpenKeys(): any; onOpenChange: (openKeys: any) => void; onMenuItemClickEvent(menuItem: any, key: any): void; getMenuItems(data: any, parent?: any, parentKey?: string, level?: number): any; /** * 获取内联折叠 */ GetInlineCollapsed(): any; /** * 设置内联折叠 * @param inlineCollapsed */ SetInlineCollapsed(inlineCollapsed: boolean): void; renderDisplay(): React.JSX.Element; }