index.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. import Vue from 'vue'
  2. import VueRouter from 'vue-router'
  3. Vue.use(VueRouter)
  4. const routes = [{
  5. path: '/',
  6. name: 'home',
  7. component: () => import('../views/Home/index.vue'),
  8. meta: {
  9. myTitle: '建筑可阅读'
  10. },
  11. },
  12. // 语音讲解
  13. {
  14. path: '/goods/audio',
  15. name: 'goodsAudio',
  16. component: () => import('../views/Goods/components/GoodsAudio.vue')
  17. },
  18. // vr看看
  19. {
  20. path: '/goods/kankan',
  21. name: 'goodsKankan',
  22. component: () => import('../views/Goods/components/GoodsKankan.vue')
  23. },
  24. // vr全景
  25. {
  26. path: '/goods/vr',
  27. name: 'goodsVr',
  28. component: () => import('../views/Goods/components/GoodsVr.vue')
  29. },
  30. // 景点导航
  31. {
  32. path: '/goods/map',
  33. name: 'goodsMap',
  34. component: () => import('../views/Goods/components/GoodsMap.vue')
  35. },
  36. // 游玩指引
  37. {
  38. path: '/goods/play',
  39. name: 'goodsPlay',
  40. component: () => import('../views/Goods/components/GoodsPlay.vue')
  41. },
  42. // 分享
  43. {
  44. path: '/goods/share',
  45. name: 'goodsShare',
  46. component: () => import('../views/Goods/components/GoodsShare.vue')
  47. },
  48. // 悦·互动发布
  49. {
  50. path: '/layout/interact/issue',
  51. name: 'interactIssue',
  52. meta: {
  53. myTitle: '建筑可对话发布'
  54. },
  55. component: () => import('../views/Interact/components/InteractIssue.vue')
  56. },
  57. // 定位,位置
  58. {
  59. path: '/layout/interact/location',
  60. name: 'interactLocation',
  61. meta: {
  62. myTitle: '位置'
  63. },
  64. component: () => import('../views/Interact/components/interactLocation.vue')
  65. }, {
  66. path: '/layout',
  67. name: 'layout',
  68. component: () => import('../views/Layout/index.vue'),
  69. children: [{
  70. path: '/layout/construct',
  71. name: 'construct',
  72. meta: {
  73. myInd: 1,
  74. myTitle: '古建一张图'
  75. },
  76. component: () => import('../views/Construct/index.vue')
  77. },
  78. {
  79. path: '/layout/goods',
  80. name: 'goods',
  81. meta: {
  82. myInd: 1,
  83. },
  84. component: () => import('../views/Goods/index.vue')
  85. },
  86. {
  87. path: '/layout/construct',
  88. name: 'construct',
  89. meta: {
  90. myInd: 1,
  91. myTitle: '古建一张图'
  92. },
  93. component: () => import('../views/Construct/index.vue')
  94. },
  95. /**
  96. * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  97. * 享服务(建筑可游玩)
  98. */
  99. {
  100. path: '/layout/serve',
  101. name: 'serve',
  102. meta: {
  103. myInd: 2,
  104. myTitle: '建筑可游玩',
  105. },
  106. component: () => import('../views/Serve/index.vue')
  107. },
  108. {
  109. path: '/layout/serve/recommended-path',
  110. name: 'RecommendedPath',
  111. meta: {
  112. myInd: 2,
  113. myTitle: '推荐路线',
  114. },
  115. component: () => import('../views/Serve/RecommendedPath.vue')
  116. },
  117. {
  118. path: '/layout/serve/recommended-path-detail',
  119. name: 'RecommendedPathDetail',
  120. meta: {
  121. myInd: 2,
  122. myTitle: '一日游',
  123. },
  124. component: () => import('../views/Serve/RecommendedPathDetail.vue')
  125. },
  126. {
  127. path: '/layout/serve/dont-miss',
  128. name: 'DontMiss',
  129. meta: {
  130. myInd: 2,
  131. myTitle: '必玩景点',
  132. },
  133. component: () => import('../views/Serve/DontMiss.vue')
  134. },
  135. {
  136. path: '/layout/serve/travel-plague',
  137. name: 'TravelPlague',
  138. meta: {
  139. myInd: 2,
  140. myTitle: '景点开放',
  141. },
  142. component: () => import('../views/Serve/TravelPlague.vue')
  143. },
  144. {
  145. path: '/layout/serve/help-center',
  146. name: 'HelpCenter',
  147. meta: {
  148. myInd: 2,
  149. myTitle: '帮助中心',
  150. },
  151. component: () => import('../views/Serve/HelpCenter.vue')
  152. },
  153. {
  154. path: '/layout/serve/hotel-list',
  155. name: 'HotelList',
  156. meta: {
  157. myInd: 2,
  158. myTitle: '酒店',
  159. },
  160. component: () => import('../views/Serve/HotelList.vue')
  161. },
  162. {
  163. path: '/layout/serve/hotel-detail',
  164. name: 'HotelDetail',
  165. meta: {
  166. myInd: 2,
  167. myTitle: '',
  168. },
  169. component: () => import('../views/Serve/HotelDetail.vue')
  170. },
  171. {
  172. path: '/layout/serve/food-list',
  173. name: 'FoodList',
  174. meta: {
  175. myInd: 2,
  176. myTitle: '美食',
  177. },
  178. component: () => import('../views/Serve/FoodList.vue')
  179. },
  180. /**
  181. * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  182. */
  183. {
  184. path: '/layout/interact',
  185. name: 'interact',
  186. meta: {
  187. myInd: 3,
  188. myTitle: '建筑可对话'
  189. },
  190. component: () => import('../views/Interact/index.vue')
  191. },
  192. {
  193. path: '/layout/my',
  194. name: 'my',
  195. meta: {
  196. myInd: 4
  197. },
  198. component: () => import('../views/My/index.vue')
  199. }
  200. ]
  201. },
  202. ]
  203. const router = new VueRouter({
  204. routes
  205. })
  206. // 全局后置钩子,设置title
  207. router.afterEach(to => {
  208. // 设置title
  209. if (to.meta.myTitle) window.document.title = to.meta.myTitle;
  210. })
  211. export default router