UNPKG

@ccs-design/rc-pro-component

Version:

ccs design basic react component

101 lines (100 loc) 2.8 kB
import React, { ReactNode, ReactElement } from 'react'; import { History } from 'history-with-query'; import { Dispatch, AnyAction } from 'redux'; import './index.less'; export declare const classPrefix = "ccs-layout"; export declare type LayoutType = 'left' | 'top'; export interface RenderHeaderType extends Pick<CcsBasicLayoutPorps, 'logo' | 'location'> { menuData: MenuType[]; layout: LayoutType; menus: MenuType[]; } export interface MenuParentType { key: string; url: string; name: string; } export interface MenuType { nodeId: string; nodeName: string; leaf: boolean; icon: string; nodeData: { menuCode: string; menuName: string; menuUrl: string; menuType: number; menuDesc: string; }; children?: MenuType[]; topUrl?: string; parents?: MenuParentType[]; } export interface UserDetailType { menuData?: MenuType[]; userName?: string; loginCode?: string; urls?: string[]; token?: string; loginId?: number; orgs?: any[]; roles?: any[]; } export interface CcsBasicDefaultLayout { /** 菜单收起状态 */ collapsed: boolean; /** 系统布局 */ layout: LayoutType; } export interface CcsBasicLayoutPorps { /** logo图片 */ logo?: string; /** umi history */ history: History; /** umi location */ location: Location; /** umi router children */ children: ReactElement; /** 用户信息 */ userDetail: UserDetailType; /** 布局配置 */ layoutConfig: CcsBasicLayoutConfigType; /** 用户下拉菜单 */ userOverlayMenu: ReactNode; /** 头部额外信息 */ headerExtra: ReactNode; /** dva dispatch */ dispatch: Dispatch<AnyAction>; /** 自定义header */ renderHeader?: ({ logo, layout, menus, menuData, location }: RenderHeaderType) => ReactNode; } export interface CcsBasicLayoutConfigType { /** app名称 */ AppName: string; /** 主题色 */ BrandPrimary: string; /** 菜单展开宽度 */ MenuExpandWidth: number; /** 菜单收起宽度 */ MenuCollapsedWidth: number; /** 启用tabs缓存页面 */ IsTabsPage: boolean; /** 启用按钮权限 */ IsAuthButton: boolean; /** 暗黑模式 */ IsDark: boolean; /** 用户首次访问菜单模式 left | top */ LayoutMode: 'left' | 'top'; /** 菜单在收起状态,或者顶部菜单模式,查看下级菜单模式 default | all (一次性展开所有下级菜单) */ MenuExpandMode: 'default' | 'all'; /** 接口名称统一前缀 */ Api: string; /** url上下文名称 */ Context: string; } /** * 布局 * @param CcsBasicLayoutPorps */ declare const CcsBasicLayout: React.FC<CcsBasicLayoutPorps>; export default CcsBasicLayout;