| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478 |
- import Vue from 'vue'
- import Router from 'vue-router'
- import store from '../store/index'
- import request from '@/request'
- import { Notification, MessageBox, Message } from 'element-ui'
- Vue.use(Router)
- let bankAdmin = ['/person-center/bank-record','/person-center/my-bank/index','/person-center/my-collect','/person-center/my-wrong','/person-center/my-bank/bank-detail/','/person-center/my-bank/bank-statistics/','/person-center/my-bank/bank-explain-detail/','/bank-exam-continue/','/bank-exam/','/subject/collect-bank/','/bank-exam-explain/','/bank-report/'];
- let canToBank = null;
- let courseAdmin = ['/my-course-detail/','/course-exam/']
- let canToCourse = null;
- const router = new Router({
- mode:'history',
- scrollBehavior: () => ({ y: 0 }),
- routes: [
- {
- path: '*',
- redirect: '/home',
- component: resolve => require(['@/pages/home/index'],resolve)
- },
- {
- path: '/home',
- name: '首页',
- component: resolve => require(['@/pages/home/index'],resolve)
- },
- {
- path: '/login',
- name: '登录',
- component: resolve => require(['@/pages/login/index'],resolve)
- },
- {
- path: '/about',
- name: '走进祥粤',
- component: resolve => require(['@/pages/about/index'],resolve)
- },
- {
- path: '/cart',
- name: '购物车',
- component: resolve => require(['@/pages/cart/index'],resolve)
- },
- {
- path: '/payment',
- name: '支付',
- component: resolve => require(['@/pages/payment/index'],resolve)
- },
- {
- path: '/payment-success',
- name: '支付成功',
- component: resolve => require(['@/pages/payment-success/index'],resolve)
- },
- {
- path: '/course-list',
- name: '课程列表',
- component: resolve => require(['@/pages/course-list/index'],resolve)
- },
- {
- path: '/bank-list',
- name: '题库列表',
- component: resolve => require(['@/pages/bank-list/index'],resolve)
- },
- {
- path: '/course-detail/:goodsId',
- name: '课程详情',
- component: resolve => require(['@/pages/goods-detail/course-detail'],resolve)
- },
- {
- path: '/bank-detail/:goodsId',
- name: '题库详情',
- component: resolve => require(['@/pages/goods-detail/bank-detail'],resolve)
- },
- {
- path: '/my-course-detail/:goodsId',
- name: '课程详情',
- component: resolve => require(['@/pages/course-detail/index'],resolve)
- },
- {
- path: '/course-report',
- name: '试卷报告',
- component: resolve => require(['@/pages/course-report/index'],resolve)
- },
-
- {
- path: '/bank-report/:goodsId',
- name: '试卷报告',
- component: resolve => require(['@/pages/bank-report/index'],resolve)
- },
- {
- path: '/course-exam/:goodsId',
- name: '做题',
- component: resolve => require(['@/pages/course-exam/index'],resolve)
- },
- {
- path: '/bank-exam/:goodsId',
- name: '做题',
- component: resolve => require(['@/pages/bank-exam/index'],resolve)
- },
-
- {
- path: '/bank-exam-continue/:goodsId',
- name: '继续做题',
- component: resolve => require(['@/pages/bank-exam-continue/index'],resolve)
- },
- {
- path: '/bank-exam-all-explain/:recordId',
- name: '全部解析',
- component: resolve => require(['@/pages/bank-exam-all-explain/index'],resolve)
- },
- {
- path: '/bank-exam-wrong-explain/:recordId',
- name: '错题解析',
- component: resolve => require(['@/pages/bank-exam-wrong-explain/index'],resolve)
- },
- {
- path: '/bank-exam-explain/:goodsId',
- name: '题目解析',
- component: resolve => require(['@/pages/bank-exam-explain/index'],resolve)
- },
-
- {
- path: '/subject/wrong-type-bank/:type',
- name: '错题',
- component: resolve => require(['@/pages/subject/wrong-type-bank'],resolve)
- },
- {
- path: '/subject/wrong-bank/:examId',
- name: '错题',
- component: resolve => require(['@/pages/subject/wrong-bank'],resolve)
- },
- {
- path: '/subject/collect-type-bank/:type',
- name: '收藏',
- component: resolve => require(['@/pages/subject/collect-type-bank'],resolve)
- },
- {
- path: '/subject/collect-bank/:examId',
- name: '收藏',
- component: resolve => require(['@/pages/subject/collect-bank'],resolve)
- },
- {
- path: '/person-center',
- name: '个人中心',
- component: resolve => require(['@/pages/person-center/index'],resolve),
- beforeEnter:(to,from,next) => {
- let token = window.localStorage.getItem('token');
- if(token == null || token == '' || token === undefined){
- next('/login')
- }else{
- next();
- }
- },
- children:[
- {
- path: '/',
- // redirect: 'my-course',
- },
- {
- path: 'my-course',
- component: resolve => require(['@/pages/person-center/my-course/index'],resolve),
- name: '我的课程'
- },
- {
- path: 'play-record',
- component: resolve => require(['@/pages/person-center/play-record/index'],resolve),
- name: '播放记录'
- },
- {
- path: 'my-bank',
- component: resolve => require(['@/pages/person-center/my-bank/index'],resolve),
- name:'我的题库',
- children:[
- {
- path: '/',
- redirect: 'index',
- },
- {
- path: 'index',
- component: resolve => require(['@/pages/person-center/my-bank/index/index'],resolve),
- name: '我的题库',
- },
- {
- path: 'bank-detail/:goodsId',
- component: resolve => require(['@/pages/person-center/my-bank/bank-detail/index'],resolve),
- name: '题库详情'
- },
- {
- path: 'bank-statistics/:goodsId',
- component: resolve => require(['@/pages/person-center/my-bank/bank-statistics/index'],resolve),
- name: '做题统计'
- },
- {
- path: 'bank-explain-detail/:goodsId',
- component: resolve => require(['@/pages/person-center/my-bank/bank-explain-detail/index'],resolve),
- name: '详情'
- },
- ]
- },
- {
- path: 'bank-record',
- component: resolve => require(['@/pages/person-center/bank-record/index'],resolve),
- name: '做题记录'
- },
-
- {
- path: 'my-collect',
- component: resolve => require(['@/pages/person-center/my-collect/index'],resolve),
- name: '收藏集'
- },
-
- {
- path: 'my-wrong',
- component: resolve => require(['@/pages/person-center/my-wrong/index'],resolve),
- name: '错题集'
- },
-
- {
- path: 'record-list/:goodsId',
- component: resolve => require(['@/pages/person-center/bank-record/record-list/index'],resolve),
- name: '更多记录'
- },
- {
- path: 'my-order',
- component: resolve => require(['@/pages/person-center/my-order/index'],resolve),
- name: '我的订单'
- },
- {
- path: 'my-examination',
- component: resolve => require(['@/pages/person-center/my-examination/index'],resolve),
- name: '我的考试'
- },
- {
- path: 'my-message',
- component: resolve => require(['@/pages/person-center/my-message/index'],resolve),
- name: '我的消息'
- },
- {
- path: 'my-info',
- component: resolve => require(['@/pages/person-center/my-info/index'],resolve),
- name: '我的资料'
- },
- {
- path: 'my-invoice',
- name: '我的发票',
- component: resolve => require(['@/pages/person-center/my-invoice/index'],resolve),
- children:[
-
- {
- path: '/',
- redirect: 'index',
- },
- {
- path: 'index',
- component: resolve => require(['@/pages/person-center/my-invoice/index/index'],resolve),
- name: '我的发票',
- },
- {
- path: 'add',
- component: resolve => require(['@/pages/person-center/my-invoice/add/index'],resolve),
- name: '申请发票',
- },
- ]
- },
- {
- path: 'my-classhour',
- component: resolve => require(['@/pages/person-center/my-classhour/index'],resolve),
- name: '我的学时',
- children:[
- {
- path: '/',
- redirect: 'index',
- },
- {
- path: 'index',
- component: resolve => require(['@/pages/person-center/my-classhour/index/index'],resolve),
- name: '我的学时',
- },
- {
- path: 'appointment',
- component: resolve => require(['@/pages/person-center/my-classhour/appointment/index'],resolve),
- name: '预约考试',
- },
- {
- path: 'appointment-add',
- component: resolve => require(['@/pages/person-center/my-classhour/appointment-add/index'],resolve),
- name: '预约考试',
- },
- {
- path: 'appointment-add-kp',
- component: resolve => require(['@/pages/person-center/my-classhour/appointment-add-kp/index'],resolve),
- name: '预约考试',
- }
- ]
- },
- ]
- }
- ]
- })
- const originalPush = Router.prototype.push
- Router.prototype.push = function push(location) {
- return originalPush.call(this, location).catch((err) => err)
- }
- router.beforeEach((to,from,next) => {
- console.log(to,'to')
- console.log(from,'from')
- if(to.path === '/login'){
- next();
- }else{
- let token = window.localStorage.getItem('token');
- //进入页面有token获取用户信息
- if(token){
- store.token = token;
- if(!store.state.userInfo) {
- //获取用户信息
- store.dispatch('getUserInfo')
- }
- // //题库页面要检测是否需要锁定
- // let isBankLock = bankAdmin.some(item => {
- // return to.path.indexOf(item) != -1
- // })
- // console.log(isBankLock,'isBankLock')
- // if(isBankLock) {
-
- // //没有执行定时器,开启锁定
- // if(!canToBank) {
- // request
- // .lockLockStatus({
- // action: "bank",
- // })
- // .then((res) => {
- // //有其他端在操作,不能学习
- // Message({
- // type: "warning",
- // message: res.msg,
- // });
-
- // if(from.path=='/') {
- // next('/')
- // }
- // }).catch(err => {
- // //可以学习,开启锁定
- // canToBank = 1;
- // request.lockLockAction({
- // action:'bank'
- // }).then(res => {
- // })
- // canToBank = setInterval(() => {
- // request.lockLockAction({
- // action:'bank'
- // }).then(res => {
-
- // })
- // }, 10000);
- // next()
- // })
- // return;
- // } else {
- // //正在执行定时器,可以直接进入
- // next()
- // }
-
- // return;
- // } else {
- // //从题库页面离开删除锁定
- // let isLeaveBank = bankAdmin.some(item => {
- // return from.path.indexOf(item) != -1
- // })
- // if(isLeaveBank) {
-
- // clearInterval(canToBank)
- // canToBank = null;
- // request.lockDelLock({
- // action:'bank'
- // }).then(res => {
-
- // })
- // }
- // }
-
- // let isCourseLock = courseAdmin.some(item => {
- // return to.path.indexOf(item) != -1
- // })
- // console.log(isCourseLock,'isCourseLock')
- // if(isCourseLock) {
-
- // //没有执行定时器,开启锁定
- // if(!canToCourse) {
- // request.goodsDetail(to.params.goodsId).then(res => {
- // //继续教育锁定
- // if(res.data.educationName == '继续教育') {
- // request
- // .lockLockStatus({
- // action: "jxjy",
- // })
- // .then((res) => {
- // //有其他端在操作,不能学习
- // Message({
- // type: "warning",
- // message: res.msg,
- // });
-
- // if(from.path=='/') {
- // next('/')
- // }
- // }).catch(err => {
- // //可以学习,开启锁定
- // canToCourse = 1;
- // request.lockLockAction({
- // action:'jxjy'
- // }).then(res => {
- // })
- // canToCourse = setInterval(() => {
- // request.lockLockAction({
- // action:'jxjy'
- // }).then(res => {
-
- // })
- // }, 10000);
- // next()
- // })
- // } else {
- // next()
- // }
- // })
-
- // return;
- // } else {
- // //正在执行定时器,可以直接进入
- // next()
- // }
-
- // return;
- // } else {
- // //非题库页面删除锁定
- // let isLeaveCouese = courseAdmin.some(item => {
- // return from.path.indexOf(item) != -1
- // })
- // if(isLeaveCouese) {
-
- // clearInterval(canToCourse)
- // canToCourse = null;
- // request.lockDelLock({
- // action:'jxjy'
- // }).then(res => {
-
- // })
- // }
- // }
-
- next()
- } else {
-
- next()
- }
- }
- })
- export default router;
|