qiyunfeng-create
3 天以前 f2433a2fb08c167b45a9fc26f2fa178a76ab807b
src/router/index.js
@@ -1,149 +1,115 @@
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: [
    // 在主框架内
import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'
import HomeView from '../views/home/index.vue'
import PageLayout from '../layout/baseLayout.vue'
const router = createRouter({
  history: createWebHashHistory(import.meta.env.BASE_URL),
  routes: [
    {
      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, // 是否需要缓存
      path: '/',
      name: 'layout',
      component: PageLayout,
      redirect: { name: 'home' },
      children: [
        {
          path: '/home',
          name: 'home',
          component: HomeView,
        },
        component: Home,
      },
      {
        path: "search",
        name: "search",
        meta: {
          name: "首页搜索",
          authentication: false, // 是否需要登录验证
          keepAlive: true, // 是否需要缓存
        //个人中心
        {
          path: '/personalCenter',
          name: 'personalCenter',
          redirect: '/userInfo',
          meta: {
            name: '个人中心',
          },
          component: () => import('@/views/personalCenter/index.vue'),
          children: [
            {
              path: '/userInfo',
              name: 'userInfo',
              meta: {
                name: '账户信息',
              },
              component: () => import('@/views/personalCenter/userInfo.vue'),
            },
            {
              path: '/myCart',
              name: 'myCart',
              meta: {
                name: '购物车',
              },
              component: () => import('@/views/personalCenter/myCart.vue'),
            },
            {
              path: '/myBook',
              name: 'myBook',
              meta: {
                name: '图书',
              },
              component: () => import('@/views/personalCenter/myBook.vue'),
            },
            {
              path: '/myCourse',
              name: 'myCourse',
              meta: {
                name: '课程',
              },
              component: () => import('@/views/personalCenter/course.vue'),
            },
            {
              path: '/myClass',
              name: 'myClass',
              meta: {
                name: '班级',
              },
              component: () => import('@/views/personalCenter/class.vue'),
            },
            {
              path: '/myOrder',
              name: 'myOrder',
              meta: {
                name: '订单',
              },
              component: () => import('@/views/personalCenter/myOrder.vue'),
            },
            {
              path: '/myApply',
              name: 'myApply',
              meta: {
                name: '申请',
              },
              component: () => import('@/views/personalCenter/myApply.vue'),
            },
            {
              path: '/myCollection',
              name: 'myCollection',
              meta: {
                name: '收藏',
              },
              component: () => import('@/views/personalCenter/myCollection.vue'),
            },
            {
              path: '/myMessage',
              name: 'myMessage',
              meta: {
                name: '消息',
              },
              component: () => import('@/views/personalCenter/myMessage.vue'),
            },
            {
              path: '/activateProduct',
              name: 'activateProduct',
              meta: {
                name: '激活码',
              },
              component: () => import('@/views/personalCenter/activeCode.vue'),
            },
          ],
        },
        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;
export default router