index.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. import { createRouter, createWebHistory } from 'vue-router'
  2. import { UserStore } from '@/store/user'
  3. export const Layout = () => import('@/layout/index.vue')
  4. import axios from 'axios'
  5. const router = createRouter({
  6. history: createWebHistory(import.meta.env.BASE_URL),
  7. routes: [
  8. {
  9. path: '/',
  10. redirect: '/one'
  11. },
  12. {
  13. path: '/one',
  14. name: 'one',
  15. meta: { title: '产学研用协同创新数字化平台' },
  16. component: () => import('@/views/one/index.vue')
  17. },
  18. {
  19. path: '/two',
  20. name: 'two',
  21. meta: { title: '产学研用协同创新数字化平台-信息发布' },
  22. component: () => import('@/views/two/index.vue')
  23. },
  24. {
  25. path: '/thr',
  26. name: 'thr',
  27. meta: { title: '产学研用协同创新数字化平台-创新中心' },
  28. component: () => import('@/views/thr/index.vue')
  29. },
  30. {
  31. path: '/four',
  32. name: 'four',
  33. meta: { title: '产学研用协同创新数字化平台-信息检索' },
  34. component: () => import('@/views/four/index.vue')
  35. },
  36. {
  37. path: '/five',
  38. name: 'five',
  39. meta: { title: '产学研用协同创新数字化平台-双创活动' },
  40. component: () => import('@/views/five/index.vue')
  41. },
  42. {
  43. path: '/six',
  44. name: 'six',
  45. meta: { title: '产学研用协同创新数字化平台-中试平台' },
  46. component: () => import('@/views/six/index.vue')
  47. },
  48. {
  49. path: '/seven',
  50. name: 'seven',
  51. meta: { title: '产学研用协同创新数字化平台-服务支撑' },
  52. component: () => import('@/views/seven/index.vue')
  53. },
  54. {
  55. path: '/eight',
  56. name: 'eight',
  57. meta: { title: '产学研用协同创新数字化平台-产业集群' },
  58. component: () => import('@/views/eight/index.vue')
  59. },
  60. {
  61. path: '/nine',
  62. name: 'nine',
  63. meta: { title: '产学研用协同创新数字化平台-成果展示' },
  64. component: () => import('@/views/nine/index.vue')
  65. },
  66. {
  67. path: '/ten',
  68. name: 'ten',
  69. meta: { title: '产学研用协同创新数字化平台-信息库' },
  70. component: () => import('@/views/ten/index.vue')
  71. },
  72. {
  73. path: '/eleven',
  74. name: 'eleven',
  75. meta: { title: '产学研用协同创新数字化平台-孵化器' },
  76. component: () => import('@/views/eleven/index.vue')
  77. },
  78. {
  79. path: '/twelve',
  80. name: 'twelve',
  81. meta: { title: '产学研用协同创新数字化平台-产业孵化大脑' },
  82. component: () => import('@/views/twelve/index.vue')
  83. },
  84. {
  85. path: '/thirteen',
  86. name: 'thirteen',
  87. meta: { title: '产学研用协同创新数字化平台-行研产研' },
  88. component: () => import('@/views/thirteen/index.vue')
  89. },
  90. {
  91. path: '/thirteen/list',
  92. name: 'thirteen/list',
  93. meta: { title: '产学研用协同创新数字化平台-行研产研' },
  94. component: () => import('@/views/thirteen/list.vue')
  95. },
  96. {
  97. path: '/news',
  98. name: 'news',
  99. meta: { title: '产学研用协同创新数字化平台-新闻列表' },
  100. component: () => import('@/views/detail/news.vue')
  101. },
  102. {
  103. path: '/news/detail',
  104. name: 'newsDetail',
  105. meta: { title: '产学研用协同创新数字化平台-新闻列表' },
  106. component: () => import('@/views/detail/newsDetail.vue')
  107. },
  108. {
  109. path: '/match/detail',
  110. name: 'matchDetail',
  111. meta: { title: '产学研用协同创新数字化平台-赛事详情' },
  112. component: () => import('@/views/detail/matchDetail.vue')
  113. },
  114. {
  115. path: '/demand/detail',
  116. name: 'demandDetail',
  117. meta: { title: '产学研用协同创新数字化平台-需求详情' },
  118. component: () => import('@/views/detail/demandDetail.vue')
  119. },
  120. {
  121. path: '/supply/detail',
  122. name: 'supplyDetail',
  123. meta: { title: '产学研用协同创新数字化平台-供给详情' },
  124. component: () => import('@/views/detail/supplyDetail.vue')
  125. },
  126. {
  127. path: '/project',
  128. name: 'project',
  129. meta: { title: '产学研用协同创新数字化平台-项目列表' },
  130. component: () => import('@/views/detail/project.vue')
  131. },
  132. {
  133. path: '/project/detail',
  134. name: 'projectDetail',
  135. meta: { title: '产学研用协同创新数字化平台-项目详情' },
  136. component: () => import('@/views/detail/projectDetail.vue')
  137. },
  138. {
  139. path: '/expert',
  140. name: 'expert',
  141. meta: { title: '产学研用协同创新数字化平台-专家列表' },
  142. component: () => import('@/views/detail/expert.vue')
  143. },
  144. {
  145. path: '/expert/detail',
  146. name: 'expertDetail',
  147. meta: { title: '产学研用协同创新数字化平台-专家详情' },
  148. component: () => import('@/views/detail/expertDetail.vue')
  149. },
  150. {
  151. path: '/company',
  152. name: 'company',
  153. meta: { title: '产学研用协同创新数字化平台-企业列表' },
  154. component: () => import('@/views/detail/company.vue')
  155. },
  156. {
  157. path: '/company/detail',
  158. name: 'companyDetail',
  159. meta: { title: '产学研用协同创新数字化平台-企业详情' },
  160. component: () => import('@/views/detail/companyDetail.vue')
  161. },
  162. {
  163. path: '/platform/detail',
  164. name: 'platformDetail',
  165. meta: { title: '产学研用协同创新数字化平台-中试平台详情' },
  166. component: () => import('@/views/detail/platformDetail.vue')
  167. },
  168. {
  169. path: '/service/detail',
  170. name: 'serviceDetail',
  171. meta: { title: '产学研用协同创新数字化平台-服务支撑详情' },
  172. component: () => import('@/views/detail/serviceDetail.vue')
  173. },
  174. {
  175. path: '/achievement/detail',
  176. name: 'achievementDetail',
  177. meta: { title: '产学研用协同创新数字化平台-服务支撑详情' },
  178. component: () => import('@/views/detail/achievementDetail.vue')
  179. },
  180. {
  181. path: '/industry/detail',
  182. name: 'industryDetail',
  183. meta: { title: '产学研用协同创新数字化平台-产业集群详情' },
  184. component: () => import('@/views/detail/industryDetail.vue')
  185. },
  186. {
  187. path: '/study/detail',
  188. name: 'studyDetail',
  189. meta: { title: '产学研用协同创新数字化平台-行研产研详情' },
  190. component: () => import('@/views/detail/studyDetail.vue')
  191. },
  192. {
  193. path: '/chat',
  194. meta: { title: '产学研用协同创新数字化平台-消息' },
  195. component: () => import('@/views/chat/index.vue')
  196. },
  197. {
  198. path: '/login',
  199. name: 'login',
  200. meta: { title: '产学研用协同创新数字化平台' },
  201. component: () => import('@/views/login/index.vue')
  202. },
  203. {
  204. path: '/help',
  205. name: 'help',
  206. meta: { title: '产学研用协同创新数字化平台-帮助中心' },
  207. component: () => import('@/views/help/index.vue')
  208. },
  209. {
  210. path: '/brain',
  211. name: 'brain',
  212. meta: { title: '产学研用协同创新数字化平台-产业大脑' },
  213. component: () => import('@/views/brain/index.vue')
  214. },
  215. {
  216. path: '/brain/one',
  217. meta: { title: '产学研用协同创新数字化平台-产业大脑' },
  218. component: () => import('@/views/brain/one.vue')
  219. },
  220. {
  221. path: '/brain/two',
  222. meta: { title: '产学研用协同创新数字化平台-产业大脑' },
  223. component: () => import('@/views/brain/two.vue')
  224. },
  225. {
  226. path: '/brain/thr',
  227. meta: { title: '产学研用协同创新数字化平台-产业大脑' },
  228. component: () => import('@/views/brain/thr.vue')
  229. },
  230. {
  231. path: '/brain/four',
  232. meta: { title: '产学研用协同创新数字化平台-产业大脑' },
  233. component: () => import('@/views/brain/four.vue')
  234. },
  235. {
  236. path: '/brain/five',
  237. meta: { title: '产学研用协同创新数字化平台-产业大脑' },
  238. component: () => import('@/views/brain/five.vue')
  239. },
  240. {
  241. path: '/brain/six',
  242. meta: { title: '产学研用协同创新数字化平台-产业大脑' },
  243. component: () => import('@/views/brain/six.vue')
  244. },
  245. {
  246. path: '/search',
  247. name: 'search',
  248. meta: { title: '产学研用协同创新数字化平台-搜索' },
  249. component: () => import('@/views/search/index.vue')
  250. },
  251. {
  252. path: '/layout',
  253. name: 'Layout',
  254. component: Layout,
  255. children: [
  256. {
  257. path: '/center',
  258. name: 'center',
  259. meta: { title: '产学研用协同创新数字化平台-基本信息' },
  260. component: () => import('@/views/center/basic.vue')
  261. },
  262. {
  263. path: '/attestation',
  264. name: 'attestation',
  265. meta: { title: '产学研用协同创新数字化平台-认证入驻' },
  266. component: () => import('@/views/center/attestation.vue')
  267. },
  268. {
  269. path: '/notice',
  270. name: 'notice',
  271. meta: { title: '产学研用协同创新数字化平台-通知管理' },
  272. component: () => import('@/views/center/notice.vue')
  273. },
  274. {
  275. path: '/achievement',
  276. name: 'achievement',
  277. meta: { title: '产学研用协同创新数字化平台-成果管理' },
  278. component: () => import('@/views/center/achievement.vue')
  279. },
  280. {
  281. path: '/demand',
  282. name: 'demand',
  283. meta: { title: '产学研用协同创新数字化平台-需求管理' },
  284. component: () => import('@/views/center/demand.vue')
  285. },
  286. {
  287. path: '/collect',
  288. name: 'collect',
  289. meta: { title: '产学研用协同创新数字化平台-我的收藏' },
  290. component: () => import('@/views/center/collect.vue')
  291. },
  292. {
  293. path: '/sign',
  294. name: 'sign',
  295. meta: { title: '产学研用协同创新数字化平台-活动管理' },
  296. component: () => import('@/views/center/sign.vue')
  297. },
  298. {
  299. path: '/news2',
  300. name: 'news2',
  301. meta: { title: '产学研用协同创新数字化平台-行业动态' },
  302. component: () => import('@/views/center/news2.vue')
  303. },
  304. {
  305. path: '/supply',
  306. name: 'supply',
  307. meta: { title: '产学研用协同创新数字化平台-供给管理' },
  308. component: () => import('@/views/center/supply.vue')
  309. },
  310. {
  311. path: '/footplate',
  312. name: 'footplate',
  313. meta: { title: '产学研用协同创新数字化平台-中试管理' },
  314. component: () => import('@/views/center/footplate.vue')
  315. },
  316. {
  317. path: '/match',
  318. name: 'match',
  319. meta: { title: '产学研用协同创新数字化平台-赛事管理' },
  320. component: () => import('@/views/center/match.vue')
  321. },
  322. {
  323. path: '/journal',
  324. name: 'journal',
  325. meta: { title: '产学研用协同创新数字化平台-产研行研' },
  326. component: () => import('@/views/center/journal.vue')
  327. },
  328. {
  329. path: '/project',
  330. name: 'project',
  331. meta: { title: '产学研用协同创新数字化平台-项目管理' },
  332. component: () => import('@/views/center/project.vue')
  333. },
  334. {
  335. path: '/password',
  336. name: 'password',
  337. meta: { title: '产学研用协同创新数字化平台-修改密码' },
  338. component: () => import('@/views/center/password.vue')
  339. }
  340. ]
  341. },
  342. {
  343. path: '/loading',
  344. name: 'loading',
  345. meta: { title: '产学研用协同创新数字化平台' },
  346. component: () => import('@/views/loading/index.vue')
  347. }
  348. ]
  349. })
  350. router.beforeEach(async (to, from, next) => {
  351. const userStore = UserStore()
  352. document.title = `${to.meta.title} `
  353. const token = localStorage.getItem('token')
  354. if (token) {
  355. const res = await axios.request({
  356. method: 'get',
  357. url: `${import.meta.env.VITE_APP_BASE_API}/token/tokenView`,
  358. responseType: 'json',
  359. headers: {
  360. token: token
  361. }
  362. })
  363. if (res.data.errcode === 0) userStore.setUser(res.data.data)
  364. next()
  365. } else next()
  366. })
  367. router.afterEach(() => {
  368. window.scrollTo(0, 0)
  369. })
  370. export default router