/* * @Author: wei.li * @Date: 2021-11-17 16:02:30 * @LastEditors: wei.li * @LastEditTime: 2024-07-02 14:35:39 * @Description: file content */ // 响应式storage import type { App } from 'vue'; import Storage from 'responsive-storage'; import { routerArrays } from '../../layout/types'; import { responsiveStorageNameSpace } from '../../config'; export const injectResponsiveStorage = (app: App, config: ServerConfigs) => { const nameSpace = responsiveStorageNameSpace(); const configObj = Object.assign( { // 国际化 默认中文zh locale: Storage.getData('locale', nameSpace) ?? { locale: config.Locale ?? 'zh' }, // layout模式以及主题 layout: Storage.getData('layout', nameSpace) ?? { layout: config.Layout ?? 'vertical', theme: config.Theme ?? 'default', darkMode: config.DarkMode ?? false, sidebarStatus: config.SidebarStatus ?? true, epThemeColor: config.EpThemeColor ?? '#409EFF', themeColor: config.Theme ?? 'light', // 主题色(对应项目配置中的主题色,与theme不同的是它不会受到浅色、深色主题模式切换的影响,只会在手动点击主题色时改变) overallStyle: config.OverallStyle ?? 'light' // 主题模式(浅色:light、深色:dark、自动:system) }, configure: Storage.getData('configure', nameSpace) ?? { grey: config.Grey ?? false, weak: config.Weak ?? false, hideTabs: config.HideTabs ?? false, showLogo: config.ShowLogo ?? true, showModel: config.ShowModel ?? 'smart', multiTagsCache: config.MultiTagsCache ?? false }, cnd: Storage.getData('cnd', nameSpace) ?? {} }, config.MultiTagsCache ? { // 默认显示首页tag tags: Storage.getData('tags', nameSpace) ?? routerArrays } : {} ); app.use(Storage, { nameSpace, memory: configObj }); };