stateGuard.ts 938 B

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