import Vue from "vue"; import VueRouter from "vue-router"; import HomeLayout from "@/layout"; import Home from "@/views/home"; import Search from "@/views/home/search"; import bookStore from "./modules/bookStore"; import teachingServices from "./modules/teachingServices"; import informationCenterRouter from "./modules/informationCenter"; import aboutUs from "./modules/aboutUs"; import preview from "./modules/preview" import baseLayout from "@/layout/base"; const originalPush = VueRouter.prototype.push VueRouter.prototype.push = function push(location) { return originalPush.call(this, location).catch(err => err) } Vue.use(VueRouter); const routes = [{ path: "/", name: "HomeLayout", component: HomeLayout, redirect: { name: "home" }, children: [ // 在主框架内 { path: "home", name: "home", meta: { name: "首页", authentication: false, // 是否需要登录验证 keepAlive: false, // 是否需要缓存 }, component: baseLayout, redirect: { name: "index" }, children: [{ path: "index", name: "index", meta: { name: "首页", authentication: false, // 是否需要登录验证 keepAlive: false, // 是否需要缓存 }, component: Home, }, { path: "search", name: "search", meta: { name: "首页搜索", authentication: false, // 是否需要登录验证 keepAlive: true, // 是否需要缓存 }, component: Search, }, ], }, { path: "/login", name: "login", meta: { name: "登录", authentication: false, }, component: () => import("@/views/login/login"), }, { path: "/register", name: "register", meta: { name: "注册", authentication: false, }, component: () => import("@/views/login/register"), }, { path: "/personalCenter", name: "personalCenter", meta: { name: "个人中心", authentication: true, }, component: () => import("@/views/personalCenter"), }, { path: "/authorServices", name: "authorServices", meta: { name: "作者服务", authentication: false, }, component: () => import("@/views/authorServices"), }, { path: "/bindWeChat", name: "bindWeChat", meta: { name: "绑定微信", authentication: true, }, component: () => import("@/views/bindWeChat"), }, { path: "/bindWeChatBack", name: "bindWeChatBack", meta: { name: "绑定微信", authentication: true, }, component: () => import("@/views/bindWeChat/success"), }, { path: "/AdminLogin", name: "AdminLogin", meta: { name: "管理登录", noWrapHeadFooter: true, }, component: () => import("@/views/login/adminLogin"), }, ...bookStore, ...teachingServices, ...informationCenterRouter, ...aboutUs, ...preview ], }, // 不在主框架内 { path: "/findPassword", name: "findPassword", meta: { name: "登录", }, component: () => import("@/views/login/findPassword"), }, ]; const router = new VueRouter({ routes, }); export default router;