| | |
| | | // 左侧菜单, 顶部菜单 |
| | | import { MenuTypeEnum, MenuModeEnum, MenuThemeEnum } from '/@/enums/menuEnum'; |
| | | import { ContentEnum, PermissionModeEnum, RouterTransitionEnum } from '/@/enums/appEnum'; |
| | | import { MenuTypeEnum, MenuModeEnum, TriggerEnum } from '/@/enums/menuEnum'; |
| | | import { ContentEnum, PermissionModeEnum, ThemeEnum, RouterTransitionEnum } from '/@/enums/appEnum'; |
| | | import { CacheTypeEnum } from '/@/enums/cacheEnum'; |
| | | import type { LocaleType } from '/@/locales/types'; |
| | | |
| | | export interface MessageSetting { |
| | | title: string; |
| | | // 取消按钮的文字, |
| | | cancelText: string; |
| | | // 确认按钮的文字 |
| | | okText: string; |
| | | } |
| | | export interface MenuSetting { |
| | | bgColor: string; |
| | | fixed: boolean; |
| | | collapsed: boolean; |
| | | collapsedShowTitle: boolean; |
| | | hasDrag: boolean; |
| | | showSearch: boolean; |
| | | canDrag: boolean; |
| | | show: boolean; |
| | | hidden: boolean; |
| | | split: boolean; |
| | | menuWidth: number; |
| | | mode: MenuModeEnum; |
| | | type: MenuTypeEnum; |
| | | theme: MenuThemeEnum; |
| | | theme: ThemeEnum; |
| | | topMenuAlign: 'start' | 'center' | 'end'; |
| | | trigger: TriggerEnum; |
| | | accordion: boolean; |
| | | closeMixSidebarOnChange: boolean; |
| | | collapsedShowTitle: boolean; |
| | | mixSideTrigger: 'click' | 'hover'; |
| | | } |
| | | |
| | | export interface MultiTabsSetting { |
| | |
| | | show: boolean; |
| | | // 开启快速操作 |
| | | showQuick: boolean; |
| | | // 显示icon |
| | | showIcon: boolean; |
| | | // 缓存最大数量 |
| | | max: number; |
| | | canDrag: boolean; |
| | | |
| | | // 显示刷新按钮 |
| | | showRedo: boolean; |
| | | } |
| | | |
| | | export interface HeaderSetting { |
| | | bgColor: string; |
| | | fixed: boolean; |
| | | show: boolean; |
| | | theme: MenuThemeEnum; |
| | | // 显示刷新按钮 |
| | | showRedo: boolean; |
| | | theme: ThemeEnum; |
| | | |
| | | // 显示全屏按钮 |
| | | showFullScreen: boolean; |
| | | // 开启全屏功能 |
| | | useLockPage: boolean; |
| | | // 显示文档按钮 |
| | | showDoc: boolean; |
| | | showGithub: boolean; |
| | | // 显示消息中心按钮 |
| | | showNotice: boolean; |
| | | |
| | | showSearch: boolean; |
| | | } |
| | | |
| | | export interface LocaleSetting { |
| | | show: boolean; |
| | | // Current language |
| | | lang: LocaleType; |
| | | // default language |
| | | fallback: LocaleType; |
| | | // available Locales |
| | | availableLocales: LocaleType[]; |
| | | } |
| | | |
| | | export interface TransitionSetting { |
| | | // Whether to open the page switching animation |
| | | enable: boolean; |
| | | |
| | | // Route basic switching animation |
| | | basicTransition: RouterTransitionEnum; |
| | | |
| | | // Whether to open page switching loading |
| | | openPageLoading: boolean; |
| | | |
| | | // Whether to open the top progress bar |
| | | openNProgress: boolean; |
| | | } |
| | | |
| | | export interface ProjectConfig { |
| | | locale: LocaleSetting; |
| | | |
| | | permissionCacheType: CacheTypeEnum; |
| | | |
| | | // 是否显示配置按钮 |
| | | showSettingButton: boolean; |
| | | // 权限模式 |
| | |
| | | contentMode: ContentEnum; |
| | | // 是否显示logo |
| | | showLogo: boolean; |
| | | showFooter: boolean; |
| | | headerSetting: HeaderSetting; |
| | | // 菜单类型 |
| | | // menuType: MenuTypeEnum; |
| | | |
| | | menuSetting: MenuSetting; |
| | | |
| | | messageSetting: MessageSetting; |
| | | |
| | | // 多标签页设置 |
| | | multiTabsSetting: MultiTabsSetting; |
| | | |
| | | transitionSetting: TransitionSetting; |
| | | |
| | | // pageLayout是否开启keep-alive |
| | | openKeepAlive: boolean; |
| | | |
| | | // |
| | | // 锁屏时间 |
| | | lockTime: number; |
| | | // 显示面包屑 |
| | | showBreadCrumb: boolean; |
| | | // 显示面包屑图标 |
| | | showBreadCrumbIcon: boolean; |
| | | // 使用error-handler-plugin |
| | | useErrorHandle: boolean; |
| | | |
| | | // 开启页面切换动画 |
| | | openRouterTransition: boolean; |
| | | // 路由切换动画 |
| | | routerTransition: RouterTransitionEnum; |
| | | |
| | | // 是否开启登录安全校验 |
| | | openLoginVerify: boolean; |
| | | |
| | | // 是否监听网络变化 |
| | | listenNetWork: boolean; |
| | | // 是否开启页面切换loading |
| | | openPageLoading: boolean; |
| | | // 是否开启回到顶部 |
| | | useOpenBackTop: boolean; |
| | | // 开启顶部进度条 |
| | | openNProgress: boolean; |
| | | // 是否可以嵌入iframe页面 |
| | | canEmbedIFramePage: boolean; |
| | | // 切换界面的时候是否删除未关闭的message及notify |
| | |
| | | export interface GlobConfig { |
| | | // 网站标题 |
| | | title: string; |
| | | |
| | | // 项目路径 |
| | | apiUrl: string; |
| | | |
| | | uploadUrl?: string; |
| | | urlPrefix?: string; |
| | | |
| | | shortName: string; |
| | | } |
| | | export interface GlobEnvConfig { |
| | | // 网站标题 |
| | | VITE_GLOB_APP_TITLE: string; |
| | | |
| | | // 项目路径 |
| | | VITE_GLOB_API_URL: string; |
| | | |
| | | VITE_GLOB_API_URL_PREFIX?: string; |
| | | |
| | | VITE_GLOB_APP_SHORT_NAME: string; |
| | | VITE_GLOB_UPLOAD_URL?: string; |
| | | } |
| | | |
| | | // 修改配置 |
| | | 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; |