// 定义状态 export type State = { routerMatchList: { path: string, menuLevel: number, breadcrumbName: string, }[], userName: string, collapsed: boolean, selectedKey: string, openKeys: string[], }; // 只读状态 export type ReadonlyState = Readonly; // 修改状态 export type StateAction = { setRouterMatchList: (list: State['routerMatchList']) => void, setUserName: (userName: string) => void, setCollapsed: (status: boolean) => void, setSelectedKey: (key: string) => void, setOpenKeys: (openKeys: string[]) => void, }; // 仓库类型 export type LayoutStore = { state: ReadonlyState, onClickLogout: () => Promise, onChangeSelectedKey: (path: string, menuLevel: number) => void, onOpenChange: (openKeys: string[]) => void, onClickCollapsed: () => void, init: (list: State['routerMatchList']) => void, reset: () => void, }; /* 组件类型 */ export type HeaderProps = { userName: string, onClickLogout: () => Promise, }; export type NavProps = { selectedKey: string, onChangeSelectedKey: (path: string, menuLevel: number) => void, openKeys: string[], onOpenChange: (openKeys: string[]) => void, collapsed: boolean, onClickCollapsed: () => void, }; export type BreadcrumbProps = { routerMatchList: State['routerMatchList'], };