| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * https://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| import { MenuTypeEnum, MenuModeEnum, TriggerEnum, MixSidebarTriggerEnum } from '/@/enums/menuEnum'; |
| import { |
| ContentEnum, |
| PermissionModeEnum, |
| ThemeEnum, |
| RouterTransitionEnum, |
| SettingButtonPositionEnum, |
| SessionTimeoutProcessingEnum, |
| } from '/@/enums/appEnum'; |
| |
| import { CacheTypeEnum } from '/@/enums/cacheEnum'; |
| |
| export type LocaleType = 'zh_CN' | 'en' | 'ru' | 'ja' | 'ko'; |
| |
| export interface MenuSetting { |
| bgColor: string; |
| fixed: boolean; |
| collapsed: boolean; |
| siderHidden: boolean; |
| canDrag: boolean; |
| show: boolean; |
| hidden: boolean; |
| split: boolean; |
| menuWidth: number; |
| mode: MenuModeEnum; |
| type: MenuTypeEnum; |
| theme: ThemeEnum; |
| topMenuAlign: 'start' | 'center' | 'end'; |
| trigger: TriggerEnum; |
| accordion: boolean; |
| closeMixSidebarOnChange: boolean; |
| collapsedShowTitle: boolean; |
| mixSideTrigger: MixSidebarTriggerEnum; |
| mixSideFixed: boolean; |
| } |
| |
| export interface MultiTabsSetting { |
| cache: boolean; |
| show: boolean; |
| showQuick: boolean; |
| canDrag: boolean; |
| showRedo: boolean; |
| showFold: boolean; |
| } |
| |
| export interface HeaderSetting { |
| bgColor: string; |
| fixed: boolean; |
| show: boolean; |
| theme: ThemeEnum; |
| // Turn on full screen |
| showFullScreen: boolean; |
| // Whether to show the lock screen |
| useLockPage: boolean; |
| // Show document button |
| showDoc: boolean; |
| // Show message center button |
| showNotice: boolean; |
| showSearch: boolean; |
| } |
| |
| export interface LocaleSetting { |
| showPicker: boolean; |
| // Current language |
| locale: 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 { |
| // Storage location of permission related information |
| permissionCacheType: CacheTypeEnum; |
| // Whether to show the configuration button |
| showSettingButton: boolean; |
| // Whether to show the theme switch button |
| showDarkModeToggle: boolean; |
| // Configure where the button is displayed |
| settingButtonPosition: SettingButtonPositionEnum; |
| // Permission mode |
| permissionMode: PermissionModeEnum; |
| // Session timeout processing |
| sessionTimeoutProcessing: SessionTimeoutProcessingEnum; |
| // Website gray mode, open for possible mourning dates |
| grayMode: boolean; |
| // Whether to turn on the color weak mode |
| colorWeak: boolean; |
| // Theme color |
| themeColor: string; |
| |
| // The main interface is displayed in full screen, the menu is not displayed, and the top |
| fullContent: boolean; |
| // content width |
| contentMode: ContentEnum; |
| // Whether to display the logo |
| showLogo: boolean; |
| // Whether to show the global footer |
| showFooter: boolean; |
| // menuType: MenuTypeEnum; |
| headerSetting: HeaderSetting; |
| // menuSetting |
| menuSetting: MenuSetting; |
| // Multi-tab settings |
| multiTabsSetting: MultiTabsSetting; |
| // Animation configuration |
| transitionSetting: TransitionSetting; |
| // pageLayout whether to enable keep-alive |
| openKeepAlive: boolean; |
| // Lock screen time |
| lockTime: number; |
| // Show breadcrumbs |
| showBreadCrumb: boolean; |
| // Show breadcrumb icon |
| showBreadCrumbIcon: boolean; |
| // Use error-handler-plugin |
| useErrorHandle: boolean; |
| // Whether to open back to top |
| useOpenBackTop: boolean; |
| // Is it possible to embed iframe pages |
| canEmbedIFramePage: boolean; |
| // Whether to delete unclosed messages and notify when switching the interface |
| closeMessageOnSwitch: boolean; |
| // Whether to cancel the http request that has been sent but not responded when switching the interface. |
| removeAllHttpPending: boolean; |
| } |
| |
| export interface GlobConfig { |
| // Site title |
| title: string; |
| // Service interface url |
| apiUrl: string; |
| // Upload url |
| uploadUrl?: string; |
| // Service interface url prefix |
| urlPrefix?: string; |
| // Project abbreviation |
| shortName: string; |
| } |
| export interface GlobEnvConfig { |
| // Site title |
| VITE_GLOB_APP_TITLE: string; |
| // Service interface url |
| VITE_GLOB_API_URL: string; |
| // Service interface url prefix |
| VITE_GLOB_API_URL_PREFIX?: string; |
| // Project abbreviation |
| VITE_GLOB_APP_SHORT_NAME: string; |
| // Upload url |
| VITE_GLOB_UPLOAD_URL?: string; |
| } |