From 6ffb158bf725eec9cd8c7d8939b265a0e23ff283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=81=8C=E7=B3=96=E5=8C=85=E5=AD=90?= Date: Sat, 28 Mar 2026 00:56:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E5=87=BA=E7=99=BB=E5=BD=95=E8=B0=83?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/index.ts | 9 ++++++--- src/views/Home.vue | 12 ++++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/store/index.ts b/src/store/index.ts index 21f7793..532b32f 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -21,9 +21,11 @@ class Store { * @param {Object} state * @param {UserInfo} data 登录数据 */ - login(state: StateType, data: {token: string, userInfo: UserInfo}): void { - localStorage.setItem('login_token', data.token) - state.loginInfo.token = data.token + login(state: StateType, data: {token?: string, userInfo: UserInfo}): void { + if (data.token) { + localStorage.setItem('login_token', data.token) + state.loginInfo.token = data.token + } state.loginInfo.userInfo = data.userInfo }, /** @@ -31,6 +33,7 @@ class Store { * @param {Object} state */ logout(state: StateType): void { + localStorage.removeItem('login_token') state.loginInfo.token = null state.loginInfo.userInfo = null }, diff --git a/src/views/Home.vue b/src/views/Home.vue index 079b74b..5361db1 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -40,7 +40,7 @@ -
+
@@ -90,6 +90,7 @@ const version = process.env.VERSION const currentYear = new Date().getFullYear() const defaultActiveMenuKey = ref(null) const openMenuNames = ref([]) +const mainViewReady = ref(false) const changePwdModal = ref(false) const changePwdLoading = ref(false) @@ -139,7 +140,8 @@ if (!store.state.loginInfo.token) { router.push('/login') } else { http.post<{token: string}, any>('/api/v2/common/verifyToken', {token: store.state.loginInfo.token}).then(data => { - store.commit('login', {token: data.newToken || store.state.loginInfo.token, userInfo: data.userInfo}) + store.commit('login', {userInfo: data.userInfo}) + mainViewReady.value = true }).catch(() => { router.push('/login') }) @@ -154,8 +156,10 @@ function dropdownMenuCommand(command: string): void { changePwdModal.value = true break case 'logout': - store.commit('logout') - router.push('/login') + http.post('/api/v2/common/logout').finally(() => { + store.commit('logout') + router.push('/login') + }) break } }