index.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. import Vue from 'vue';
  2. import VueRouter from 'vue-router';
  3. import store from '@/store/index';
  4. const jwt = require('jsonwebtoken');
  5. const originalPush = VueRouter.prototype.push;
  6. VueRouter.prototype.push = function push(location) {
  7. return originalPush.call(this, location).catch((err) => err);
  8. };
  9. Vue.use(VueRouter);
  10. const web = [
  11. {
  12. path: '/',
  13. name: 'index',
  14. meta: { title: '网站首页' },
  15. component: () => import('../views/index.vue'),
  16. },
  17. {
  18. path: '/website',
  19. name: 'website',
  20. component: () => import('../views/website.vue'),
  21. children: [
  22. {
  23. path: '/news/index',
  24. name: 'news_index',
  25. meta: { title: '新闻咨询' },
  26. component: () => import('../views/news/index.vue'),
  27. },
  28. {
  29. path: '/news/list',
  30. name: 'news_list',
  31. meta: { title: '新闻咨询-列表页' },
  32. component: () => import('../views/news/list.vue'),
  33. },
  34. {
  35. path: '/service/index',
  36. name: 'service_index',
  37. meta: { title: '科技服务' },
  38. component: () => import('../views/service/index.vue'),
  39. },
  40. {
  41. path: '/service/policy',
  42. name: 'service_policy',
  43. meta: { title: '科技服务-高企政策服务' },
  44. component: () => import('../views/service/policy.vue'),
  45. },
  46. {
  47. path: '/service/ticket',
  48. name: 'service_ticket',
  49. meta: { title: '科技服务-高企申报服务' },
  50. component: () => import('../views/service/ticket.vue'),
  51. },
  52. {
  53. path: '/service/register',
  54. name: 'service_register',
  55. meta: { title: '用户注册' },
  56. component: () => import('../views/service/register.vue'),
  57. },
  58. {
  59. path: '/market/index',
  60. name: 'market_index',
  61. meta: { title: '技术超市' },
  62. component: () => import('../views/market/index.vue'),
  63. },
  64. {
  65. path: '/market/list',
  66. name: 'market_list',
  67. meta: { title: '技术超市-列表页' },
  68. component: () => import('../views/market/list.vue'),
  69. },
  70. {
  71. path: '/train/index',
  72. name: 'train_index',
  73. meta: { title: '宣传培训' },
  74. component: () => import('../views/train/index.vue'),
  75. },
  76. {
  77. path: '/dynamic/index',
  78. name: 'dynamic_index',
  79. meta: { title: '数据动态' },
  80. component: () => import('../views/dynamic/index.vue'),
  81. },
  82. ],
  83. },
  84. // 管理登录
  85. {
  86. path: '/login',
  87. name: 'login',
  88. meta: { title: '管理登录' },
  89. component: () => import('../views/login.vue'),
  90. },
  91. // 宣传培训详情页
  92. {
  93. path: '/train/detail',
  94. name: 'train_detail',
  95. meta: { title: '宣传培训-详情页' },
  96. component: () => import('../views/train/detail.vue'),
  97. },
  98. {
  99. path: '/adminCenter/homeIndex',
  100. name: 'adminCenter',
  101. component: () => import('../views/adminCenter/index.vue'),
  102. children: [
  103. {
  104. path: '/adminCenter/homeIndex',
  105. name: 'admin_homeIndex',
  106. meta: { title: '首页' },
  107. component: () => import('../views/adminCenter/homeIndex/index.vue'),
  108. },
  109. {
  110. path: '/adminCenter/news',
  111. name: 'admin_news',
  112. meta: { title: '新闻管理' },
  113. component: () => import('../views/adminCenter/news/index.vue'),
  114. },
  115. {
  116. path: '/adminCenter/news/detail',
  117. name: 'admin_news_detail',
  118. meta: { title: '新闻管理' },
  119. component: () => import('../views/adminCenter/news/detail.vue'),
  120. },
  121. {
  122. path: '/adminCenter/openinfo',
  123. name: 'admin_openinfo',
  124. meta: { title: '信息公开管理' },
  125. component: () => import('../views/adminCenter/openinfo/index.vue'),
  126. },
  127. {
  128. path: '/adminCenter/openinfo/detail',
  129. name: 'admin_openinfo_detail',
  130. meta: { title: '信息公开信息管理' },
  131. component: () => import('../views/adminCenter/openinfo/detail.vue'),
  132. },
  133. {
  134. path: '/adminCenter/product',
  135. name: 'admin_product',
  136. meta: { title: '科技成果' },
  137. component: () => import('../views/adminCenter/product/index.vue'),
  138. },
  139. {
  140. path: '/adminCenter/product/detail',
  141. name: 'admin_product_detail',
  142. meta: { title: '科技成果' },
  143. component: () => import('../views/adminCenter/product/detail.vue'),
  144. },
  145. {
  146. path: '/adminCenter/patent',
  147. name: 'admin_patent',
  148. meta: { title: '专利管理' },
  149. component: () => import('../views/adminCenter/patent/index.vue'),
  150. },
  151. {
  152. path: '/adminCenter/patent/detail',
  153. name: 'admin_patent_detail',
  154. meta: { title: '专利管理' },
  155. component: () => import('../views/adminCenter/patent/detail.vue'),
  156. },
  157. {
  158. path: '/adminCenter/roadShow',
  159. name: 'admin_road_show',
  160. meta: { title: '路演管理' },
  161. component: () => import('../views/adminCenter/road_show/index.vue'),
  162. },
  163. {
  164. path: '/adminCenter/roadShow/detail',
  165. name: 'admin_road_show_detail',
  166. meta: { title: '路演管理' },
  167. component: () => import('../views/adminCenter/road_show/detail.vue'),
  168. },
  169. {
  170. path: '/adminCenter/expert',
  171. name: 'admin_expert',
  172. meta: { title: '专家管理' },
  173. component: () => import('../views/adminCenter/expert/index.vue'),
  174. },
  175. {
  176. path: '/adminCenter/expert/detail',
  177. name: 'admin_expert_detail',
  178. meta: { title: '专家管理' },
  179. component: () => import('../views/adminCenter/expert/detail.vue'),
  180. },
  181. {
  182. path: '/adminCenter/organization',
  183. name: 'admin_organization',
  184. meta: { title: '企业管理' },
  185. component: () => import('../views/adminCenter/organization/index.vue'),
  186. },
  187. {
  188. path: '/adminCenter/organization/detail',
  189. name: 'admin_organization_detail',
  190. meta: { title: '企业管理' },
  191. component: () => import('../views/adminCenter/organization/detail.vue'),
  192. },
  193. {
  194. path: '/adminCenter/mechanism',
  195. name: 'admin_mechanism',
  196. meta: { title: '机构管理' },
  197. component: () => import('../views/adminCenter/mechanism/index.vue'),
  198. },
  199. {
  200. path: '/adminCenter/mechanism/detail',
  201. name: 'admin_mechanism_detail',
  202. meta: { title: '机构管理' },
  203. component: () => import('../views/adminCenter/mechanism/detail.vue'),
  204. },
  205. {
  206. path: '/adminCenter/online',
  207. name: 'admin_online',
  208. meta: { title: '线上管理' },
  209. component: () => import('../views/adminCenter/online/index.vue'),
  210. },
  211. {
  212. path: '/adminCenter/online/detail',
  213. name: 'admin_online_detail',
  214. meta: { title: '线上管理' },
  215. component: () => import('../views/adminCenter/online/detail.vue'),
  216. },
  217. {
  218. path: '/adminCenter/online/file',
  219. name: 'admin_online_file',
  220. meta: { title: '线上管理' },
  221. component: () => import('../views/adminCenter/online/file.vue'),
  222. },
  223. // {
  224. // path: '/adminCenter/policy',
  225. // name: 'admin_policy',
  226. // meta: { title: '高企政策服务管理' },
  227. // component: () => import('../views/adminCenter/policy/index.vue'),
  228. // },
  229. // {
  230. // path: '/adminCenter/policy/detail',
  231. // name: 'admin_online_detail',
  232. // meta: { title: '高企政策服务管理' },
  233. // component: () => import('../views/adminCenter/policy/detail.vue'),
  234. // },
  235. // 05-07
  236. {
  237. path: '/adminCenter/policy/list',
  238. name: 'admin_policy_list',
  239. meta: { title: '创新券管理' },
  240. component: () => import('../views/adminCenter/policy/list.vue'),
  241. },
  242. {
  243. path: '/adminCenter/policy/create',
  244. name: 'admin_policy_create',
  245. meta: { title: '添加创新券' },
  246. component: () => import('../views/adminCenter/policy/create.vue'),
  247. },
  248. {
  249. path: '/adminCenter/policy/apply',
  250. name: 'admin_policy_apply',
  251. meta: { title: '创新券申领管理' },
  252. component: () => import('../views/adminCenter/policy/apply.vue'),
  253. },
  254. {
  255. path: '/adminCenter/policy/apply_check',
  256. name: 'admin_policy_apply_check',
  257. meta: { title: '创新券申领审核管理' },
  258. component: () => import('../views/adminCenter/policy/apply_check.vue'),
  259. },
  260. {
  261. path: '/adminCenter/policy/apply_info',
  262. name: 'admin_policy_apply_info',
  263. meta: { title: '创新券申领审核结果查看' },
  264. component: () => import('../views/adminCenter/policy/apply_info.vue'),
  265. },
  266. {
  267. path: '/adminCenter/order/list',
  268. name: 'admin_order_list',
  269. meta: { title: '服务订单' },
  270. component: () => import('../views/adminCenter/order/list.vue'),
  271. },
  272. {
  273. path: '/adminCenter/ticket',
  274. name: 'admin_ticket',
  275. meta: { title: '创新劵服务管理' },
  276. component: () => import('../views/adminCenter/ticket/index.vue'),
  277. },
  278. {
  279. path: '/adminCenter/ticket/detail',
  280. name: 'admin_ticket_detail',
  281. meta: { title: '创新劵服务-信息管理' },
  282. component: () => import('../views/adminCenter/ticket/detail.vue'),
  283. },
  284. {
  285. path: '/adminCenter/ticket/toGrant',
  286. name: 'admin_ticket_toGrant',
  287. meta: { title: '创新劵发放' },
  288. component: () => import('../views/adminCenter/ticket/toGrant.vue'),
  289. },
  290. // 企业信息
  291. {
  292. path: '/adminCenter/company/basic',
  293. name: 'company_basic_index',
  294. meta: { title: '企业基本信息' },
  295. component: () => import('../views/adminCenter/company/basic/index.vue'),
  296. },
  297. {
  298. path: '/adminCenter/company/product',
  299. name: 'company_product_index',
  300. meta: { title: '技术超市' },
  301. component: () => import('../views/adminCenter/company/product/index.vue'),
  302. },
  303. {
  304. path: '/adminCenter/company/product/detail',
  305. name: 'company_product_index',
  306. meta: { title: '技术超市-信息管理' },
  307. component: () => import('../views/adminCenter/company/product/detail.vue'),
  308. },
  309. {
  310. path: '/adminCenter/company/cognizance',
  311. name: 'company_cognizance_index',
  312. meta: { title: '高企申报' },
  313. component: () => import('../views/adminCenter/company/cognizance/index.vue'),
  314. },
  315. {
  316. path: '/adminCenter/company/cognizance/detail',
  317. name: 'company_cognizance_detail',
  318. meta: { title: '高企申报-信息管理' },
  319. component: () => import('../views/adminCenter/company/cognizance/detail.vue'),
  320. },
  321. {
  322. path: '/adminCenter/company/cognizance/info',
  323. name: 'company_cognizance_info',
  324. meta: { title: '高企申报-查看审核' },
  325. component: () => import('../views/adminCenter/company/cognizance/info.vue'),
  326. },
  327. {
  328. path: '/adminCenter/company/coupons',
  329. name: 'company_coupons_index',
  330. meta: { title: '创新券申领' },
  331. component: () => import('../views/adminCenter/company/coupons/index.vue'),
  332. },
  333. {
  334. path: '/adminCenter/company/coupons/detail',
  335. name: 'company_coupons_detail',
  336. meta: { title: '创新券申领-信息管理' },
  337. component: () => import('../views/adminCenter/company/coupons/detail.vue'),
  338. },
  339. {
  340. path: '/adminCenter/company/policyApply/index',
  341. name: 'company_policyApply_index',
  342. meta: { title: '创新券申领结果' },
  343. component: () => import('../views/adminCenter/company/policy_apply/index.vue'),
  344. },
  345. {
  346. path: '/adminCenter/company/policyApply/info',
  347. name: 'company_policyApply_info',
  348. meta: { title: '创新券申领结果' },
  349. component: () => import('../views/adminCenter/company/policy_apply/apply_info.vue'),
  350. },
  351. {
  352. path: '/adminCenter/company/policyApply/order',
  353. name: 'company_policyApply_order',
  354. meta: { title: '创新券订单' },
  355. component: () => import('../views/adminCenter/company/policy_apply/order_apply.vue'),
  356. },
  357. {
  358. path: '/adminCenter/company/policyOrder/index',
  359. name: 'company_policyOrder_index',
  360. meta: { title: '创新券订单' },
  361. component: () => import('../views/adminCenter/company/policy_order/index.vue'),
  362. },
  363. // 中介机构
  364. {
  365. path: '/adminCenter/inter/basic',
  366. name: 'inter_basic_index',
  367. meta: { title: '机构基本信息' },
  368. component: () => import('../views/adminCenter/inter/basic/index.vue'),
  369. },
  370. {
  371. path: '/adminCenter/inter/ticket',
  372. name: 'inter_ticket_index',
  373. meta: { title: '高企申报审核管理' },
  374. component: () => import('../views/adminCenter/inter/ticket/index.vue'),
  375. },
  376. {
  377. path: '/adminCenter/inter/ticket/detail',
  378. name: 'inter_ticket_detail',
  379. meta: { title: '高企申报-信息审核管理' },
  380. component: () => import('../views/adminCenter/inter/ticket/detail.vue'),
  381. },
  382. // 专家用户
  383. {
  384. path: '/adminCenter/experts/basic',
  385. name: 'experts_basic_index',
  386. meta: { title: '专家基本信息' },
  387. component: () => import('../views/adminCenter/experts/basic/index.vue'),
  388. },
  389. {
  390. path: '/adminCenter/experts/product',
  391. name: 'experts_product_index',
  392. meta: { title: '技术超市' },
  393. component: () => import('../views/adminCenter/experts/product/index.vue'),
  394. },
  395. {
  396. path: '/adminCenter/experts/product/detail',
  397. name: 'experts_product_detail',
  398. meta: { title: '技术超市-信息管理' },
  399. component: () => import('../views/adminCenter/experts/product/detail.vue'),
  400. },
  401. ],
  402. },
  403. ];
  404. const routes = [...web];
  405. const router = new VueRouter({
  406. mode: 'history',
  407. base: process.env.VUE_APP_ROUTER,
  408. routes,
  409. });
  410. router.beforeEach((to, from, next) => {
  411. document.title = `${to.meta.title} `;
  412. const token = localStorage.getItem('token');
  413. if (to.path == '/adminCenter/homeIndex') {
  414. if (!token) {
  415. next('/login');
  416. } else {
  417. let user = jwt.decode(token);
  418. store.commit('setUser', user, { root: true });
  419. next();
  420. }
  421. } else {
  422. let user = jwt.decode(token);
  423. store.commit('setUser', user, { root: true });
  424. next();
  425. }
  426. });
  427. export default router;