qiyunfeng-create
2 天以前 5f00696dfb25bc90034448ceb634ed1ef256681a
src/router/index.js
@@ -1,149 +1,265 @@
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 aboutUs from '../views/aboutUs/index.vue'
import bookStore from '../views/bookStore/index.vue'
import bookdetail from '../views/bookStore/detail.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: '/aboutUs',
          name: 'aboutUs',
          component: aboutUs,
        },
        component: Search,
      },
        {
          path: '/bookdetail',
          name: 'bookdetail',
          component: bookdetail,
        },
        {
          path: '/bookStore',
          name: 'bookStore',
          component: bookStore,
        },
        //个人中心
        {
          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'),
            },
            {
              path: '/courseDetail',
              name: 'courseDetail',
              meta: {
                name: '课程详情',
              },
              component: () => import('@/views/courseManage/index.vue'),
            },
          ],
        },
        // 班级
        {
          path: '/classManage',
          name: 'classManage',
          redirect: '/classHome',
          meta: {
            name: '班级管理',
          },
          component: () => import('../views/classManage/index.vue'),
          children: [
            {
              path: '/classHome',
              name: 'classHome',
              meta: {
                name: '班级首页',
              },
              component: () => import('@/views/classManage/classHome.vue'),
            },
            {
              path: '/studentManage',
              name: 'studentManage',
              meta: {
                name: '学生管理',
              },
              component: () => import('@/views/classManage/studentManage.vue'),
            },
            {
              path: '/teachingPlan',
              name: 'teachingPlan',
              meta: {
                name: '教学计划',
              },
              component: () => import('@/views/classManage/teachingPlan.vue'),
            },
            {
              path: '/prepareLessons',
              name: 'prepareLessons',
              meta: {
                name: '备课',
              },
              component: () => import('@/views/classManage/prepareLessons.vue'),
            },
            {
              path: '/jobManage',
              name: 'jobManage',
              meta: {
                name: '作业管理-教师',
              },
              component: () => import('@/views/classManage/jobManage.vue'),
            },
            {
              path: '/studentJob',
              name: 'studentJob',
              meta: {
                name: '作业管理-学生',
              },
              component: () => import('@/views/classManage/studentJob.vue'),
            },
            {
              path: '/jobDetail',
              name: 'jobDetail',
              meta: {
                name: '作业管理详情',
              },
              component: () => import('@/views/classManage/jobDetail.vue'),
            },
            {
              path: '/testManage',
              name: 'testManage',
              meta: {
                name: '测试管理',
              },
              component: () => import('@/views/classManage/testManage.vue'),
            },
            {
              path: '/jobAnalysis',
              name: 'jobAnalysis',
              meta: {
                name: '作业分析',
              },
              component: () => import('@/views/classManage/jobAnalysis.vue'),
            },
            {
              path: '/teachInteraction',
              name: 'teachInteraction',
              meta: {
                name: '教学互动',
              },
              component: () => import('@/views/classManage/teachInteraction.vue'),
            },
            {
              path: '/interactionDetail',
              name: 'interactionDetail',
              meta: {
                name: '教学互动-详情',
              },
              component: () => import('@/views/classManage/interactionDetail.vue'),
            },
            {
              path: '/talkingPoint',
              name: 'talkingPoint',
              meta: {
                name: '话题',
              },
              component: () => import('@/views/classManage/talkingPoint.vue'),
            },
            {
              path: '/talkDetail',
              name: 'talkDetail',
              meta: {
                name: '话题',
              },
              component: () => import('@/views/classManage/talkDetail.vue'),
            },
            {
              path: '/info',
              name: 'info',
              meta: {
                name: '班级通知列表',
              },
              component: () => import('@/views/classManage/infoList.vue'),
            },
          ],
        },
      ],
    },
    {
      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