stateGuard.ts 1.0 KB

123456789101112131415161718192021222324
  1. import type { Router } from 'vue-router';
  2. import { useAppStore } from '@jeesite/core/store/modules/app';
  3. import { useMultipleTabStore } from '@jeesite/core/store/modules/multipleTab';
  4. import { usePermissionStore } from '@jeesite/core/store/modules/permission';
  5. import { PageEnum } from '@jeesite/core/enums/pageEnum';
  6. import { resetCaseConfigGuideState } from '@jeesite/core/logics/caseConfigGuide';
  7. import { removeTabChangeListener } from '@jeesite/core/logics/mitt/routeChange';
  8. export function createStateGuard(router: Router) {
  9. router.afterEach((to) => {
  10. const tabStore = useMultipleTabStore();
  11. const appStore = useAppStore();
  12. const permissionStore = usePermissionStore();
  13. // Just enter login page and clear authentication information
  14. if (to.path === PageEnum.BASE_CASE) {
  15. console.log('访问案件列表页重置所有状态BASE_CASE');
  16. appStore.resetAllState();
  17. permissionStore.resetState();
  18. tabStore.resetState();
  19. resetCaseConfigGuideState();
  20. removeTabChangeListener();
  21. }
  22. });
  23. }