diff --git a/.env b/.env index b7085b4..91668af 100644 --- a/.env +++ b/.env @@ -15,5 +15,8 @@ VITE_LAMP_PASSWORD = fjoc(1KHP(Ls&Bje)C # 如果 Authorization 已存在则会直接采用, 否则会根据 clientId 和 clientSecret 生成 VITE_LAMP_AUTHORIZATION = Y3VlZGVzX2FkbWluOmN1ZWRlc19hZG1pbl9zZWNyZXQ= +# 当需要重置localStorage时, 修改此变量 +VITE_STORAGE_VERSION = 1 + # 调试授权码 VITE_DEBUG_CODE = ndm_debug diff --git a/src/composables/query/system/use-version-check-query.ts b/src/composables/query/system/use-version-check-query.ts index e3aa48e..7f0c597 100644 --- a/src/composables/query/system/use-version-check-query.ts +++ b/src/composables/query/system/use-version-check-query.ts @@ -1,11 +1,13 @@ import type { VersionInfo } from '@/apis/domains/version-info'; import { useQuery } from '@tanstack/vue-query'; import axios from 'axios'; +import { useThemeVars } from 'naive-ui'; import { h, ref, watch } from 'vue'; export function useVersionCheckQuery() { const localVersionInfo = ref(); const dialogShow = ref(false); + const themeVars = useThemeVars(); const { data: remoteVersionInfo, dataUpdatedAt } = useQuery({ queryKey: ['version-check'], @@ -37,6 +39,7 @@ export function useVersionCheckQuery() { h('div', {}, { default: () => `当前版本:${localVersionInfo.value?.version}` }), h('div', {}, { default: () => `最新版本:${newVersionInfo.version}` }), h('div', {}, { default: () => '请点击刷新页面以更新' }), + h('div', { style: { marginTop: '8px', fontWeight: '700', color: themeVars.value.warningColor } }, { default: () => '⚠️ 注意,更新后可能需要重新登录!' }), ]), positiveText: '刷新页面', maskClosable: false, diff --git a/src/main.ts b/src/main.ts index f3aa86b..cbfd2f8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,13 +1,21 @@ +import { getAppEnvConfig } from '@/utils/env'; +import { VueQueryPlugin } from '@tanstack/vue-query'; import { createApp } from 'vue'; import { createPinia } from 'pinia'; import persist from 'pinia-plugin-persistedstate'; -import { VueQueryPlugin } from '@tanstack/vue-query'; import App from './App.vue'; import router from './router'; import '@/styles/reset.scss'; +const { storageVersion } = getAppEnvConfig(); +const localStorageVersion = window.localStorage.getItem('ndm-storage-version'); +if (localStorageVersion !== storageVersion) { + window.localStorage.clear(); + window.localStorage.setItem('ndm-storage-version', storageVersion); +} + const app = createApp(App); app.use(createPinia().use(persist)); diff --git a/src/utils/env.ts b/src/utils/env.ts index 394287a..2f321c3 100644 --- a/src/utils/env.ts +++ b/src/utils/env.ts @@ -10,6 +10,7 @@ export const getAppEnvConfig = () => { VITE_LAMP_PASSWORD, VITE_LAMP_AUTHORIZATION, VITE_DEBUG_CODE, + VITE_STORAGE_VERSION, } = env; return { requestInterval: Number.parseInt(VITE_REQUEST_INTERVAL as string), @@ -20,5 +21,6 @@ export const getAppEnvConfig = () => { lampPassword: VITE_LAMP_PASSWORD as string, lampAuthorization: VITE_LAMP_AUTHORIZATION as string, debugCode: VITE_DEBUG_CODE as string, + storageVersion: VITE_STORAGE_VERSION as string, }; };