index.js 36 KB

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