UNPKG

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