config.d.ts 3.6 KB

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