progressGuard.ts 584 B

123456789101112131415161718192021
  1. import type { Router } from 'vue-router';
  2. import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
  3. import NProgress from 'nprogress';
  4. import 'nprogress/nprogress.css';
  5. import { unref } from 'vue';
  6. const { getOpenNProgress } = useTransitionSetting();
  7. export function createProgressGuard(router: Router) {
  8. router.beforeEach(async (to) => {
  9. !to.meta.inTab && unref(getOpenNProgress) && NProgress.start();
  10. return true;
  11. });
  12. router.afterEach(async (to) => {
  13. !to.meta.inTab && unref(getOpenNProgress) && NProgress.done();
  14. return true;
  15. });
  16. }