config.d.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. // 左侧菜单, 顶部菜单
  2. import { MenuTypeEnum, MenuModeEnum, TriggerEnum } from '/@/enums/menuEnum';
  3. import { ContentEnum, PermissionModeEnum, ThemeEnum, RouterTransitionEnum } from '/@/enums/appEnum';
  4. import type { LocaleType } from '/@/locales/types';
  5. export interface MenuSetting {
  6. collapsed: boolean;
  7. collapsedShowTitle: boolean;
  8. hasDrag: boolean;
  9. showSearch: 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. collapsedShowSearch: boolean;
  19. trigger: TriggerEnum;
  20. accordion: boolean;
  21. }
  22. export interface MultiTabsSetting {
  23. // 是否显示
  24. show: boolean;
  25. // 开启快速操作
  26. showQuick: boolean;
  27. // 显示icon
  28. showIcon: boolean;
  29. // 缓存最大数量
  30. max: number;
  31. }
  32. export interface HeaderSetting {
  33. fixed: boolean;
  34. show: boolean;
  35. theme: ThemeEnum;
  36. // 显示刷新按钮
  37. showRedo: boolean;
  38. // 显示全屏按钮
  39. showFullScreen: boolean;
  40. // 开启全屏功能
  41. useLockPage: boolean;
  42. // 显示文档按钮
  43. showDoc: boolean;
  44. // 显示消息中心按钮
  45. showNotice: boolean;
  46. }
  47. export interface LocaleSetting {
  48. // Current language
  49. lang: LocaleType;
  50. // default language
  51. fallback: LocaleType;
  52. // available Locales
  53. availableLocales: LocaleType[];
  54. }
  55. export interface ProjectConfig {
  56. locale: LocaleSetting;
  57. // header背景色
  58. headerBgColor: string;
  59. // 左侧菜单背景色
  60. menuBgColor: string;
  61. // 是否显示配置按钮
  62. showSettingButton: boolean;
  63. // 权限模式
  64. permissionMode: PermissionModeEnum;
  65. // 网站灰色模式,用于可能悼念的日期开启
  66. grayMode: boolean;
  67. // 是否开启色弱模式
  68. colorWeak: boolean;
  69. // 主题色
  70. themeColor: string;
  71. // 全屏显示主界面,不显示菜单,及顶部
  72. fullContent: boolean;
  73. // 区域宽度
  74. contentMode: ContentEnum;
  75. // 是否显示logo
  76. showLogo: boolean;
  77. headerSetting: HeaderSetting;
  78. // 菜单类型
  79. // menuType: MenuTypeEnum;
  80. menuSetting: MenuSetting;
  81. // 多标签页设置
  82. multiTabsSetting: MultiTabsSetting;
  83. // pageLayout是否开启keep-alive
  84. openKeepAlive: boolean;
  85. // 锁屏时间
  86. lockTime: number;
  87. // 显示面包屑
  88. showBreadCrumb: boolean;
  89. // 显示面包屑图标
  90. showBreadCrumbIcon: boolean;
  91. // 使用error-handler-plugin
  92. useErrorHandle: boolean;
  93. // 开启页面切换动画
  94. openRouterTransition: boolean;
  95. // 路由切换动画
  96. routerTransition: RouterTransitionEnum;
  97. // 是否开启登录安全校验
  98. openLoginVerify: boolean;
  99. // 是否开启页面切换loading
  100. openPageLoading: boolean;
  101. // 是否开启回到顶部
  102. useOpenBackTop: boolean;
  103. // 开启顶部进度条
  104. openNProgress: boolean;
  105. // 是否可以嵌入iframe页面
  106. canEmbedIFramePage: boolean;
  107. // 切换界面的时候是否删除未关闭的message及notify
  108. closeMessageOnSwitch: boolean;
  109. // 切换界面的时候是否取消已经发送但是未响应的http请求。
  110. removeAllHttpPending: boolean;
  111. }
  112. export interface GlobConfig {
  113. // 网站标题
  114. title: string;
  115. // 项目路径
  116. apiUrl: 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. }
  128. interface GlobWrap {
  129. globSetting: Readonly<GlobConfig>;
  130. }
  131. interface ProjectSettingWrap {
  132. projectSetting: Readonly<ProjectConfig>;
  133. }