projectSetting.ts 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. import type { ProjectConfig } from '/#/config';
  2. import { MenuTypeEnum, TriggerEnum, MixSidebarTriggerEnum } from '/@/enums/menuEnum';
  3. import { CacheTypeEnum } from '/@/enums/cacheEnum';
  4. import {
  5. ContentEnum,
  6. PermissionModeEnum,
  7. ThemeEnum,
  8. RouterTransitionEnum,
  9. SettingButtonPositionEnum,
  10. SessionTimeoutProcessingEnum,
  11. TabsThemeEnum,
  12. } from '/@/enums/appEnum';
  13. import { darkMode } from '/@/settings/designSetting';
  14. import { getConfigByMenuType } from '../utils/getConfigByMenuType';
  15. // 修改此属性,实现默认的四个系统主题快速切换
  16. const menuType = MenuTypeEnum.SIDEBAR;
  17. // update-begin--author:liaozhiyang---date:20251201---for【QQYUN-14176】修改一个配置就能切换默认四个主题,不需要额外修改颜色等
  18. const { themeColor, headerBgColor, sideBgColor, split, mode } = getConfigByMenuType(menuType);
  19. // update-end--author:liaozhiyang---date:20251201---for【QQYUN-14176】修改一个配置就能切换默认四个主题,不需要额外修改颜色等
  20. // ! 改动后需要清空浏览器缓存
  21. const setting: ProjectConfig = {
  22. // 是否显示SettingButton
  23. showSettingButton: false,
  24. // 是否显示主题切换按钮
  25. showDarkModeToggle: false,
  26. // 设置按钮位置 可选项
  27. // SettingButtonPositionEnum.AUTO: 自动选择
  28. // SettingButtonPositionEnum.HEADER: 位于头部
  29. // SettingButtonPositionEnum.FIXED: 固定在右侧
  30. settingButtonPosition: SettingButtonPositionEnum.AUTO,
  31. // 权限模式,默认前端角色权限模式
  32. // ROUTE_MAPPING: 前端模式(菜单由路由生成,默认)
  33. // ROLE:前端模式(菜单路由分开)
  34. // BACK:后台模式
  35. permissionMode: PermissionModeEnum.BACK,
  36. // 权限缓存存放位置。默认存放于localStorage
  37. permissionCacheType: CacheTypeEnum.LOCAL,
  38. // 会话超时处理方案
  39. // SessionTimeoutProcessingEnum.ROUTE_JUMP: 路由跳转到登录页
  40. // SessionTimeoutProcessingEnum.PAGE_COVERAGE: 生成登录弹窗,覆盖当前页面
  41. sessionTimeoutProcessing: SessionTimeoutProcessingEnum.ROUTE_JUMP,
  42. // 项目主题色 - 根据导航栏模式确定主题色动态设置
  43. themeColor: themeColor,
  44. // 项目主题模式
  45. themeMode: darkMode,
  46. // 网站灰色模式,用于可能悼念的日期开启
  47. grayMode: false,
  48. // 色弱模式
  49. colorWeak: false,
  50. // 是否取消菜单,顶部,多标签页显示, 用于可能内嵌在别的系统内
  51. fullContent: false,
  52. // 主题内容宽度
  53. contentMode: ContentEnum.FULL,
  54. // 是否显示logo
  55. showLogo: true,
  56. // 是否显示底部信息 copyright
  57. showFooter: false,
  58. // 头部配置
  59. headerSetting: {
  60. // 背景色
  61. bgColor: headerBgColor,
  62. // 固定头部
  63. fixed: true,
  64. // 是否显示顶部
  65. show: true,
  66. // 主题
  67. theme: ThemeEnum.LIGHT,
  68. // 开启锁屏功能
  69. useLockPage: false,
  70. // 显示全屏按钮
  71. showFullScreen: false,
  72. // 显示官网按钮
  73. showDoc: false,
  74. // 显示消息中心按钮
  75. showNotice: false,
  76. // 显示菜单搜索按钮
  77. showSearch: false,
  78. },
  79. // 菜单配置
  80. menuSetting: {
  81. // 背景色
  82. bgColor: sideBgColor,
  83. // 是否固定住左侧菜单
  84. fixed: true,
  85. // 菜单折叠
  86. collapsed: false,
  87. // 折叠菜单时候是否显示菜单名
  88. collapsedShowTitle: false,
  89. // 是否可拖拽
  90. // Only limited to the opening of the left menu, the mouse has a drag bar on the right side of the menu
  91. canDrag: false,
  92. // Whether to show no dom
  93. show: true,
  94. // Whether to show dom
  95. hidden: false,
  96. // 菜单宽度
  97. menuWidth: 210,
  98. // 菜单模式
  99. mode,
  100. // 菜单类型
  101. type: menuType,
  102. // 菜单主题
  103. theme: ThemeEnum.LIGHT,
  104. // 左侧导航栏文字颜色调整区分彩色和暗黑 (不对应配置)
  105. isThemeBright: false,
  106. // 分割菜单
  107. split,
  108. // 顶部菜单布局
  109. topMenuAlign: 'center',
  110. // 折叠触发器的位置
  111. trigger: TriggerEnum.HEADER,
  112. // 手风琴模式,只展示一个菜单
  113. accordion: true,
  114. // 在路由切换的时候关闭左侧混合菜单展开菜单
  115. closeMixSidebarOnChange: false,
  116. // 左侧混合菜单模块切换触发方式 ‘click’ |'hover'
  117. mixSideTrigger: MixSidebarTriggerEnum.CLICK,
  118. // 是否固定左侧混合菜单
  119. mixSideFixed: false,
  120. },
  121. // 多标签
  122. multiTabsSetting: {
  123. // 刷新后是否保留已经打开的标签页
  124. cache: false,
  125. // 开启
  126. show: true,
  127. // 是否可以拖拽
  128. canDrag: true,
  129. // 开启快速操作
  130. showQuick: false,
  131. // 是否显示刷新按钮
  132. showRedo: false,
  133. // 是否显示折叠按钮
  134. showFold: false,
  135. // 标签页样式
  136. theme: TabsThemeEnum.SIMPLE,
  137. },
  138. // 动画配置
  139. transitionSetting: {
  140. // 是否开启切换动画
  141. // The disabled state will also disable pageLoading
  142. enable: true,
  143. // 动画名 Route basic switching animation
  144. basicTransition: RouterTransitionEnum.FADE_SIDE,
  145. // 是否打开页面切换loading
  146. // Only open when enable=true
  147. openPageLoading: true,
  148. //是否打开页面切换顶部进度条
  149. openNProgress: true,
  150. },
  151. // 是否开启KeepAlive缓存 开发时候最好关闭,不然每次都需要清除缓存
  152. openKeepAlive: false,
  153. // 自动锁屏时间,为0不锁屏。 单位分钟 默认1个小时
  154. lockTime: 0,
  155. // 显示面包屑
  156. showBreadCrumb: false,
  157. // 显示面包屑图标
  158. showBreadCrumbIcon: false,
  159. // 是否使用全局错误捕获
  160. useErrorHandle: false,
  161. // 是否开启回到顶部
  162. useOpenBackTop: true,
  163. // 是否可以嵌入iframe页面
  164. canEmbedIFramePage: false,
  165. // 切换界面的时候是否删除未关闭的message及notify
  166. closeMessageOnSwitch: true,
  167. // 切换界面的时候是否取消已经发送但是未响应的http请求。
  168. // 如果开启,想对单独接口覆盖。可以在单独接口设置
  169. removeAllHttpPending: false,
  170. };
  171. export default setting;