1234567891011121314151617181920212223242526272829303132 |
- import type { Router } from 'vue-router';
- import { appStore } from '/@/store/modules/app';
- import { userStore } from '/@/store/modules/user';
- import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
- import { unref } from 'vue';
- const { getOpenPageLoading } = useTransitionSetting();
- export function createPageLoadingGuard(router: Router) {
- router.beforeEach(async (to) => {
- if (!userStore.getTokenState) {
- return true;
- }
- if (to.meta.loaded) {
- return true;
- }
- if (unref(getOpenPageLoading)) {
- appStore.setPageLoadingAction(true);
- return true;
- }
- return true;
- });
- router.afterEach(async () => {
- if (unref(getOpenPageLoading)) {
- setTimeout(() => {
- appStore.commitPageLoadingState(false);
- }, 300);
- }
- return true;
- });
- }
|