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 } }