diff --git a/src/modules/router.ts b/src/modules/router.ts index ae346dee..92bfe8d3 100644 --- a/src/modules/router.ts +++ b/src/modules/router.ts @@ -1,5 +1,5 @@ import type { RouteRecordRaw } from "vue-router"; - +const Error404NotFound = () => import("@/views/Error404NotFound.vue"); const data = await fetch("/toc.json").then((r) => r.json()); const manual = data.filter((v: any) => v.children); @@ -20,16 +20,36 @@ const manualRoute = mergeManual.map( const route: RouteRecordRaw[] = [ // ...manualRoute, + // { + // path: "/manual/chapter-1-admin-login", + // name: "Manual", + // component: () => import("@/modules/01_manual/MainPage.vue"), + // }, { path: "/manual/:name", name: "Manual", component: () => import("@/modules/01_manual/MainPage.vue"), + beforeEnter: (to, from, next) => { + const itemExists = manualRoute.some((item) => item.path === to.fullPath); + + if (itemExists) { + console.log("Win"); + next(); + } else { + next({ name: "Error404NotFound" }); + } + }, }, { path: "/:name", name: "Pages", component: () => import("@/modules/02_pages/MainPage.vue"), }, + { + path: "/:pathMatch(.*)*", + name: "Error404NotFound", + component: Error404NotFound, + }, ]; export default route;