index.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. import Vue from 'vue'
  2. import VueRouter from 'vue-router'
  3. // 加载条
  4. import NProgress from 'nprogress'
  5. import 'nprogress/nprogress.css'
  6. Vue.use(VueRouter);
  7. const routes = [
  8. {
  9. path: '/',
  10. name: 'Index',
  11. component: () => import( '../views/Index.vue'),
  12. children: [
  13. {
  14. path: '/',
  15. name: 'Main',
  16. component: () => import('@/views/Main.vue'),
  17. meta: {
  18. title: "首页",
  19. }
  20. }, {
  21. path: '/phoneSign',
  22. name: 'PhoneSign',
  23. component: () => import('@/views/PhoneSign.vue'),
  24. meta: {
  25. title: "WiFi信号记录",
  26. }
  27. }, {
  28. path: '/wifiSign',
  29. name: 'WifiSign',
  30. component: () => import('@/views/WifiSign.vue'),
  31. meta: {
  32. title: "WiFi信号记录",
  33. }
  34. }, {
  35. path: '/white',
  36. name: 'white',
  37. component: () => import('@/views/white.vue'),
  38. meta: {
  39. title: "白名单",
  40. }
  41. }, {
  42. path: '/GSign',
  43. name: 'GSign',
  44. component: () => import('@/views/GSign.vue'),
  45. meta: {
  46. title: "0-6G扫描记录",
  47. }
  48. }, {
  49. path: '/equip',
  50. name: 'Equip',
  51. component: () => import('@/views/Equip.vue'),
  52. meta: {
  53. title: "设备管理",
  54. }
  55. }, {
  56. path: '/qrcodemanage',
  57. name: 'qrcodemanage',
  58. component: () => import('@/views/Qrcodemanage.vue'),
  59. meta: {
  60. title: "二维码管理",
  61. }
  62. }, {
  63. path: '/record',
  64. name: 'record',
  65. component: () => import('@/views/Record.vue'),
  66. meta: {
  67. title: "监测记录",
  68. }
  69. }, {
  70. path: '/region',
  71. name: 'Region',
  72. component: () => import('@/views/Region.vue'),
  73. meta: {
  74. title: "区域管理",
  75. }
  76. }, {
  77. path: '/hardware',
  78. name: 'Hardware',
  79. component: () => import('@/views/Hardware.vue'),
  80. meta: {
  81. title: "固件管理",
  82. }
  83. }, {
  84. path: '/police',
  85. name: 'Police',
  86. component: () => import('@/views/Police.vue'),
  87. meta: {
  88. title: "警务通管理",
  89. }
  90. }, {
  91. path: '/pwd',
  92. name: 'Pwd',
  93. component: () => import('@/views/Pwd.vue'),
  94. meta: {
  95. title: "密码修改",
  96. }
  97. }, {
  98. path: '/basic',
  99. name: 'Basic',
  100. component: () => import('@/views/Basic.vue'),
  101. meta: {
  102. title: "no use",
  103. }
  104. }, {
  105. path: '/3d',
  106. name: '3d',
  107. component: () => import('@/views/3d.vue'),
  108. meta: {
  109. title: "no use",
  110. }
  111. },
  112. {
  113. path: '/3d2',
  114. name: '3d2',
  115. component: () => import('@/views/3d2.vue'),
  116. meta: {
  117. title: "no use",
  118. }
  119. }
  120. // ,{
  121. // path: '/setting',
  122. // name: 'Setting',
  123. // component: () => import('@/views/Setting.vue'),
  124. // meta: {
  125. // title: "基本设置",
  126. // }
  127. // }
  128. , {
  129. path: '/createmeetingqrcode',
  130. name: 'Createmeetingqrcode',
  131. component: () => import('@/views/Createmeetingqrcode.vue'),
  132. meta: {
  133. title: "二维码设置",
  134. }
  135. },
  136. ]
  137. }, {
  138. path: '/login',
  139. name: 'Login',
  140. component: () => import( '../views/Login.vue')
  141. }, {
  142. path: '/wifiSign',
  143. name: 'wifiSign',
  144. component: () => import( '../components/WifiSign.vue')
  145. }, {
  146. path: '/equipInfo',
  147. name: 'equipInfo',
  148. component: () => import( '../components/EquipInfo.vue')
  149. }, {
  150. path: '/poster',
  151. name: 'Poster',
  152. component: () => import( '../views/Poster.vue')
  153. }, {
  154. path: '*',
  155. name: '404',
  156. component: () => import( '../views/404.vue')
  157. },
  158. ];
  159. const originalPush = VueRouter.prototype.push;
  160. VueRouter.prototype.push = function push(location) {
  161. return originalPush.call(this, location).catch(err => err)
  162. };
  163. const router = new VueRouter({
  164. // mode: 'history',
  165. mode: 'hash',
  166. base: process.env.BASE_URL,
  167. routes
  168. });
  169. // 路由守卫
  170. router.beforeEach((to, from, next) => {
  171. NProgress.start();
  172. const isLogin = localStorage.token ? true : false;
  173. if (to.path == '/login' || to.path == '/register' || to.path == '/poster') {//'login'和'register'相当于是路由白名单
  174. next();
  175. } else {
  176. //如果token存在,就正常跳转,如果不存在,则说明未登陆,则跳转到'login'
  177. isLogin ? next() : next("/login");
  178. }
  179. });
  180. router.afterEach(() => {
  181. NProgress.done()
  182. });
  183. export default router