vben
2021-01-01 0419a070413be34ea5455ed955fa51d8c522da86
提交 | 用户 | age
46e087 1 import { MenuTypeEnum, MenuModeEnum, TriggerEnum } from '/@/enums/menuEnum';
V 2 import { ContentEnum, PermissionModeEnum, ThemeEnum, RouterTransitionEnum } from '/@/enums/appEnum';
26b610 3 import { CacheTypeEnum } from '/@/enums/cacheEnum';
8882d4 4 import type { LocaleType } from '/@/locales/types';
737b1b 5
2f6253 6 export interface MenuSetting {
0692b4 7   bgColor: string;
V 8   fixed: boolean;
2f6253 9   collapsed: boolean;
cedba3 10   canDrag: boolean;
2f6253 11   show: boolean;
4f6b65 12   hidden: boolean;
2f6253 13   split: boolean;
14   menuWidth: number;
15   mode: MenuModeEnum;
16   type: MenuTypeEnum;
46e087 17   theme: ThemeEnum;
2f6253 18   topMenuAlign: 'start' | 'center' | 'end';
4f6b65 19   trigger: TriggerEnum;
4ff6b7 20   accordion: boolean;
e6db0d 21   closeMixSidebarOnChange: boolean;
f69aae 22   collapsedShowTitle: boolean;
0419a0 23   mixSideTrigger: 'click' | 'hover';
2f6253 24 }
25
26 export interface MultiTabsSetting {
27   // 是否显示
28   show: boolean;
29   // 开启快速操作
30   showQuick: boolean;
cedba3 31   canDrag: boolean;
a65ad9 32
V 33   // 显示刷新按钮
34   showRedo: boolean;
2f6253 35 }
36
37 export interface HeaderSetting {
0692b4 38   bgColor: string;
2f6253 39   fixed: boolean;
40   show: boolean;
46e087 41   theme: ThemeEnum;
a65ad9 42
2f6253 43   // 显示全屏按钮
44   showFullScreen: boolean;
45   // 开启全屏功能
46   useLockPage: boolean;
47   // 显示文档按钮
48   showDoc: boolean;
7a1e94 49   // 显示消息中心按钮
C 50   showNotice: boolean;
dddda5 51
V 52   showSearch: boolean;
2f6253 53 }
737b1b 54
V 55 export interface LocaleSetting {
e5f8ce 56   show: boolean;
737b1b 57   // Current language
V 58   lang: LocaleType;
59   // default language
60   fallback: LocaleType;
61   // available Locales
62   availableLocales: LocaleType[];
63 }
64
41d790 65 export interface TransitionSetting {
V 66   //  Whether to open the page switching animation
67   enable: boolean;
68
69   // Route basic switching animation
70   basicTransition: RouterTransitionEnum;
71
72   // Whether to open page switching loading
73   openPageLoading: boolean;
74
75   // Whether to open the top progress bar
76   openNProgress: boolean;
77 }
78
2f6253 79 export interface ProjectConfig {
737b1b 80   locale: LocaleSetting;
0692b4 81
26b610 82   permissionCacheType: CacheTypeEnum;
V 83
2f6253 84   // 是否显示配置按钮
85   showSettingButton: boolean;
86   // 权限模式
87   permissionMode: PermissionModeEnum;
88   // 网站灰色模式,用于可能悼念的日期开启
89   grayMode: boolean;
90   // 是否开启色弱模式
91   colorWeak: boolean;
92   // 主题色
93   themeColor: string;
94   // 全屏显示主界面,不显示菜单,及顶部
95   fullContent: boolean;
96   // 区域宽度
97   contentMode: ContentEnum;
98   // 是否显示logo
99   showLogo: boolean;
0692b4 100   showFooter: boolean;
2f6253 101   headerSetting: HeaderSetting;
102   // 菜单类型
103   // menuType: MenuTypeEnum;
104   menuSetting: MenuSetting;
105
106   // 多标签页设置
107   multiTabsSetting: MultiTabsSetting;
41d790 108
V 109   transitionSetting: TransitionSetting;
110
2f6253 111   // pageLayout是否开启keep-alive
112   openKeepAlive: boolean;
113
e6db0d 114   //
2f6253 115   // 锁屏时间
116   lockTime: number;
117   // 显示面包屑
118   showBreadCrumb: boolean;
d8b25b 119   // 显示面包屑图标
Z 120   showBreadCrumbIcon: boolean;
2f6253 121   // 使用error-handler-plugin
122   useErrorHandle: boolean;
123   // 是否开启回到顶部
124   useOpenBackTop: boolean;
125   // 是否可以嵌入iframe页面
126   canEmbedIFramePage: boolean;
e83cb0 127   // 切换界面的时候是否删除未关闭的message及notify
N 128   closeMessageOnSwitch: boolean;
129   // 切换界面的时候是否取消已经发送但是未响应的http请求。
130   removeAllHttpPending: boolean;
2f6253 131 }
132
133 export interface GlobConfig {
134   // 网站标题
135   title: string;
136   // 项目路径
137   apiUrl: string;
29461a 138   uploadUrl?: string;
2f6253 139   urlPrefix?: string;
140   shortName: string;
141 }
142 export interface GlobEnvConfig {
143   // 网站标题
e8aede 144   VITE_GLOB_APP_TITLE: string;
2f6253 145   // 项目路径
e8aede 146   VITE_GLOB_API_URL: string;
B 147   VITE_GLOB_API_URL_PREFIX?: string;
148   VITE_GLOB_APP_SHORT_NAME: string;
29461a 149   VITE_GLOB_UPLOAD_URL?: string;
2f6253 150 }
151
152 interface GlobWrap {
153   globSetting: Readonly<GlobConfig>;
154 }
f7aa93 155
2f6253 156 interface ProjectSettingWrap {
157   projectSetting: Readonly<ProjectConfig>;
158 }