zsqy-naive-ui/src/router/router-guards.ts
2024-01-05 17:28:54 +08:00

37 lines
851 B
TypeScript

import { Router } from "vue-router";
import { loginCheck } from "@/utils/router";
export function createRouterGuards(router: Router) {
// 前置;
router.beforeEach(async (to, from, next) => {
const Loading = window["$loading"];
Loading && Loading.start();
const isErrorPage = router
.getRoutes()
.findIndex((item) => item.name === to.name);
if (isErrorPage === -1) {
next({ name: "ErrorPage404" });
}
if (!loginCheck()) {
if (to.name === "Login") {
next();
}
next({ name: "Login" });
}
next();
});
router.afterEach((to) => {
const Loading = window["$loading"];
document.title = (to?.meta?.title as string) || document.title;
Loading && Loading.finish();
});
// 错误
router.onError((error) => {
console.log(error, "路由错误");
});
}