|
1
|
// 左侧菜单, 顶部菜单
|
vben
authored
|
2
|
import { MenuTypeEnum, MenuModeEnum, MenuThemeEnum, TriggerEnum } from '/@/enums/menuEnum';
|
|
3
4
5
6
7
8
9
10
11
12
13
|
import { ContentEnum, PermissionModeEnum, RouterTransitionEnum } from '/@/enums/appEnum';
export interface MessageSetting {
title: string;
// 取消按钮的文字,
cancelText: string;
// 确认按钮的文字
okText: string;
}
export interface MenuSetting {
collapsed: boolean;
|
vben
authored
|
14
|
collapsedShowTitle: boolean;
|
|
15
16
17
|
hasDrag: boolean;
showSearch: boolean;
show: boolean;
|
vben
authored
|
18
|
hidden: boolean;
|
|
19
20
21
22
23
24
|
split: boolean;
menuWidth: number;
mode: MenuModeEnum;
type: MenuTypeEnum;
theme: MenuThemeEnum;
topMenuAlign: 'start' | 'center' | 'end';
|
vben
authored
|
25
|
collapsedShowSearch: boolean;
|
vben
authored
|
26
|
trigger: TriggerEnum;
|
vben
authored
|
27
|
accordion: boolean;
|
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
}
export interface MultiTabsSetting {
// 是否显示
show: boolean;
// 开启快速操作
showQuick: boolean;
// 显示icon
showIcon: boolean;
// 缓存最大数量
max: number;
}
export interface HeaderSetting {
fixed: boolean;
show: boolean;
theme: MenuThemeEnum;
// 显示刷新按钮
showRedo: boolean;
// 显示全屏按钮
showFullScreen: boolean;
// 开启全屏功能
useLockPage: boolean;
// 显示文档按钮
showDoc: boolean;
showGithub: boolean;
|
|
54
55
|
// 显示消息中心按钮
showNotice: boolean;
|
|
56
57
|
}
export interface ProjectConfig {
|
vben
authored
|
58
59
60
61
|
// header背景色
headerBgColor: string;
// 左侧菜单背景色
menuBgColor: string;
|
|
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
// 是否显示配置按钮
showSettingButton: boolean;
// 权限模式
permissionMode: PermissionModeEnum;
// 网站灰色模式,用于可能悼念的日期开启
grayMode: boolean;
// 是否开启色弱模式
colorWeak: boolean;
// 主题色
themeColor: string;
// 全屏显示主界面,不显示菜单,及顶部
fullContent: boolean;
// 区域宽度
contentMode: ContentEnum;
// 是否显示logo
showLogo: boolean;
headerSetting: HeaderSetting;
// 菜单类型
// menuType: MenuTypeEnum;
menuSetting: MenuSetting;
messageSetting: MessageSetting;
// 多标签页设置
multiTabsSetting: MultiTabsSetting;
// pageLayout是否开启keep-alive
openKeepAlive: boolean;
// 锁屏时间
lockTime: number;
// 显示面包屑
showBreadCrumb: boolean;
|
|
94
95
|
// 显示面包屑图标
showBreadCrumbIcon: boolean;
|
|
96
97
98
99
100
101
102
103
104
105
106
107
|
// 使用error-handler-plugin
useErrorHandle: boolean;
// 开启页面切换动画
openRouterTransition: boolean;
// 路由切换动画
routerTransition: RouterTransitionEnum;
// 是否开启登录安全校验
openLoginVerify: boolean;
// 是否开启页面切换loading
openPageLoading: boolean;
// 是否开启回到顶部
useOpenBackTop: boolean;
|
|
108
109
|
// 开启顶部进度条
openNProgress: boolean;
|
|
110
111
|
// 是否可以嵌入iframe页面
canEmbedIFramePage: boolean;
|
nebv
authored
|
112
113
114
115
|
// 切换界面的时候是否删除未关闭的message及notify
closeMessageOnSwitch: boolean;
// 切换界面的时候是否取消已经发送但是未响应的http请求。
removeAllHttpPending: boolean;
|
|
116
117
118
119
120
121
122
123
124
125
126
127
|
}
export interface GlobConfig {
// 网站标题
title: string;
// 项目路径
apiUrl: string;
urlPrefix?: string;
shortName: string;
}
export interface GlobEnvConfig {
// 网站标题
|
|
128
|
VITE_GLOB_APP_TITLE: string;
|
|
129
|
// 项目路径
|
|
130
131
132
|
VITE_GLOB_API_URL: string;
VITE_GLOB_API_URL_PREFIX?: string;
VITE_GLOB_APP_SHORT_NAME: string;
|
|
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
}
// 修改配置
export type SetProjectSettingFn = <T extends keyof ProjectConfig>(
key: T,
value: ProjectConfig[T]
) => void;
interface GlobWrap {
globSetting: Readonly<GlobConfig>;
}
interface ProjectSettingWrap {
projectSetting: Readonly<ProjectConfig>;
}
export type SettingWrap = GlobWrap & ProjectSettingWrap;
|