index.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  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/info',
  60. name: 'InteractInfo',
  61. meta: {
  62. myTitle: '建筑可对话详情'
  63. },
  64. component: () => import('../views/Interact/components/InteractInfo.vue')
  65. },
  66. // 定位,位置
  67. {
  68. path: '/layout/interact/location',
  69. name: 'interactLocation',
  70. meta: {
  71. myTitle: '位置'
  72. },
  73. component: () => import('../views/Interact/components/interactLocation.vue')
  74. }, {
  75. path: '/layout',
  76. name: 'layout',
  77. component: () => import('../views/Layout/index.vue'),
  78. children: [{
  79. path: '/layout/construct',
  80. name: 'construct',
  81. meta: {
  82. myInd: 1,
  83. myTitle: '古建一张图'
  84. },
  85. component: () => import('../views/Construct/index.vue')
  86. },
  87. {
  88. path: '/layout/list',
  89. name: 'HomeList',
  90. meta: {
  91. myInd: 1,
  92. myTitle: '景点建筑'
  93. },
  94. component: () => import('../views/Construct/components/HomeList.vue')
  95. },
  96. {
  97. path: '/layout/goods',
  98. name: 'goods',
  99. meta: {
  100. myInd: 1,
  101. },
  102. component: () => import('../views/Goods/index.vue')
  103. },
  104. /**
  105. * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  106. * 享服务(建筑可游玩)
  107. */
  108. {
  109. path: '/layout/serve',
  110. name: 'serve',
  111. meta: {
  112. myInd: 2,
  113. myTitle: '建筑可游玩',
  114. },
  115. component: () => import('../views/Serve/index.vue')
  116. },
  117. {
  118. path: '/layout/serve/recommended-path',
  119. name: 'RecommendedPath',
  120. meta: {
  121. myInd: 2,
  122. myTitle: '推荐路线',
  123. },
  124. component: () => import('../views/Serve/RecommendedPath.vue')
  125. },
  126. {
  127. path: '/layout/serve/recommended-path-detail',
  128. name: 'RecommendedPathDetail',
  129. meta: {
  130. myInd: 2,
  131. myTitle: '一日游',
  132. },
  133. component: () => import('../views/Serve/RecommendedPathDetail.vue')
  134. },
  135. {
  136. path: '/layout/serve/dont-miss',
  137. name: 'DontMiss',
  138. meta: {
  139. myInd: 2,
  140. myTitle: '必玩景点',
  141. },
  142. component: () => import('../views/Serve/DontMiss.vue')
  143. },
  144. {
  145. path: '/layout/serve/travel-plague',
  146. name: 'TravelPlague',
  147. meta: {
  148. myInd: 2,
  149. myTitle: '景点开放',
  150. },
  151. component: () => import('../views/Serve/TravelPlague.vue')
  152. },
  153. {
  154. path: '/layout/serve/help-center',
  155. name: 'HelpCenter',
  156. meta: {
  157. myInd: 2,
  158. myTitle: '帮助中心',
  159. },
  160. component: () => import('../views/Serve/HelpCenter.vue')
  161. },
  162. {
  163. path: '/layout/serve/hotel-list',
  164. name: 'HotelList',
  165. meta: {
  166. myInd: 2,
  167. myTitle: '酒店',
  168. },
  169. component: () => import('../views/Serve/HotelList.vue')
  170. },
  171. {
  172. path: '/layout/serve/hotel-detail',
  173. name: 'HotelDetail',
  174. meta: {
  175. myInd: 2,
  176. myTitle: '',
  177. },
  178. component: () => import('../views/Serve/HotelDetail.vue')
  179. },
  180. {
  181. path: '/layout/serve/food-list',
  182. name: 'FoodList',
  183. meta: {
  184. myInd: 2,
  185. myTitle: '美食',
  186. },
  187. component: () => import('../views/Serve/FoodList.vue')
  188. },
  189. {
  190. path: '/layout/serve/food-detail',
  191. name: 'FoodDetail',
  192. meta: {
  193. myInd: 2,
  194. myTitle: '美食',
  195. },
  196. component: () => import('../views/Serve/FoodDetail.vue')
  197. },
  198. /**
  199. * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  200. */
  201. {
  202. path: '/layout/interact',
  203. name: 'interact',
  204. meta: {
  205. myInd: 3,
  206. myTitle: '建筑可对话'
  207. },
  208. component: () => import('../views/Interact/index.vue')
  209. },
  210. /**
  211. * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  212. */
  213. {
  214. path: '/layout/my',
  215. name: 'my',
  216. meta: {
  217. myInd: 4,
  218. myTitle: '',
  219. },
  220. component: () => import('../views/My/index.vue')
  221. },
  222. {
  223. path: '/layout/my/feedback',
  224. name: 'Feedback',
  225. meta: {
  226. myInd: 4,
  227. myTitle: '投诉建议',
  228. },
  229. component: () => import('../views/My/Feedback.vue')
  230. },
  231. {
  232. path: '/layout/my/my-bookings',
  233. name: 'MyBookings',
  234. meta: {
  235. myInd: 4,
  236. myTitle: '我的预约',
  237. },
  238. component: () => import('../views/My/MyBookings.vue')
  239. },
  240. ]
  241. },
  242. ]
  243. const router = new VueRouter({
  244. routes
  245. })
  246. // 全局后置钩子,设置title
  247. router.afterEach(to => {
  248. // 设置title
  249. if (to.meta.myTitle) window.document.title = to.meta.myTitle;
  250. })
  251. export default router