Blame view

src/types/config.d.ts 3.61 KB
陈文彬 authored
1
// 左侧菜单, 顶部菜单
2
import { MenuTypeEnum, MenuModeEnum, MenuThemeEnum, TriggerEnum } from '/@/enums/menuEnum';
陈文彬 authored
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;
14
  collapsedShowTitle: boolean;
陈文彬 authored
15
16
17
  hasDrag: boolean;
  showSearch: boolean;
  show: boolean;
18
  hidden: boolean;
陈文彬 authored
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;
26
  trigger: TriggerEnum;
27
  accordion: boolean;
陈文彬 authored
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;
chen-xt authored
54
55
  // 显示消息中心按钮
  showNotice: boolean;
陈文彬 authored
56
57
}
export interface ProjectConfig {
58
59
60
61
  // header背景色
  headerBgColor: string;
  // 左侧菜单背景色
  menuBgColor: string;
陈文彬 authored
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;
陈文彬 authored
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;
陈文彬 authored
110
111
  // 是否可以嵌入iframe页面
  canEmbedIFramePage: boolean;
112
113
114
115
  // 切换界面的时候是否删除未关闭的message及notify
  closeMessageOnSwitch: boolean;
  // 切换界面的时候是否取消已经发送但是未响应的http请求。
  removeAllHttpPending: boolean;
陈文彬 authored
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;
陈文彬 authored
129
  // 项目路径
130
131
132
  VITE_GLOB_API_URL: string;
  VITE_GLOB_API_URL_PREFIX?: string;
  VITE_GLOB_APP_SHORT_NAME: string;
陈文彬 authored
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;