config.d.ts 3.7 KB

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