Files
learning-system-portal/src/router/index.js
2022-09-07 14:31:07 +08:00

252 lines
7.3 KiB
JavaScript

import Vue from 'vue'
import VueRouter from 'vue-router'
/* Layout */
import Layout from '@/layout/index'
import LayoutPortal from '@/layout/portal'
Vue.use(VueRouter)
export const constantRoutes = [{
path: '/redirect',
component: Layout,
hidden: true,
children: [{
path: '/redirect/:path(.*)',
component: (resolve) => require(['@/views/Redirect'], resolve)
}]
}, {
path: '',
redirect: '/study'
},
{
path: '/loading',
hidden: true,
component: (resolve) => require(['@/views/Loading'], resolve),
name: 'loading',
meta: { title: '正在进入学习中心', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/login',
hidden: true,
component: (resolve) => require(['@/views/Login'], resolve),
name: 'login',
meta: { title: '京东方大学堂登录', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/index',
hidden: true,
component: (resolve) => require(['@/views/Index'], resolve),
name: 'index',
meta: { title: '首页', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/course',
hidden: true,
component: (resolve) => require(['@/views/portal/course/Index'], resolve),
name: 'course',
meta: { title: '课程', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/course/micro',
hidden: true,
component: (resolve) => require(['@/views/portal/course/Micro'], resolve),
name: 'courseDetailMicro',
meta: { title: '课程详情', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/course/detail',
hidden: true,
component: (resolve) => require(['@/views/portal/course/Detail'], resolve),
name: 'courseDetail',
meta: { title: '课程详情', icon: 'dashboard', noCache: true, affix: false },
},
// 课程预览
{
path: '/course/microPreview',
hidden: true,
component: (resolve) => require(['@/views/portal/course/microPreview'], resolve),
name: 'microPreview',
meta: { title: '课程预览', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/course/rePreview',
hidden: true,
component: (resolve) => require(['@/views/portal/course/rePreview'], resolve),
name: 'courseRePreview',
meta: { title: '课程预览', icon: 'dashboard', noCache: true, affix: false },
},
//
// 外来链接
{
path: '/course/boeframe',
hidden: true,
component: (resolve) => require(['@/views/portal/boeframe'], resolve),
name: 'courseBoeframe',
meta: { title: '课程预览', icon: 'dashboard', noCache: true, affix: false },
},
//外来链接
{
path: '/course/recorded',
hidden: true,
component: (resolve) => require(['@/views/portal/course/Recorded'], resolve),
name: 'courseDetailRecorded',
meta: { title: '课程详情', icon: 'dashboard', noCache: true, affix: false },
},
{
//此页面需要指定课程的参数
path: '/course/studyindex',
hidden: true,
component: (resolve) => require(['@/views/study/coursenew'], resolve),
name: 'courseStudyIndex',
meta: { title: '课程学习', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/case',
hidden: true,
component: (resolve) => require(['@/views/portal/case/Index'], resolve),
name: 'case',
meta: { title: '案例', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/case/detail',
hidden: true,
component: (resolve) => require(['@/views/portal/case/Detail'], resolve),
name: 'caseDetail',
meta: { title: '案例详情', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/article',
hidden: true,
component: (resolve) => require(['@/views/portal/article/Index'], resolve),
name: 'article',
meta: { title: '文章', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/article/detail',
hidden: true,
component: (resolve) => require(['@/views/portal/article/Detail'], resolve),
name: 'articleDetail',
meta: { title: '文章详情', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/article/add',
hidden: true,
component: (resolve) => require(['@/views/portal/article/Add'], resolve),
name: 'articleAdd',
meta: { title: '发布文章', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/qa',
hidden: true,
component: (resolve) => require(['@/views/portal/qa/Index'], resolve),
name: 'qa',
meta: { title: '问答', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/message',
hidden: true,
component: (resolve) => require(['@/views/portal/user/Message'], resolve),
name: 'userMsg',
meta: { title: '我的消息', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/comments',
hidden: true,
component: (resolve) => require(['@/views/portal/Comments'], resolve),
name: 'commentReply',
meta: { title: '评论回复', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/qa/answer',
hidden: true,
component: (resolve) => require(['@/views/portal/qa/Answer'], resolve),
name: 'qaAnswer',
meta: { title: '写回答', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/follow',
hidden: true,
component: (resolve) => require(['@/views/portal/follow'], resolve),
name: 'qaAnswer',
meta: { title: '写回答', icon: 'dashboard', noCache: true, affix: false },
},
{
path: '/study',
component: Layout,
redirect: '/study/index',
children: [{
path: 'index',
hidden: true,
component: (resolve) => require(['@/views/StudyIndex'], resolve),
name: 'studyIndex',
meta: { title: '首页', icon: 'dashboard', noCache: true, affix: true }
}]
},
{
path: '/teacher',
component: Layout,
children: [{
path: 'index',
hidden: true,
component: (resolve) => require(['@/views/TeacherIndex'], resolve),
name: 'teacherIndex',
meta: { title: '教师个人中心', icon: 'dashboard', noCache: true, affix: true }
}]
},
{
path: '/manager',
component: Layout,
children: [{
path: 'index',
hidden: true,
component: (resolve) => require(['@/views/ManageIndex'], resolve),
name: 'managerIndex',
meta: { title: '管理员个人中心', icon: 'dashboard', noCache: true, affix: true }
}]
},
{
path: '/exam/test',
hidden: true,
component: (resolve) => require(['@/views/exam/Test'], resolve),
name: 'test',
meta: { title: '京东方大学堂考试', icon: 'dashboard', noCache: true, affix: true },
},
{
path: '/video/test',
hidden: true,
component: (resolve) => require(['@/views/portal/course/video'], resolve),
name: 'videotest',
meta: { title: '课程视频测试', icon: 'dashboard', noCache: true, affix: true },
},
{
path: '/404',
component: (resolve) => require(['@/views/error/404'], resolve),
hidden: true
},
{
path: '/401',
component: (resolve) => require(['@/views/error/401'], resolve),
hidden: true
},
{
path: '/500',
component: (resolve) => require(['@/views/error/500'], resolve),
hidden: true
}
]
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes: constantRoutes,
scrollBehavior(to, from, saveTop) {
if (saveTop) {
return saveTop;
} else {
return { x: 0, y: 0 }
}
},
})
export default router