index.js 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import store from '../store/index'
  4. Vue.use(Router)
  5. const router = new Router({
  6. mode:'history',
  7. routes: [
  8. {
  9. path: '*',
  10. redirect: '/home',
  11. component: resolve => require(['@/pages/home/index'],resolve)
  12. },
  13. {
  14. path: '/home',
  15. name: '首页',
  16. component: resolve => require(['@/pages/home/index'],resolve)
  17. },
  18. {
  19. path: '/login',
  20. name: '登录',
  21. component: resolve => require(['@/pages/login/index'],resolve)
  22. },
  23. {
  24. path: '/cart',
  25. name: '购物车',
  26. component: resolve => require(['@/pages/cart/index'],resolve)
  27. },
  28. {
  29. path: '/payment',
  30. name: '支付',
  31. component: resolve => require(['@/pages/payment/index'],resolve)
  32. },
  33. {
  34. path: '/payment-success',
  35. name: '支付成功',
  36. component: resolve => require(['@/pages/payment-success/index'],resolve)
  37. },
  38. {
  39. path: '/course-list',
  40. name: '课程列表',
  41. component: resolve => require(['@/pages/course-list/index'],resolve)
  42. },
  43. {
  44. path: '/bank-list',
  45. name: '题库列表',
  46. component: resolve => require(['@/pages/bank-list/index'],resolve)
  47. },
  48. {
  49. path: '/course-detail/:goodsId',
  50. name: '课程详情',
  51. component: resolve => require(['@/pages/goods-detail/course-detail'],resolve)
  52. },
  53. {
  54. path: '/bank-detail/:goodsId',
  55. name: '题库详情',
  56. component: resolve => require(['@/pages/goods-detail/bank-detail'],resolve)
  57. },
  58. {
  59. path: '/my-course-detail/:goodsId',
  60. name: '课程详情',
  61. component: resolve => require(['@/pages/course-detail/index'],resolve)
  62. },
  63. {
  64. path: '/course-report',
  65. name: '试卷报告',
  66. component: resolve => require(['@/pages/course-report/index'],resolve)
  67. },
  68. {
  69. path: '/bank-report/:goodsId',
  70. name: '试卷报告',
  71. component: resolve => require(['@/pages/bank-report/index'],resolve)
  72. },
  73. {
  74. path: '/course-exam/:goodsId',
  75. name: '做题',
  76. component: resolve => require(['@/pages/course-exam/index'],resolve)
  77. },
  78. {
  79. path: '/bank-exam/:goodsId',
  80. name: '做题',
  81. component: resolve => require(['@/pages/bank-exam/index'],resolve)
  82. },
  83. {
  84. path: '/bank-exam-continue/:goodsId',
  85. name: '继续做题',
  86. component: resolve => require(['@/pages/bank-exam-continue/index'],resolve)
  87. },
  88. {
  89. path: '/bank-exam-all-explain/:recordId',
  90. name: '全部解析',
  91. component: resolve => require(['@/pages/bank-exam-all-explain/index'],resolve)
  92. },
  93. {
  94. path: '/bank-exam-wrong-explain/:recordId',
  95. name: '错题解析',
  96. component: resolve => require(['@/pages/bank-exam-wrong-explain/index'],resolve)
  97. },
  98. {
  99. path: '/bank-exam-explain/:goodsId',
  100. name: '题目解析',
  101. component: resolve => require(['@/pages/bank-exam-explain/index'],resolve)
  102. },
  103. {
  104. path: '/subject/wrong-type-bank/:type',
  105. name: '错题',
  106. component: resolve => require(['@/pages/subject/wrong-type-bank'],resolve)
  107. },
  108. {
  109. path: '/subject/wrong-bank/:examId',
  110. name: '错题',
  111. component: resolve => require(['@/pages/subject/wrong-bank'],resolve)
  112. },
  113. {
  114. path: '/subject/collect-type-bank/:type',
  115. name: '收藏',
  116. component: resolve => require(['@/pages/subject/collect-type-bank'],resolve)
  117. },
  118. {
  119. path: '/subject/collect-bank/:examId',
  120. name: '收藏',
  121. component: resolve => require(['@/pages/subject/collect-bank'],resolve)
  122. },
  123. {
  124. path: '/person-center',
  125. name: '个人中心',
  126. component: resolve => require(['@/pages/person-center/index'],resolve),
  127. beforeEnter:(to,from,next) => {
  128. let token = window.localStorage.getItem('token');
  129. if(token == null || token == '' || token === undefined){
  130. next('/login')
  131. }else{
  132. next();
  133. }
  134. },
  135. children:[
  136. {
  137. path: '/',
  138. // redirect: 'my-course',
  139. },
  140. {
  141. path: 'my-course',
  142. component: resolve => require(['@/pages/person-center/my-course/index'],resolve),
  143. name: '我的课程'
  144. },
  145. {
  146. path: 'play-record',
  147. component: resolve => require(['@/pages/person-center/play-record/index'],resolve),
  148. name: '播放记录'
  149. },
  150. {
  151. path: 'my-bank',
  152. component: resolve => require(['@/pages/person-center/my-bank/index'],resolve),
  153. name:'我的题库',
  154. children:[
  155. {
  156. path: '/',
  157. redirect: 'index',
  158. },
  159. {
  160. path: 'index',
  161. component: resolve => require(['@/pages/person-center/my-bank/index/index'],resolve),
  162. name: '我的题库',
  163. },
  164. {
  165. path: 'bank-detail/:goodsId',
  166. component: resolve => require(['@/pages/person-center/my-bank/bank-detail/index'],resolve),
  167. name: '题库详情'
  168. },
  169. {
  170. path: 'bank-statistics/:goodsId',
  171. component: resolve => require(['@/pages/person-center/my-bank/bank-statistics/index'],resolve),
  172. name: '做题统计'
  173. },
  174. {
  175. path: 'bank-explain-detail/:goodsId',
  176. component: resolve => require(['@/pages/person-center/my-bank/bank-explain-detail/index'],resolve),
  177. name: '详情'
  178. },
  179. ]
  180. },
  181. {
  182. path: 'bank-record',
  183. component: resolve => require(['@/pages/person-center/bank-record/index'],resolve),
  184. name: '做题记录'
  185. },
  186. {
  187. path: 'record-list/:goodsId',
  188. component: resolve => require(['@/pages/person-center/bank-record/record-list/index'],resolve),
  189. name: '更多记录'
  190. },
  191. {
  192. path: 'my-order',
  193. component: resolve => require(['@/pages/person-center/my-order/index'],resolve),
  194. name: '我的订单'
  195. },
  196. {
  197. path: 'my-examination',
  198. component: resolve => require(['@/pages/person-center/my-examination/index'],resolve),
  199. name: '我的考试'
  200. },
  201. {
  202. path: 'my-message',
  203. component: resolve => require(['@/pages/person-center/my-message/index'],resolve),
  204. name: '我的消息'
  205. },
  206. {
  207. path: 'my-info',
  208. component: resolve => require(['@/pages/person-center/my-info/index'],resolve),
  209. name: '我的资料'
  210. },
  211. {
  212. path: 'my-invoice',
  213. name: '我的发票',
  214. component: resolve => require(['@/pages/person-center/my-invoice/index'],resolve),
  215. children:[
  216. {
  217. path: '/',
  218. redirect: 'index',
  219. },
  220. {
  221. path: 'index',
  222. component: resolve => require(['@/pages/person-center/my-invoice/index/index'],resolve),
  223. name: '我的发票',
  224. },
  225. {
  226. path: 'add',
  227. component: resolve => require(['@/pages/person-center/my-invoice/add/index'],resolve),
  228. name: '申请发票',
  229. },
  230. ]
  231. },
  232. {
  233. path: 'my-classhour',
  234. component: resolve => require(['@/pages/person-center/my-classhour/index'],resolve),
  235. name: '我的学时',
  236. children:[
  237. {
  238. path: '/',
  239. redirect: 'index',
  240. },
  241. {
  242. path: 'index',
  243. component: resolve => require(['@/pages/person-center/my-classhour/index/index'],resolve),
  244. name: '我的学时',
  245. },
  246. {
  247. path: 'appointment',
  248. component: resolve => require(['@/pages/person-center/my-classhour/appointment/index'],resolve),
  249. name: '预约考试',
  250. },
  251. {
  252. path: 'appointment-add',
  253. component: resolve => require(['@/pages/person-center/my-classhour/appointment-add/index'],resolve),
  254. name: '预约考试',
  255. },
  256. {
  257. path: 'appointment-add-kp',
  258. component: resolve => require(['@/pages/person-center/my-classhour/appointment-add-kp/index'],resolve),
  259. name: '预约考试',
  260. }
  261. ]
  262. },
  263. ]
  264. }
  265. ]
  266. })
  267. const originalPush = Router.prototype.push
  268. Router.prototype.push = function push(location) {
  269. return originalPush.call(this, location).catch((err) => err)
  270. }
  271. router.beforeEach((to,from,next) => {
  272. if(to.path === '/login'){
  273. next();
  274. }else{
  275. let token = window.localStorage.getItem('token');
  276. //进入页面有token获取用户信息
  277. if(token){
  278. store.token = token;
  279. if(!store.state.userInfo) {
  280. //获取用户信息
  281. store.dispatch('getUserInfo')
  282. }
  283. next()
  284. } else {
  285. next()
  286. }
  287. }
  288. })
  289. export default router;