UNPKG

4.16 kBTypeScriptView Raw
1import type { MenuDataItem } from '@umijs/route-utils';
2export type ContentWidth = 'Fluid' | 'Fixed';
3export type RenderSetting = {
4 headerRender?: false;
5 footerRender?: false;
6 menuRender?: false;
7 menuHeaderRender?: false;
8};
9export type PureSettings = {
10 /**
11 * @name theme for nav menu
12 *
13 * @type 'realDark' | 'light' | undefined
14 */
15 navTheme?: 'realDark' | 'light' | undefined;
16 /**
17 * @name layout 的布局方式
18 * @type 'side' | 'top' | 'mix'
19 *
20 * @example 顶部菜单 layout="top"
21 * @example 侧边菜单 layout="side"
22 * @example 混合布局 既有顶部也有侧边 layout="mix"
23 */
24 layout?: 'side' | 'top' | 'mix';
25 /** @name layout of content: `Fluid` or `Fixed`, only works when layout is top */
26 contentWidth?: ContentWidth;
27 /** @name sticky header */
28 fixedHeader?: boolean;
29 /** @name sticky siderbar */
30 fixSiderbar?: boolean;
31 /**
32 * @name menu 相关的一些配置,可以配置菜单的行为
33 *
34 * @example 关闭菜单国际化 menu={{ locale: false }}
35 * @example 默认打开所有的菜单 menu={{ defaultOpenAll:true }}
36 * @example 让菜单处于loading 状态 menu={{ loading: true }}
37 * @example 异步加载菜单数据 menu={{params:{ pathname } request: async (params) => { return [{name:"主页",path=params.pathname}]} }}
38 * @example 使用 MenuGroup 来聚合菜单 menu={{ mode: 'group' }}
39 * @example 取消自动关闭菜单 menu={{ autoClose: false }}
40 * @example 忽略收起时自动关闭菜单 menu={{ ignoreFlatMenu: true }}
41 */
42 menu?: {
43 /**
44 * @name 菜单国际化的配置
45 */
46 locale?: boolean;
47 hideMenuWhenCollapsed?: boolean;
48 /**
49 * 收起时也展示标题
50 */
51 collapsedShowTitle?: boolean;
52 /**
53 * 收起时也展示 分组菜单的标题
54 */
55 collapsedShowGroupTitle?: boolean;
56 /**
57 * @name 默认打开所有的菜单
58 */
59 defaultOpenAll?: boolean;
60 /**
61 * @name 是否忽略用户手动折叠过的菜单状态,如选择忽略,折叠按钮切换之后也可实现展开所有菜单
62 */
63 ignoreFlatMenu?: boolean;
64 /**
65 * @name 菜单的 loading 配置
66 */
67 loading?: boolean;
68 /**
69 * @name 菜单的 loading 发生改变
70 */
71 onLoadingChange?: (loading?: boolean) => void;
72 /**
73 * @name 菜单远程请求时用的参数,只有 params 变化才会重新触发 request
74 *
75 */
76 params?: Record<string, any>;
77 /**
78 * @name 菜单远程请求的方法,只有 params 变化才会重新触发 request
79 */
80 request?: (params: Record<string, any>, defaultMenuData: MenuDataItem[]) => Promise<MenuDataItem[]>;
81 /**
82 * @name 菜单聚合的模式
83 */
84 type?: 'sub' | 'group';
85 /**
86 * @name 取消自动关闭菜单
87 */
88 autoClose?: false;
89 };
90 /**
91 * 设置为 false,在 layout 中只展示 pageName,而不是 pageName - title
92 *
93 * @name Layout 的 title,也会显示在浏览器标签上
94 */
95 title?: string | false;
96 /**
97 * Your custom iconfont Symbol script Url eg://at.alicdn.com/t/font_1039637_btcrd5co4w.js
98 * 注意:如果需要图标多色,Iconfont 图标项目里要进行批量去色处理 Usage: https://github.com/ant-design/ant-design-pro/pull/3517
99 */
100 iconfontUrl?: string;
101 /** @name 主色,需要配合 umi 使用 */
102 colorPrimary?: string;
103 /** @name 全局增加滤镜 */
104 colorWeak?: boolean;
105 /**
106 * 只在 mix 模式下生效
107 *
108 * @name 切割菜单
109 */
110 splitMenus?: boolean;
111 /**
112 * @name 在菜单为空时隐藏Sider
113 */
114 suppressSiderWhenMenuEmpty?: boolean;
115 /**
116 * 侧边菜单模式
117 */
118 siderMenuType?: 'sub' | 'group';
119};
120export type ProSettings = PureSettings & RenderSetting;
121declare const defaultSettings: ProSettings;
122export { defaultSettings };