vben
authored
|
1
|
import type { Router } from 'vue-router';
|
Vben
authored
|
2
3
4
5
|
import { useAppStore } from '/@/store/modules/app';
import { useMultipleTabStore } from '/@/store/modules/multipleTab';
import { useUserStore } from '/@/store/modules/user';
import { usePermissionStore } from '/@/store/modules/permission';
|
vben
authored
|
6
|
import { PageEnum } from '/@/enums/pageEnum';
|
Vben
authored
|
7
|
import { removeTabChangeListener } from '/@/logics/mitt/routeChange';
|
vben
authored
|
8
|
|
vben
authored
|
9
|
export function createStateGuard(router: Router) {
|
vben
authored
|
10
11
12
|
router.afterEach((to) => {
// Just enter the login page and clear the authentication information
if (to.path === PageEnum.BASE_LOGIN) {
|
|
13
14
15
16
|
const tabStore = useMultipleTabStore();
const userStore = useUserStore();
const appStore = useAppStore();
const permissionStore = usePermissionStore();
|
Vben
authored
|
17
18
19
20
|
appStore.resetAllState();
permissionStore.resetState();
tabStore.resetState();
userStore.resetState();
|
vben
authored
|
21
22
23
24
|
removeTabChangeListener();
}
});
}
|