UNPKG

@antdp/basic-layouts

Version:

入口框架公共界面

83 lines (82 loc) 2.95 kB
import { ItemType } from 'antd/lib/menu/hooks/useItems'; import React from 'react'; import { IntlShape } from 'react-intl/lib/src/types'; import { HandleMenuProps, RouterMenu, LayoutModel } from './interface'; /** * * 1. 对路由权限进行判定 * 2. 保存每个子集对应的父级 * 3. 父级链 */ export declare class HandleMenu { authMenus: any[]; /**所有直接渲染的父级菜单*/ parentMenu: RouterMenu[]; parentflatMenu: RouterMenu[]; /**子集key对应的父级key*/ childParent: Map<string, string>; /**key对应子集数据*/ childMenu: Map<string, RouterMenu[]>; flatMenu: RouterMenu[]; flatAllMenu: RouterMenu[]; /**语言转换*/ intlLanguage?: IntlShape; /**路由数据*/ routers: RouterMenu[]; /**处理权限后的菜单**/ checkAuthMenus: RouterMenu[]; /**当前菜单对应的父级菜单*/ pathToParentMenus: Map<string, RouterMenu[]>; /**是否进行权限校验*/ isCheckAuth?: boolean; /**是否使用*/ isTOPLEFT?: boolean; /**记录上次父级菜单*/ preParentPath?: string; /**记录上次菜单*/ prePath?: string; constructor(props: HandleMenuProps); /**验证权限*/ checkAuth(path: string): boolean; /** * 1. 权限处理 * 1. 子集全部没权限,父级也没有权限 * 2. 子集存在权限,父级也存在权限 * 3. 没有权限的自动把 path 转换成 403 * */ initAuth(routers: RouterMenu[], isParent?: boolean): RouterMenu[]; /** * 2. 国际化翻译 * */ initLanguage(menus?: RouterMenu[], parentLocale?: string): void; /** * 3. 扁平化数据 */ initFlat(menus?: RouterMenu[], parentMenu?: RouterMenu[]): void; /** * 4. 处理数据,用于顶部和侧边菜单展示联动 * */ handelSiderMenu(menus?: RouterMenu[], isSider?: boolean, parentPath?: string): void; /** * 5. 获取顶部渲染数据 * */ getTopMenus(menus?: RouterMenu[], index?: number): RouterMenu[]; /** * 6. 获取导航面包屑 * */ getBreadcrumb(path: string): RouterMenu[]; /**7. 根据当前路由地址取父级key,再使用父级key进行取渲染内容,如果不是顶部渲染方式,则直接默认*/ getSiderMenus(path: string): RouterMenu[]; /**8. 获取父级path*/ getParentPath(path: string): string; getCheckAuthAll(path: string): boolean; /**9. 获取跳转地址*/ getToPath(path: string): any; /**10 更加path地址获取当前配置数据*/ getPathItem(path: string): RouterMenu | undefined; } export declare function isUrl(path: string): boolean; export declare function getIcon(icon: string): React.JSX.Element; /**获取菜单渲染**/ export declare const getSiderMenus: (menus?: RouterMenu[], isSider?: boolean) => ItemType[]; export declare const defaultThemeColors: (layout?: LayoutModel) => any;