// 左侧菜单, 顶部菜单 import { MenuTypeEnum, MenuModeEnum, MenuThemeEnum } from '/@/enums/menuEnum'; import { ContentEnum, PermissionModeEnum, RouterTransitionEnum } from '/@/enums/appEnum'; export interface MessageSetting { title: string; // 取消按钮的文字, cancelText: string; // 确认按钮的文字 okText: string; } export interface MenuSetting { collapsed: boolean; hasDrag: boolean; showSearch: boolean; show: boolean; split: boolean; menuWidth: number; mode: MenuModeEnum; type: MenuTypeEnum; theme: MenuThemeEnum; topMenuAlign: 'start' | 'center' | 'end'; } export interface MultiTabsSetting { // 是否显示 show: boolean; // 开启快速操作 showQuick: boolean; // 显示icon showIcon: boolean; // 缓存最大数量 max: number; } export interface HeaderSetting { fixed: boolean; show: boolean; theme: MenuThemeEnum; // 显示刷新按钮 showRedo: boolean; // 显示全屏按钮 showFullScreen: boolean; // 开启全屏功能 useLockPage: boolean; // 显示文档按钮 showDoc: boolean; showGithub: boolean; } export interface ProjectConfig { // 是否显示配置按钮 showSettingButton: boolean; // 权限模式 permissionMode: PermissionModeEnum; // 网站灰色模式,用于可能悼念的日期开启 grayMode: boolean; // 是否开启色弱模式 colorWeak: boolean; // 主题色 themeColor: string; // 全屏显示主界面,不显示菜单,及顶部 fullContent: boolean; // 区域宽度 contentMode: ContentEnum; // 是否显示logo showLogo: boolean; headerSetting: HeaderSetting; // 菜单类型 // menuType: MenuTypeEnum; menuSetting: MenuSetting; messageSetting: MessageSetting; // 多标签页设置 multiTabsSetting: MultiTabsSetting; // pageLayout是否开启keep-alive openKeepAlive: boolean; // 锁屏时间 lockTime: number; // 显示面包屑 showBreadCrumb: boolean; // 使用error-handler-plugin useErrorHandle: boolean; // 开启页面切换动画 openRouterTransition: boolean; // 路由切换动画 routerTransition: RouterTransitionEnum; // 是否开启登录安全校验 openLoginVerify: boolean; // 是否监听网络变化 listenNetWork: boolean; // 是否开启页面切换loading openPageLoading: boolean; // 是否开启回到顶部 useOpenBackTop: boolean; // 是否可以嵌入iframe页面 canEmbedIFramePage: boolean; } export interface GlobConfig { // 网站标题 title: string; // 项目路径 apiUrl: string; urlPrefix?: string; shortName: string; } export interface GlobEnvConfig { // 网站标题 GLOB_APP_TITLE: string; // 项目路径 GLOB_API_URL: string; GLOB_API_URL_PREFIX?: string; GLOB_APP_SHORT_NAME: string; } // 修改配置 export type SetProjectSettingFn = ( key: T, value: ProjectConfig[T] ) => void; interface GlobWrap { globSetting: Readonly; } interface ProjectSettingWrap { projectSetting: Readonly; } export type SettingWrap = GlobWrap & ProjectSettingWrap;