import type { Router } from 'vue-router' import { useAppStore } from '/@/store/modules/app' import { useMultipleTabStore } from '/@/store/modules/multipleTab' import { useUserStore } from '/@/store/modules/user' import { usePermissionStore } from '/@/store/modules/permission' import { PageEnum } from '/@/enums/pageEnum' import { removeTabChangeListener } from '/@/logics/mitt/routeChange' export function createStateGuard(router: Router) { router.afterEach((to) => { // Just enter the login page and clear the authentication information if (to.path === PageEnum.BASE_LOGIN) { const tabStore = useMultipleTabStore() const userStore = useUserStore() const appStore = useAppStore() const permissionStore = usePermissionStore() appStore.resetAllState() permissionStore.resetState() tabStore.resetState() userStore.resetState() removeTabChangeListener() } }) }