index.js 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import store from '../store/index'
  4. import request from '@/request'
  5. import { Notification, MessageBox, Message } from 'element-ui'
  6. import tools from '../common/tools'
  7. Vue.use(Router)
  8. let bankAdmin = ['/person-center/bank-record','/person-center/my-bank/index','/person-center/free-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/','/person-center/free-bank/bank-detail/','/person-center/free-bank/bank-statistics/','/person-center/free-bank/bank-explain-detail/','/bank-exam-continue/','/bank-exam/','/subject/collect-bank/','/bank-exam-explain/','/bank-report/'];
  9. let canToBank = null;
  10. let courseAdmin = ['/my-course-detail/','/course-exam/']
  11. let canToCourse = null;
  12. const router = new Router({
  13. mode:'history',
  14. scrollBehavior: () => ({ y: 0 }),
  15. routes: [
  16. {
  17. path: '*',
  18. redirect: '/home',
  19. component: resolve => require(['@/pages/home/index'],resolve)
  20. },
  21. {
  22. path: '/refresh',
  23. name: '刷新页',
  24. component: resolve => require(['@/pages/refresh'],resolve),
  25. },
  26. {
  27. path: '/home',
  28. name: '首页',
  29. component: resolve => require(['@/pages/home/index'],resolve),
  30. meta: {
  31. title: '祥粤云学堂-建造师造价师在线教育培训平台报名报考',
  32. content: {
  33. keywords: '祥粤云学堂-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
  34. description: '祥粤云学堂-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
  35. }
  36. }
  37. },
  38. {
  39. path: '/login',
  40. name: '登录',
  41. component: resolve => require(['@/pages/login/index'],resolve),
  42. meta: {
  43. title: '祥粤云学堂-建造师造价师在线教育培训平台报名报考',
  44. content: {
  45. keywords: '祥粤云学堂-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
  46. description: '祥粤云学堂-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
  47. }
  48. }
  49. },
  50. {
  51. path: '/about',
  52. name: '走进祥粤',
  53. component: resolve => require(['@/pages/about/index'],resolve),
  54. meta: {
  55. title: '祥粤云学堂-建造师造价师在线教育培训报名报考平台',
  56. content: {
  57. keywords: '祥粤云学堂-建造师造价师在线教育培训平台报名报考',
  58. description: '祥粤云学堂-建造师造价师在线教育培训平台报名报考'
  59. }
  60. }
  61. },
  62. {
  63. path: '/cart',
  64. name: '购物车',
  65. component: resolve => require(['@/pages/cart/index'],resolve),
  66. },
  67. {
  68. path: '/payment',
  69. name: '支付',
  70. component: resolve => require(['@/pages/payment/index'],resolve),
  71. meta: {
  72. title: '祥粤云学堂-建造师造价师在线教育培训平台报名报考',
  73. content: {
  74. keywords: '祥粤云学堂-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
  75. description: '祥粤云学堂-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
  76. }
  77. }
  78. },
  79. {
  80. path: '/payment-success',
  81. name: '支付成功',
  82. component: resolve => require(['@/pages/payment-success/index'],resolve),
  83. meta: {
  84. title: '祥粤云学堂-建造师造价师在线教育培训平台报名报考',
  85. content: {
  86. keywords: '祥粤云学堂-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
  87. description: '祥粤云学堂-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
  88. }
  89. }
  90. },
  91. {
  92. path: '/course-list',
  93. name: '课程列表',
  94. component: resolve => require(['@/pages/course-list/index'],resolve),
  95. meta: {
  96. title: '祥粤云学堂-一二级建造师、工程师、建筑师视频课程、免费直播课',
  97. content: {
  98. keywords: '祥粤云学堂-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
  99. description: '祥粤云学堂-提供一二级建造师视频学习、免费直播公开课 ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
  100. }
  101. }
  102. },
  103. {
  104. path: '/bank-list',
  105. name: '题库列表',
  106. component: resolve => require(['@/pages/bank-list/index'],resolve),
  107. meta: {
  108. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  109. content: {
  110. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  111. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  112. }
  113. }
  114. },
  115. {
  116. path: '/live-list',
  117. name: '直播列表',
  118. component: resolve => require(['@/pages/live-list/index'],resolve),
  119. meta: {
  120. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  121. content: {
  122. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  123. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  124. }
  125. }
  126. },
  127. {
  128. path: '/course-detail/:goodsId',
  129. name: '课程详情',
  130. component: resolve => require(['@/pages/goods-detail/course-detail'],resolve),
  131. meta: {
  132. title: '祥粤云学堂-一二级建造师、工程师、建筑师视频课程、免费直播课',
  133. content: {
  134. keywords: '祥粤云学堂-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
  135. description: '祥粤云学堂-提供一二级建造师视频学习、免费直播公开课 ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
  136. }
  137. }
  138. },
  139. {
  140. path: '/bank-detail/:goodsId',
  141. name: '题库详情',
  142. component: resolve => require(['@/pages/goods-detail/bank-detail'],resolve),
  143. meta: {
  144. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  145. content: {
  146. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  147. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  148. }
  149. }
  150. },
  151. {
  152. path: '/live-detail/:goodsId',
  153. name: '直播详情',
  154. component: resolve => require(['@/pages/goods-detail/live-detail'],resolve),
  155. meta: {
  156. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  157. content: {
  158. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  159. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  160. }
  161. }
  162. },
  163. {
  164. path: '/my-course-detail/:goodsId',
  165. name: '课程详情',
  166. component: resolve => require(['@/pages/course-detail/index'],resolve),
  167. meta: {
  168. title: '祥粤云学堂-一二级建造师、工程师、建筑师视频课程、免费直播课',
  169. content: {
  170. keywords: '祥粤云学堂-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
  171. description: '祥粤云学堂-提供一二级建造师视频学习、免费直播公开课 ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
  172. }
  173. }
  174. },
  175. {
  176. path: '/my-live-detail/:goodsId',
  177. name: '直播详情',
  178. component: resolve => require(['@/pages/live-detail/index'],resolve),
  179. meta: {
  180. title: '祥粤云学堂-一二级建造师、工程师、建筑师视频课程、免费直播课',
  181. content: {
  182. keywords: '祥粤云学堂-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
  183. description: '祥粤云学堂-提供一二级建造师视频学习、免费直播公开课 ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
  184. }
  185. }
  186. },
  187. {
  188. path: '/living-room/:channelId',
  189. // name: '课程详情',
  190. name: '直播页面详情',
  191. component: resolve => require(['@/pages/living-room/index'],resolve),
  192. meta: {
  193. title: '祥粤云学堂-一二级建造师、工程师、建筑师视频课程、免费直播课',
  194. content: {
  195. keywords: '祥粤云学堂-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
  196. description: '祥粤云学堂-提供一二级建造师视频学习、免费直播公开课 ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
  197. }
  198. }
  199. },
  200. {
  201. path: '/mock-countdown',
  202. name: '课程详情',
  203. component: resolve => require(['@/pages/mock-countdown/index'],resolve),
  204. meta: {
  205. title: '祥粤云学堂-一二级建造师、工程师、建筑师视频课程、免费直播课',
  206. content: {
  207. keywords: '祥粤云学堂-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
  208. description: '祥粤云学堂-提供一二级建造师视频学习、免费直播公开课 ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
  209. }
  210. }
  211. },
  212. {
  213. path: '/mock-report',
  214. name: '课程详情',
  215. component: resolve => require(['@/pages/mock-report/index'],resolve),
  216. meta: {
  217. title: '祥粤云学堂-一二级建造师、工程师、建筑师视频课程、免费直播课',
  218. content: {
  219. keywords: '祥粤云学堂-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
  220. description: '祥粤云学堂-提供一二级建造师视频学习、免费直播公开课 ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
  221. }
  222. }
  223. },
  224. {
  225. path: '/course-report',
  226. name: '试卷报告',
  227. component: resolve => require(['@/pages/course-report/index'],resolve),
  228. meta: {
  229. title: '祥粤云学堂-建造师造价师在线教育培训平台报名报考',
  230. content: {
  231. keywords: '祥粤云学堂-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
  232. description: '祥粤云学堂-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
  233. }
  234. }
  235. },
  236. {
  237. path: '/bank-report/:goodsId',
  238. name: '试卷报告',
  239. component: resolve => require(['@/pages/bank-report/index'],resolve),
  240. meta: {
  241. title: '祥粤云学堂-建造师造价师在线教育培训平台报名报考',
  242. content: {
  243. keywords: '祥粤云学堂-一级建造师,二级建造师,造价工程师,一级消防工程师,BIM,在线教育,职业教育,报考条件,报名时间,建造师注册,建造工程师',
  244. description: '祥粤云学堂-职业教育一站式学习平台,专注一建,二建,造价工程师,一级消防工程师,BIM等工程师技能知识培训服务热线:020-87085982'
  245. }
  246. }
  247. },
  248. {
  249. path: '/course-exam/:goodsId',
  250. name: '做题',
  251. component: resolve => require(['@/pages/course-exam/index'],resolve),
  252. meta: {
  253. title: '祥粤云学堂-一二级建造师、工程师、建筑师视频课程、免费直播课',
  254. content: {
  255. keywords: '祥粤云学堂-一级建造师视频课件,二级建造师视频课件,建筑师工程师学习视频课程',
  256. description: '祥粤云学堂-提供一二级建造师视频学习、免费直播公开课 ,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料。'
  257. }
  258. }
  259. },
  260. {
  261. path: '/bank-exam/:goodsId',
  262. name: '做题',
  263. component: resolve => require(['@/pages/bank-exam/index'],resolve),
  264. meta: {
  265. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  266. content: {
  267. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  268. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  269. }
  270. }
  271. },
  272. {
  273. path: '/mock-exam',
  274. name: '模考',
  275. component: resolve => require(['@/pages/mock-exam/index'],resolve),
  276. meta: {
  277. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  278. content: {
  279. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  280. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  281. }
  282. }
  283. },
  284. {
  285. path: '/bank-exam-continue/:goodsId',
  286. name: '继续做题',
  287. component: resolve => require(['@/pages/bank-exam-continue/index'],resolve),
  288. meta: {
  289. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  290. content: {
  291. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  292. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  293. }
  294. }
  295. },
  296. {
  297. path: '/bank-exam-all-explain/:recordId',
  298. name: '全部解析',
  299. component: resolve => require(['@/pages/bank-exam-all-explain/index'],resolve),
  300. meta: {
  301. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  302. content: {
  303. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  304. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  305. }
  306. }
  307. },
  308. {
  309. path: '/bank-exam-wrong-explain/:recordId',
  310. name: '错题解析',
  311. component: resolve => require(['@/pages/bank-exam-wrong-explain/index'],resolve),
  312. meta: {
  313. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  314. content: {
  315. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  316. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  317. }
  318. }
  319. },
  320. {
  321. path: '/mock-exam-all-explain/:recordId',
  322. name: '全部解析',
  323. component: resolve => require(['@/pages/mock-exam-all-explain/index'],resolve),
  324. meta: {
  325. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  326. content: {
  327. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  328. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  329. }
  330. }
  331. },
  332. {
  333. path: '/mock-exam-wrong-explain/:recordId',
  334. name: '错题解析',
  335. component: resolve => require(['@/pages/mock-exam-wrong-explain/index'],resolve),
  336. meta: {
  337. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  338. content: {
  339. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  340. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  341. }
  342. }
  343. },
  344. {
  345. path: '/bank-exam-explain/:goodsId',
  346. name: '题目解析',
  347. component: resolve => require(['@/pages/bank-exam-explain/index'],resolve),
  348. meta: {
  349. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  350. content: {
  351. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  352. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  353. }
  354. }
  355. },
  356. {
  357. path: '/subject/wrong-type-bank/:type',
  358. name: '错题',
  359. component: resolve => require(['@/pages/subject/wrong-type-bank'],resolve),
  360. meta: {
  361. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  362. content: {
  363. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  364. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  365. }
  366. }
  367. },
  368. {
  369. path: '/subject/wrong-bank/:examId',
  370. name: '错题',
  371. component: resolve => require(['@/pages/subject/wrong-bank'],resolve),
  372. meta: {
  373. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  374. content: {
  375. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  376. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  377. }
  378. }
  379. },
  380. {
  381. path: '/subject/collect-type-bank/:type',
  382. name: '收藏',
  383. component: resolve => require(['@/pages/subject/collect-type-bank'],resolve),
  384. meta: {
  385. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  386. content: {
  387. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  388. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  389. }
  390. }
  391. },
  392. {
  393. path: '/subject/collect-bank/:examId',
  394. name: '收藏',
  395. component: resolve => require(['@/pages/subject/collect-bank'],resolve),
  396. meta: {
  397. title: '祥粤云学堂-题库-一建二建试题下载_考试科目题库_考题答案_历年试题_在线真题_水平测试_历年真题_在线题库',
  398. content: {
  399. keywords: '祥粤云学堂-模拟试题练习,试题答案,一级建造师试题查找,二级建造师试题练习,题目类型,考试书籍,考试图书,考试教材',
  400. description: '祥粤云学堂-提供一二级建造师学习资料、教材教辅,一二级建造师考试专业培训辅导课程,免费试听,建造师内部习题资料、工程师教学辅导视频、建筑考试课件视频等资料'
  401. }
  402. }
  403. },
  404. {
  405. path: '/person-center',
  406. name: '个人中心',
  407. component: resolve => require(['@/pages/person-center/index'],resolve),
  408. beforeEnter:(to,from,next) => {
  409. let token = window.localStorage.getItem('token');
  410. if(token == null || token == '' || token === undefined){
  411. next('/login')
  412. }else{
  413. next();
  414. }
  415. },
  416. children:[
  417. {
  418. path: '/',
  419. // redirect: 'my-course',
  420. },
  421. {
  422. path: 'my-course',
  423. component: resolve => require(['@/pages/person-center/my-course/index'],resolve),
  424. name: '我的课程'
  425. },
  426. {
  427. path: 'my-live',
  428. component: resolve => require(['@/pages/person-center/my-live/index'],resolve),
  429. name: '我的直播课'
  430. },
  431. {
  432. path: 'play-record',
  433. component: resolve => require(['@/pages/person-center/play-record/index'],resolve),
  434. name: '播放记录'
  435. },
  436. {
  437. path: 'my-bank',
  438. component: resolve => require(['@/pages/person-center/my-bank/index'],resolve),
  439. name:'自购题卷',
  440. children:[
  441. {
  442. path: '/',
  443. redirect: 'index',
  444. },
  445. {
  446. path: 'index',
  447. component: resolve => require(['@/pages/person-center/my-bank/index/index'],resolve),
  448. name: '自购题卷',
  449. },
  450. {
  451. path: 'bank-detail/:goodsId',
  452. component: resolve => require(['@/pages/person-center/my-bank/bank-detail/index'],resolve),
  453. name: '题库详情'
  454. },
  455. {
  456. path: 'bank-statistics/:goodsId',
  457. component: resolve => require(['@/pages/person-center/my-bank/bank-statistics/index'],resolve),
  458. name: '做题统计'
  459. },
  460. {
  461. path: 'bank-explain-detail/:goodsId',
  462. component: resolve => require(['@/pages/person-center/my-bank/bank-explain-detail/index'],resolve),
  463. name: '详情'
  464. },
  465. ]
  466. },
  467. {
  468. path: 'free-bank',
  469. component: resolve => require(['@/pages/person-center/free-bank/index'],resolve),
  470. name:'赠送题卷',
  471. children:[
  472. {
  473. path: '/',
  474. redirect: 'index',
  475. },
  476. {
  477. path: 'index',
  478. component: resolve => require(['@/pages/person-center/free-bank/index/index'],resolve),
  479. name: '赠送题卷',
  480. },
  481. {
  482. path: 'bank-detail/:goodsId',
  483. component: resolve => require(['@/pages/person-center/free-bank/bank-detail/index'],resolve),
  484. name: '题库详情'
  485. },
  486. {
  487. path: 'bank-statistics/:goodsId',
  488. component: resolve => require(['@/pages/person-center/free-bank/bank-statistics/index'],resolve),
  489. name: '做题统计'
  490. },
  491. {
  492. path: 'bank-explain-detail/:goodsId',
  493. component: resolve => require(['@/pages/person-center/free-bank/bank-explain-detail/index'],resolve),
  494. name: '详情'
  495. },
  496. ]
  497. },
  498. {
  499. path: 'bank-record',
  500. component: resolve => require(['@/pages/person-center/bank-record/index'],resolve),
  501. name: '做题记录'
  502. },
  503. {
  504. path: 'mock-record',
  505. component: resolve => require(['@/pages/person-center/mock-record/index'],resolve),
  506. name: '模考记录'
  507. },
  508. {
  509. path: 'my-collect',
  510. component: resolve => require(['@/pages/person-center/my-collect/index'],resolve),
  511. name: '收藏集'
  512. },
  513. {
  514. path: 'my-wrong',
  515. component: resolve => require(['@/pages/person-center/my-wrong/index'],resolve),
  516. name: '错题集'
  517. },
  518. {
  519. path: 'record-list/:goodsId',
  520. component: resolve => require(['@/pages/person-center/bank-record/record-list/index'],resolve),
  521. name: '更多记录'
  522. },
  523. {
  524. path: 'mock-record-list/:goodsId',
  525. component: resolve => require(['@/pages/person-center/mock-record/record-list/index'],resolve),
  526. name: '更多模考记录'
  527. },
  528. {
  529. path: 'my-order',
  530. component: resolve => require(['@/pages/person-center/my-order/index'],resolve),
  531. name: '我的订单'
  532. },
  533. {
  534. path: 'my-examination',
  535. component: resolve => require(['@/pages/person-center/my-examination/index'],resolve),
  536. name: '我的考试'
  537. },
  538. {
  539. path: 'my-mock',
  540. component: resolve => require(['@/pages/person-center/my-mock/index'],resolve),
  541. name: '我的模考'
  542. },
  543. {
  544. path: 'my-message',
  545. component: resolve => require(['@/pages/person-center/my-message/index'],resolve),
  546. name: '我的消息'
  547. },
  548. {
  549. path: 'my-info',
  550. component: resolve => require(['@/pages/person-center/my-info/index'],resolve),
  551. name: '我的资料'
  552. },
  553. {
  554. path: 'my-invoice',
  555. name: '我的发票',
  556. component: resolve => require(['@/pages/person-center/my-invoice/index'],resolve),
  557. children:[
  558. {
  559. path: '/',
  560. redirect: 'index',
  561. },
  562. {
  563. path: 'index',
  564. component: resolve => require(['@/pages/person-center/my-invoice/index/index'],resolve),
  565. name: '我的发票',
  566. },
  567. {
  568. path: 'add',
  569. component: resolve => require(['@/pages/person-center/my-invoice/add/index'],resolve),
  570. name: '申请发票',
  571. },
  572. ]
  573. },
  574. {
  575. path: 'my-classhour',
  576. component: resolve => require(['@/pages/person-center/my-classhour/index'],resolve),
  577. name: '我的学时',
  578. children:[
  579. {
  580. path: '/',
  581. redirect: 'index',
  582. },
  583. {
  584. path: 'index',
  585. component: resolve => require(['@/pages/person-center/my-classhour/index/index'],resolve),
  586. name: '我的学时',
  587. },
  588. {
  589. path: 'appointment',
  590. component: resolve => require(['@/pages/person-center/my-classhour/appointment/index'],resolve),
  591. name: '预约考试',
  592. },
  593. {
  594. path: 'appointment-add',
  595. component: resolve => require(['@/pages/person-center/my-classhour/appointment-add/index'],resolve),
  596. name: '预约考试',
  597. },
  598. {
  599. path: 'appointment-add-kp',
  600. component: resolve => require(['@/pages/person-center/my-classhour/appointment-add-kp/index'],resolve),
  601. name: '预约考试',
  602. }
  603. ]
  604. },
  605. ]
  606. }
  607. ]
  608. })
  609. const originalPush = Router.prototype.push
  610. Router.prototype.push = function push(location) {
  611. return originalPush.call(this, location).catch((err) => err)
  612. }
  613. router.beforeEach((to,from,next) => {
  614. console.log(to,'to')
  615. console.log(from,'from')
  616. if (to.meta.content) {
  617. let head = document.getElementsByTagName('head');
  618. let meta = document.createElement('meta');
  619. document.querySelector('meta[name="keywords"]').setAttribute('content', to.meta.content.keywords)
  620. document.querySelector('meta[name="description"]').setAttribute('content', to.meta.content.description)
  621. meta.content = to.meta.content;
  622. head[0].appendChild(meta)
  623. }
  624. if (to.meta.title) {
  625. document.title = to.meta.title;
  626. }
  627. if(to.path === '/login'){
  628. next();
  629. }else{
  630. let token = window.localStorage.getItem('token');
  631. //进入页面有token获取用户信息
  632. if(token){
  633. store.token = token;
  634. if(!store.state.userInfo) {
  635. //获取用户信息
  636. store.dispatch('getUserInfo')
  637. store.dispatch('getbusinessList')
  638. }
  639. // //题库页面要检测是否需要锁定
  640. let isBankLock = bankAdmin.some(item => {
  641. return to.path.indexOf(item) != -1
  642. })
  643. console.log(isBankLock,'isBankLock')
  644. if(isBankLock) {
  645. //没有执行定时器,开启锁定
  646. if(!canToBank) {
  647. request
  648. .lockLockStatus({
  649. action: "bank",
  650. uuid:tools.getUuid()
  651. })
  652. .then((res) => {
  653. //有其他端在操作,不能学习
  654. Message({
  655. type: "warning",
  656. message: res.msg,
  657. });
  658. if(from.path=='/') {
  659. next('/')
  660. }
  661. }).catch(err => {
  662. //可以学习,开启锁定
  663. canToBank = 1;
  664. request.lockLockAction({
  665. action:'bank',
  666. uuid:tools.getUuid()
  667. }).then(res => {
  668. })
  669. canToBank = setInterval(() => {
  670. request.lockLockAction({
  671. action:'bank',
  672. uuid:tools.getUuid()
  673. }).then(res => {
  674. })
  675. }, 10000);
  676. next()
  677. })
  678. return;
  679. } else {
  680. //正在执行定时器,可以直接进入
  681. next()
  682. }
  683. return;
  684. } else {
  685. //从题库页面离开删除锁定
  686. let isLeaveBank = bankAdmin.some(item => {
  687. return from.path.indexOf(item) != -1
  688. })
  689. if(isLeaveBank) {
  690. clearInterval(canToBank)
  691. canToBank = null;
  692. request.lockDelLock({
  693. action:'bank',
  694. uuid:tools.getUuid()
  695. }).then(res => {
  696. })
  697. }
  698. }
  699. let isCourseLock = courseAdmin.some(item => {
  700. return to.path.indexOf(item) != -1
  701. })
  702. console.log(isCourseLock,'isCourseLock')
  703. if(isCourseLock) {
  704. //没有执行定时器,开启锁定
  705. if(!canToCourse) {
  706. request.goodsDetail(to.params.goodsId).then(res => {
  707. //继续教育锁定
  708. // if(res.data.educationName == '继续教育') {
  709. request
  710. .lockLockStatus({
  711. action: "jxjy",
  712. uuid:tools.getUuid()
  713. })
  714. .then((res) => {
  715. //有其他端在操作,不能学习
  716. Message({
  717. type: "warning",
  718. message: res.msg,
  719. });
  720. if(from.path=='/') {
  721. next('/')
  722. }
  723. }).catch(err => {
  724. //可以学习,开启锁定
  725. canToCourse = 1;
  726. request.lockLockAction({
  727. action:'jxjy',
  728. uuid:tools.getUuid()
  729. }).then(res => {
  730. })
  731. canToCourse = setInterval(() => {
  732. request.lockLockAction({
  733. action:'jxjy',
  734. uuid:tools.getUuid()
  735. }).then(res => {
  736. })
  737. }, 10000);
  738. next()
  739. })
  740. // } else {
  741. // next()
  742. // }
  743. })
  744. return;
  745. } else {
  746. //正在执行定时器,可以直接进入
  747. next()
  748. }
  749. return;
  750. } else {
  751. //非题库页面删除锁定
  752. let isLeaveCouese = courseAdmin.some(item => {
  753. return from.path.indexOf(item) != -1
  754. })
  755. if(isLeaveCouese) {
  756. clearInterval(canToCourse)
  757. canToCourse = null;
  758. request.lockDelLock({
  759. action:'jxjy',
  760. uuid:tools.getUuid()
  761. }).then(res => {
  762. })
  763. }
  764. }
  765. next()
  766. } else {
  767. next()
  768. }
  769. }
  770. })
  771. export default router;