diff --git a/src/App.vue b/src/App.vue index 7407d97adb22c317f2382b88db6b989a642edb7b..18058a5c0f6f3d5fc17d79e6b95ce8e680f443a0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,8 +2,8 @@ import { isDark } from '@/utils/is' import { useAppStore } from '@/store/modules/app' import { useDesign } from '@/hooks/web/useDesign' -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' import routerSearch from '@/components/RouterSearch/index.vue' +import { useWatermark } from '@/hooks/web/useWatermark' defineOptions({ name: 'APP' }) @@ -12,17 +12,18 @@ const prefixCls = getPrefixCls('app') const appStore = useAppStore() const currentSize = computed(() => appStore.getCurrentSize) const greyMode = computed(() => appStore.getGreyMode) -const { wsCache } = useCache() +const { setWatermark } = useWatermark() // 根据浏览器当前主题设置系统主题色 const setDefaultTheme = () => { - let isDarkTheme = wsCache.get(CACHE_KEY.IS_DARK) + let isDarkTheme = appStore.isDark if (isDarkTheme === null) { isDarkTheme = isDark() } appStore.setIsDark(isDarkTheme) } setDefaultTheme() +setWatermark(appStore.getWatermark) diff --git a/src/permission.ts b/src/permission.ts index b04bc3c13338e4cede4890219e948ac4c604cfb4..e6cb3132781632bb15bb74d3443ce108372f582f 100644 --- a/src/permission.ts +++ b/src/permission.ts @@ -11,8 +11,6 @@ import { usePermissionStoreWithOut } from '@/store/modules/permission' const { start, done } = useNProgress() -const { loadStart, loadDone } = usePageLoading() - const parseURL = ( url: string | null | undefined ): { basePath: string; paramsObject: { [key: string]: string } } => { @@ -58,6 +56,7 @@ const whiteList = [ // 路由加载前 router.beforeEach(async (to, from, next) => { + const { loadStart } = usePageLoading() start() loadStart() if (getAccessToken()) { @@ -100,6 +99,7 @@ router.beforeEach(async (to, from, next) => { }) router.afterEach((to) => { + const { loadDone } = usePageLoading() useTitle(to?.meta?.title as string) done() // 结束Progress loadDone() diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts index e3d6a56f3580237cc9d422fb5ecd66d8df037330..c0c372e862fefbd8056a5377ac7c78dd7e4f7b16 100644 --- a/src/store/modules/app.ts +++ b/src/store/modules/app.ts @@ -2,13 +2,10 @@ import { defineStore } from 'pinia' import { store } from '../index' import { humpToUnderline, setCssVar } from '@/utils' import { ElMessage } from 'element-plus' -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' import { ElementPlusSize } from '@/types/elementPlus' import { LayoutType } from '@/types/layout' import { ThemeTypes } from '@/types/theme' -const { wsCache } = useCache() - interface AppState { breadcrumb: boolean breadcrumbIcon: boolean @@ -37,6 +34,7 @@ interface AppState { footer: boolean theme: ThemeTypes fixedMenu: boolean + watermark: string | null } export const useAppStore = defineStore('app', { @@ -65,12 +63,13 @@ export const useAppStore = defineStore('app', { fixedHeader: true, // 固定toolheader footer: true, // 显示页脚 greyMode: false, // 是否开始灰色模式,用于特殊悼念日 - fixedMenu: wsCache.get('fixedMenu') || false, // 是否固定菜单 + fixedMenu: false, // 是否固定菜单 + watermark: null, - layout: wsCache.get(CACHE_KEY.LAYOUT) || 'classic', // layout布局 - isDark: wsCache.get(CACHE_KEY.IS_DARK) || false, // 是否是暗黑模式 - currentSize: wsCache.get('default') || 'default', // 组件尺寸 - theme: wsCache.get(CACHE_KEY.THEME) || { + layout: 'classic', // layout布局 + isDark: false, // 是否是暗黑模式 + currentSize: 'default', // 组件尺寸 + theme: { // 主题色 elColorPrimary: '#409eff', // 左侧菜单边框颜色 @@ -180,6 +179,9 @@ export const useAppStore = defineStore('app', { }, getFooter(): boolean { return this.footer + }, + getWatermark(): string | null { + return this.watermark } }, actions: { @@ -229,7 +231,6 @@ export const useAppStore = defineStore('app', { this.greyMode = greyMode }, setFixedMenu(fixedMenu: boolean) { - wsCache.set('fixedMenu', fixedMenu) this.fixedMenu = fixedMenu }, setPageLoading(pageLoading: boolean) { @@ -241,7 +242,6 @@ export const useAppStore = defineStore('app', { return } this.layout = layout - wsCache.set(CACHE_KEY.LAYOUT, this.layout) }, setTitle(title: string) { this.title = title @@ -255,18 +255,15 @@ export const useAppStore = defineStore('app', { document.documentElement.classList.add('light') document.documentElement.classList.remove('dark') } - wsCache.set(CACHE_KEY.IS_DARK, this.isDark) }, setCurrentSize(currentSize: ElementPlusSize) { this.currentSize = currentSize - wsCache.set('currentSize', this.currentSize) }, setMobile(mobile: boolean) { this.mobile = mobile }, setTheme(theme: ThemeTypes) { this.theme = Object.assign(this.theme, theme) - wsCache.set(CACHE_KEY.THEME, this.theme) }, setCssVarTheme() { for (const key in this.theme) { @@ -275,9 +272,12 @@ export const useAppStore = defineStore('app', { }, setFooter(footer: boolean) { this.footer = footer + }, + setWatermark(watermark: string|null) { + this.watermark = watermark } }, - persist: false + persist: true }) export const useAppStoreWithOut = () => {