UNPKG

create-iking-admin

Version:

金合技术中台脚手架

93 lines (80 loc) 2.9 kB
/* * @Author: wfl * @LastEditors: wfl * @description: * @updateInfo: * @Date: 2022-08-12 18:42:51 * @LastEditTime: 2022-10-08 11:27:58 */ /** * Application configuration */ import type { ProjectConfig } from '@t/config'; import { PROJ_CFG_KEY } from '@/global/enums/cacheEnum'; import projectSetting from '@/mainApp/settings/projectSetting'; import { changeTheme } from '@/mainApp/logics/theme'; import { updateDarkTheme } from '@/mainApp/logics/theme/dark'; import { updateHeaderBgColor, updateSidebarBgColor } from '@/mainApp/logics/theme/updateBackground'; import { updateColorWeak } from '@/mainApp/logics/theme/updateColorWeak'; import { updateGrayMode } from '@/mainApp/logics/theme/updateGrayMode'; import { useAppStore } from '@/global/store/modules/app'; import { useLocaleStore } from '@/global/store/modules/locale'; import { getCommonStoragePrefix, getStorageShortName } from '@/mainApp/utils/env'; import { ThemeEnum } from '@/global/enums/appEnum'; import { Persistent } from '@/mainApp/utils/cache/persistent'; import { ikObject } from 'iking-utils'; import { primaryColor } from '../../../build/config/themeConfig'; // Initial project configuration export function initAppConfigStore() { const localeStore = useLocaleStore(); const appStore = useAppStore(); let projCfg: ProjectConfig = Persistent.getLocal(PROJ_CFG_KEY) as ProjectConfig; projCfg = ikObject.deepMerge(projectSetting, projCfg || {}); const darkMode = appStore.getDarkMode; const { colorWeak, grayMode, themeColor, headerSetting: { bgColor: headerBgColor } = {}, menuSetting: { bgColor } = {}, } = projCfg; try { if (themeColor && themeColor !== primaryColor) { changeTheme(themeColor); } grayMode && updateGrayMode(grayMode); colorWeak && updateColorWeak(colorWeak); } catch (error) { console.info(error); } appStore.setProjectConfig(projCfg); // init dark mode updateDarkTheme(darkMode); if (darkMode === ThemeEnum.DARK) { updateHeaderBgColor(); updateSidebarBgColor(); } else { headerBgColor && updateHeaderBgColor(headerBgColor); bgColor && updateSidebarBgColor(bgColor); } // init store localeStore.initLocale(); setTimeout(() => { clearObsoleteStorage(); }, 16); } /** * As the version continues to iterate, there will be more and more cache keys stored in localStorage. * This method is used to delete useless keys */ export function clearObsoleteStorage() { const commonPrefix = getCommonStoragePrefix(); const shortPrefix = getStorageShortName(); [localStorage, sessionStorage].forEach((item: Storage) => { Object.keys(item).forEach((key) => { if (key && key.startsWith(commonPrefix) && !key.startsWith(shortPrefix)) { item.removeItem(key); } }); }); }