mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-18 11:26:10 +08:00
88 lines
2.7 KiB
Go
88 lines
2.7 KiB
Go
import router from '@/routers/router';
|
|
import NProgress from '@/config/nprogress';
|
|
import { GlobalStore } from '@/store';
|
|
import { AxiosCanceler } from '@/api/helper/axios-cancel';
|
|
|
|
const axiosCanceler = new AxiosCanceler();
|
|
|
|
let isRedirecting = false;
|
|
|
|
router.beforeEach((to, from, next) => {
|
|
NProgress.start();
|
|
axiosCanceler.removeAllPending();
|
|
const globalStore = GlobalStore();
|
|
if (to.name !== 'entrance' && !globalStore.isLogin) {
|
|
next({
|
|
name: 'entrance',
|
|
params: to.params,
|
|
});
|
|
NProgress.done();
|
|
return;
|
|
}
|
|
if (to.name === 'entrance' && globalStore.isLogin) {
|
|
if (to.params.code === globalStore.entrance) {
|
|
next({
|
|
name: 'home',
|
|
});
|
|
NProgress.done();
|
|
return;
|
|
}
|
|
next({ name: '404' });
|
|
NProgress.done();
|
|
return;
|
|
}
|
|
|
|
if (to.path === '/apps/all' && to.query.install != undefined) {
|
|
return next();
|
|
}
|
|
const activeMenuKey = 'cachedRoute' + (to.meta.activeMenu || '');
|
|
if (to.query.uncached != undefined) {
|
|
const query = { ...to.query };
|
|
delete query.uncached;
|
|
localStorage.removeItem(activeMenuKey);
|
|
return next({ path: to.path, query });
|
|
}
|
|
|
|
const cachedRoute = localStorage.getItem(activeMenuKey);
|
|
if (
|
|
to.meta.activeMenu &&
|
|
to.meta.activeMenu != from.meta.activeMenu &&
|
|
cachedRoute &&
|
|
cachedRoute !== to.path &&
|
|
!isRedirecting
|
|
) {
|
|
isRedirecting = true;
|
|
next(cachedRoute);
|
|
NProgress.done();
|
|
return;
|
|
}
|
|
|
|
if (!to.matched.some((record) => record.meta.requiresAuth)) return next();
|
|
|
|
return next();
|
|
});
|
|
|
|
router.afterEach((to) => {
|
|
if (to.meta.activeMenu && !isRedirecting) {
|
|
let notMathParam = true;
|
|
if (to.matched.some((record) => record.path.includes(':'))) {
|
|
notMathParam = false;
|
|
}
|
|
if (notMathParam) {
|
|
if (to.meta.activeMenu === '/cronjobs' && to.path === '/cronjobs/cronjob/operate') {
|
|
localStorage.setItem('cachedRoute' + to.meta.activeMenu, '/cronjobs/cronjob');
|
|
} else if (to.meta.activeMenu === '/containers' && to.path === '/containers/container/operate') {
|
|
localStorage.setItem('cachedRoute' + to.meta.activeMenu, '/containers/container');
|
|
} else if (to.meta.activeMenu === '/toolbox' && to.path === '/toolbox/clam/setting') {
|
|
localStorage.setItem('cachedRoute' + to.meta.activeMenu, '/toolbox/clam');
|
|
} else {
|
|
localStorage.setItem('cachedRoute' + to.meta.activeMenu, to.path);
|
|
}
|
|
}
|
|
}
|
|
|
|
isRedirecting = false;
|
|
NProgress.done();
|
|
});
|
|
|
|
export default router;
|