progressGuard.ts 594 B

123456789101112131415161718192021
  1. import type { Router } from 'vue-router';
  2. import NProgress from 'nprogress';
  3. import 'nprogress/nprogress.css';
  4. import { getIsOpenTab } from '/@/utils/helper/routeHelper';
  5. export function createProgressGuard(router: Router) {
  6. // NProgress.inc(0.1);
  7. // NProgress.configure({ easing: 'ease', speed: 200, showSpinner: false });
  8. router.beforeEach(async (to) => {
  9. const isOpen = getIsOpenTab(to.path);
  10. to.meta.inTab = isOpen;
  11. !isOpen && NProgress.start();
  12. return true;
  13. });
  14. router.afterEach(async (to) => {
  15. !to.meta.inTab && NProgress.done();
  16. return true;
  17. });
  18. }