index.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. import Vue from 'vue';
  2. import VueRouter from 'vue-router';
  3. import store from '@/store/index';
  4. Vue.use(VueRouter);
  5. const routes = [
  6. // 首页
  7. {
  8. path: '/',
  9. name: 'index',
  10. meta: { title: '首页', isleftarrow: false },
  11. component: () => import('../views/index.vue'),
  12. },
  13. // 直播大厅
  14. {
  15. path: '/live/index',
  16. name: 'live_index',
  17. meta: { title: '直播大厅', isleftarrow: false },
  18. component: () => import('../views/live/index.vue'),
  19. },
  20. {
  21. path: '/live/detail',
  22. name: 'live_detail',
  23. meta: { title: '直播详情', isleftarrow: true },
  24. component: () => import('../views/live/detail.vue'),
  25. },
  26. // 科技超市
  27. {
  28. path: '/market/index',
  29. name: 'market_index',
  30. meta: { title: '科技超市', isleftarrow: false },
  31. component: () => import('../views/market/index.vue'),
  32. },
  33. {
  34. path: '/market/productDetail',
  35. name: 'market_productDetail',
  36. meta: { title: '科技超市详情', isleftarrow: true },
  37. component: () => import('../views/market/productDetail.vue'),
  38. },
  39. {
  40. path: '/market/exportDetail',
  41. name: 'market_exportDetail',
  42. meta: { title: '专家详情', isleftarrow: true },
  43. component: () => import('../views/market/exportDetail.vue'),
  44. },
  45. // 创新服务
  46. {
  47. path: '/service/index',
  48. name: 'service_index',
  49. meta: { title: '创新服务', isleftarrow: false },
  50. component: () => import('../views/service/index.vue'),
  51. },
  52. {
  53. path: '/service/detail',
  54. name: 'service_detail',
  55. meta: { title: '创新服务', isleftarrow: true },
  56. component: () => import('../views/service/detail.vue'),
  57. },
  58. // 个人中心
  59. {
  60. path: '/user/index',
  61. name: 'user_index',
  62. meta: { title: '个人中心', isleftarrow: false },
  63. component: () => import('../views/user/index.vue'),
  64. },
  65. // 用户-我的发布
  66. {
  67. path: '/userCenter/myProduct/index',
  68. name: 'myProduct_index',
  69. meta: { title: '我的发布', isleftarrow: true },
  70. component: () => import('../views/userCenter/myProduct/index.vue'),
  71. },
  72. // 用户-事项管理
  73. {
  74. path: '/userCenter/matter/index',
  75. name: 'matter_index',
  76. meta: { title: '事项管理', isleftarrow: true },
  77. component: () => import('../views/userCenter/matter/index.vue'),
  78. },
  79. // 用户-展会管理
  80. {
  81. path: '/userCenter/dock/index',
  82. name: 'dock_index',
  83. meta: { title: '展会管理', isleftarrow: true },
  84. component: () => import('../views/userCenter/dock/index.vue'),
  85. },
  86. // 用户-基本信息
  87. {
  88. path: '/userCenter/user/index',
  89. name: 'user_index',
  90. meta: { title: '基本信息', isleftarrow: true },
  91. component: () => import('../views/userCenter/user/index.vue'),
  92. },
  93. // 用户-退出登录
  94. {
  95. path: '/userCenter/out/index',
  96. name: 'user_index',
  97. meta: { title: '个人中心', isleftarrow: true },
  98. component: () => import('../views/userCenter/out/index.vue'),
  99. },
  100. // 管理用户菜单
  101. {
  102. path: '/adminCenter/user/index',
  103. name: 'adminCenter_user_index',
  104. meta: { title: '用户管理', isleftarrow: true },
  105. component: () => import('../views/adminCenter/user/index.vue'),
  106. },
  107. {
  108. path: '/adminCenter/user/detail',
  109. name: 'adminCenter_user_detail',
  110. meta: { title: '审核/查看用户', isleftarrow: true },
  111. component: () => import('../views/adminCenter/user/detail.vue'),
  112. },
  113. {
  114. path: '/adminCenter/duijiehui/index',
  115. name: 'adminCenter_duijiehui_index',
  116. meta: { title: '展会管理', isleftarrow: true },
  117. component: () => import('../views/adminCenter/duijiehui/index.vue'),
  118. },
  119. {
  120. path: '/adminCenter/duijiehui/add',
  121. name: 'adminCenter_duijiehui_add',
  122. meta: { title: '展会信息管理', isleftarrow: true },
  123. component: () => import('../views/adminCenter/duijiehui/add.vue'),
  124. },
  125. {
  126. path: '/adminCenter/enterpriseProduct/index',
  127. name: 'adminCenter_enterpriseProduct',
  128. meta: { title: '审核管理', isleftarrow: true },
  129. component: () => import('../views/adminCenter/enterpriseProduct/index.vue'),
  130. },
  131. {
  132. path: '/adminCenter/enterpriseProduct/detail',
  133. name: 'adminCenter_enterpriseProduct',
  134. meta: { title: '产品信息管理', isleftarrow: true },
  135. component: () => import('../views/adminCenter/enterpriseProduct/detail.vue'),
  136. },
  137. {
  138. path: '/adminCenter/transaction/index',
  139. name: 'adminCenter_transaction',
  140. meta: { title: '交易审核管理', isleftarrow: true },
  141. component: () => import('../views/adminCenter/transaction/index.vue'),
  142. },
  143. {
  144. path: '/adminCenter/transaction/detail',
  145. name: 'adminCenter_transaction',
  146. meta: { title: '交易信息管理', isleftarrow: true },
  147. component: () => import('../views/adminCenter/transaction/detail.vue'),
  148. },
  149. // 登录
  150. {
  151. path: '/login',
  152. name: 'login',
  153. meta: { title: '登录', isleftarrow: true },
  154. component: () => import('../views/login.vue'),
  155. },
  156. ];
  157. const router = new VueRouter({
  158. mode: 'history',
  159. base: process.env.NODE_ENV === 'development' ? '' : process.env.VUE_APP_ROUTER,
  160. routes,
  161. });
  162. router.beforeEach(async (to, form, next) => {
  163. if (to.name == 'user_index') {
  164. let res = await store.dispatch('login/toGetUser');
  165. if (res) {
  166. next();
  167. } else {
  168. next({ name: 'login' });
  169. }
  170. } else {
  171. let res = await store.dispatch('login/toGetUser');
  172. next();
  173. }
  174. });
  175. const originalPush = VueRouter.prototype.push;
  176. VueRouter.prototype.push = function push(location, onResolve, onReject) {
  177. if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject);
  178. return originalPush.call(this, location).catch(err => err);
  179. };
  180. export default router;