index.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import store from '../store'
  4. Vue.use(Router)
  5. let router = new Router({
  6. routes: [
  7. {
  8. path: '/',
  9. name: 'home',
  10. component: resolve => require(['@/page/home2'], resolve)
  11. },
  12. {
  13. path: '/videos',
  14. name: 'videos',
  15. component: resolve => require(['@/page/videos'], resolve)
  16. },
  17. {
  18. path: '/capacity',
  19. name: 'capacity',
  20. component: resolve => require(['@/page/capacity'], resolve)
  21. },
  22. {
  23. path: '/pay/:orderId/:orderType/:orderSn/:payType',
  24. name: 'pay',
  25. component: resolve => require(['@/page/pay'], resolve)
  26. },
  27. {
  28. path: '/payrecharge/:cameraId/:childName',
  29. name: 'payrecharge',
  30. component: resolve => require(['@/page/payrecharge'], resolve)
  31. },
  32. {
  33. path: '/payresult/:isSuccess',
  34. name: 'payresult',
  35. component: resolve => require(['@/page/payresult'], resolve)
  36. },
  37. {
  38. path: '/product',
  39. name: 'product',
  40. component: resolve => require(['@/page/product'], resolve)
  41. },
  42. {
  43. path: '/binocular',
  44. name: 'binocular',
  45. component: resolve => require(['@/page/binocular'], resolve)
  46. },
  47. {
  48. path: '/about',
  49. name: 'about',
  50. component: resolve => require(['@/page/about'], resolve)
  51. },
  52. {
  53. path: '/location',
  54. name: 'location',
  55. component: resolve => require(['@/page/location'], resolve)
  56. },
  57. {
  58. path: '/eight',
  59. name: 'eight',
  60. component: resolve => require(['@/page/eight'], resolve)
  61. },
  62. {
  63. path: '/purchase',
  64. name: 'purchase',
  65. component: resolve => require(['@/page/purchase'], resolve)
  66. },
  67. {
  68. path: '/404',
  69. name: '404',
  70. component: resolve => require(['@/page/404'], resolve)
  71. },
  72. {
  73. path: '/purchasetow',
  74. name: 'purchasetow',
  75. component: resolve => require(['@/page/purchasetow'], resolve)
  76. },
  77. {
  78. path: '/privilege/:cameraId/:childName',
  79. name: 'privilege',
  80. component: resolve => require(['@/page/privilege'], resolve)
  81. },
  82. {
  83. path: '/introduce/:id',
  84. name: 'introduce',
  85. component: resolve => require(['@/page/introduce'], resolve)
  86. },
  87. {
  88. path: '/introtow/:id',
  89. name: 'introtow',
  90. component: resolve => require(['@/page/introtow'], resolve)
  91. },
  92. {
  93. path: '/',
  94. name: 'manage',
  95. component: resolve => require(['@/page/manage'], resolve),
  96. children: [
  97. {
  98. name: 'information',
  99. path: '/information',
  100. component: resolve => require(['@/page/manage/temp/information'], resolve),
  101. meta: {requireAuth: true}
  102. },
  103. {
  104. name: 'scene',
  105. path: '/scene',
  106. component: resolve => require(['@/page/manage/temp/scene'], resolve),
  107. meta: {requireAuth: true}
  108. },
  109. {
  110. name: 'order',
  111. path: '/order',
  112. component: resolve => require(['@/page/manage/temp/order'], resolve),
  113. meta: {requireAuth: true}
  114. },
  115. {
  116. name: 'consumption',
  117. path: '/consumption',
  118. component: resolve => require(['@/page/manage/temp/consumption'], resolve),
  119. meta: {requireAuth: true}
  120. },
  121. {
  122. name: 'device',
  123. path: '/device',
  124. component: resolve => require(['@/page/manage/temp/device'], resolve),
  125. meta: {requireAuth: true}
  126. },
  127. {
  128. name: 'change',
  129. path: '/change',
  130. component: resolve => require(['@/page/manage/temp/change'], resolve),
  131. meta: {requireAuth: true}
  132. }
  133. ]
  134. },
  135. // {
  136. // path: '/service/down',
  137. // name: 'service_down',
  138. // component: () => import('@/page/service/down')
  139. // },
  140. {
  141. path: '/service/overview',
  142. name: 'service_overview',
  143. component: resolve => require(['@/page/service/overview'], resolve)
  144. },
  145. {
  146. path: '/cases/overview',
  147. name: 'case_overview',
  148. component: resolve => require(['@/page/cases/overview'], resolve)
  149. },
  150. // {
  151. // path: '/service/:id',
  152. // name: 'service_list',
  153. // component: () => import('@/page/service/temp')
  154. // },
  155. {
  156. path: '/service/',
  157. name: 'service',
  158. children: [
  159. {
  160. path: ':id/:active',
  161. name: 'service_list',
  162. component: resolve => require(['@/page/service/temp'], resolve)
  163. }
  164. ],
  165. component: resolve => require(['@/page/service'], resolve)
  166. },
  167. {
  168. path: '/cases/:id',
  169. name: 'cases',
  170. component: resolve => require(['@/page/cases'], resolve)
  171. },
  172. {
  173. path: '/cases/app',
  174. name: 'cases_app',
  175. component: resolve => require(['@/page/cases/app'], resolve)
  176. }
  177. ],
  178. scrollBehavior (to, from, savedPosition) {
  179. if (to.hash === '') {
  180. return { x: 0, y: 0 }
  181. } else {
  182. return false
  183. }
  184. }
  185. })
  186. router.beforeEach((to, from, next) => {
  187. let token = store.state.user.token
  188. if (to.meta.requireAuth) {
  189. if (token) {
  190. next()
  191. } else {
  192. next({
  193. name: 'home'
  194. })
  195. }
  196. } else {
  197. next()
  198. }
  199. })
  200. router.afterEach((to, from) => {
  201. if (to.query.id) {
  202. let target = document.querySelector('#' + to.query.id)
  203. if (!target) {
  204. setTimeout(() => {
  205. target = document.querySelector('#' + to.query.id)
  206. target ? you(target, to.query.id) : window.scrollTo(0, 0)
  207. }, 100)
  208. } else {
  209. you(target, to.query.id)
  210. }
  211. } else {
  212. setTimeout(() => {
  213. you()
  214. }, 16)
  215. }
  216. // || !~queue.indexOf(to.fullPath)
  217. // if (queue.length === 2) {
  218. // queue.shift()
  219. // }
  220. // queue.push(to.fullPath)
  221. function you (target, id) {
  222. if (target) {
  223. let node = target
  224. let top = 0
  225. while (node && node !== document.documentElement && node !== document.body) {
  226. top += node.offsetTop
  227. node = node.offsetParent
  228. }
  229. setTimeout(() => {
  230. window.skip = true
  231. window.scrollTo(0, top - 70)
  232. })
  233. } else {
  234. window.scrollTo(0, 0)
  235. }
  236. }
  237. })
  238. export default router