2024-03-31 15:51:00 +08:00
|
|
|
|
import { createRouter, createWebHashHistory } from "vue-router";
|
|
|
|
|
|
import { dynamicRoutes, staticRoutes, notFoundAndNoPower } from "@/router/route.ts";
|
2024-04-08 00:13:27 +08:00
|
|
|
|
import { initSetRouter } from "@/router/route-output.ts";
|
2024-03-31 15:51:00 +08:00
|
|
|
|
import NProgress from "@/config/nprogress";
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 创建vue的路由示例
|
|
|
|
|
|
* @method createRouter(options: RouterOptions): Router
|
|
|
|
|
|
* @link 参考:https://next.router.vuejs.org/zh/api/#createrouter
|
|
|
|
|
|
*/
|
|
|
|
|
|
export const router = createRouter({
|
|
|
|
|
|
history: createWebHashHistory(),
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 说明:
|
|
|
|
|
|
* 1、notFoundAndNoPower 添加默认 404、401界面,防止提示 No match found for location with path 'xxx'
|
|
|
|
|
|
* 2、后端控制路由中也需要添加 notFoundAndNoPower 404、401界面
|
|
|
|
|
|
* 防止 404、401 不在 layout 布局中,不设置的话,404、401界面将全屏显示
|
|
|
|
|
|
*/
|
|
|
|
|
|
routes: [...dynamicRoutes, ...staticRoutes, ...notFoundAndNoPower] // 这里只需要设置兜底路由即可,其它的路由通过addRoute动态添加
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// 路由加载前
|
|
|
|
|
|
router.beforeEach(async (to, from, next) => {
|
|
|
|
|
|
NProgress.start(); // 开启进度条
|
2024-04-08 00:13:27 +08:00
|
|
|
|
initSetRouter();
|
2024-03-31 15:51:00 +08:00
|
|
|
|
next();
|
|
|
|
|
|
console.log(to, from);
|
|
|
|
|
|
// if (to.path === "/login" && !sessionStorage.getItem("token")) {
|
|
|
|
|
|
// next();
|
|
|
|
|
|
// } else if (!sessionStorage.getItem("token")) {
|
|
|
|
|
|
// next("/login");
|
|
|
|
|
|
// } else if (to.path === "/login" && sessionStorage.getItem("token")) {
|
|
|
|
|
|
// next("/home");
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
// // 如果进的不是login,则判断路由,动态添加
|
|
|
|
|
|
// // 获取缓存的路由store
|
|
|
|
|
|
// const stores = useRoutesListStore(pinia);
|
|
|
|
|
|
// const { routesList } = storeToRefs(stores);
|
|
|
|
|
|
// // 如果缓存的路由是0,则说明未动态添加路由,先添加再跳转
|
|
|
|
|
|
// // 解决刷新页面404的问题
|
|
|
|
|
|
// if (routesList.value.length == 0) {
|
|
|
|
|
|
// await initSetRouter();
|
|
|
|
|
|
// next({ path: to.path, query: to.query });
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
// // 动态路由添加后走这里,直接放行
|
|
|
|
|
|
// next();
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// 路由跳转错误
|
|
|
|
|
|
router.onError(error => {
|
|
|
|
|
|
NProgress.done();
|
|
|
|
|
|
console.warn("路由错误", error.message);
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// 路由加载后
|
|
|
|
|
|
router.afterEach(() => {
|
|
|
|
|
|
NProgress.done();
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
export default router;
|