index.ts 1013 字节
Newer Older
陈文彬 已提交
1 2 3 4
import type { RouteRecordRaw } from 'vue-router';
import type { App } from 'vue';

import { createRouter, createWebHashHistory } from 'vue-router';
V
vben 已提交
5

陈文彬 已提交
6 7 8
import { createGuard } from './guard/';

import { basicRoutes } from './routes/';
V
vben 已提交
9
import { scrollBehavior } from './scrollBehavior';
10
import { REDIRECT_NAME } from './constant';
陈文彬 已提交
11 12 13

// app router
const router = createRouter({
14
  history: createWebHashHistory(),
陈文彬 已提交
15
  routes: basicRoutes as RouteRecordRaw[],
16
  strict: true,
V
vben 已提交
17
  scrollBehavior: scrollBehavior,
陈文彬 已提交
18
});
V
vben 已提交
19

陈文彬 已提交
20 21
// reset router
export function resetRouter() {
22
  const resetWhiteNameList = ['Login', REDIRECT_NAME];
陈文彬 已提交
23 24 25
  router.getRoutes().forEach((route) => {
    const { name } = route;
    if (name && !resetWhiteNameList.includes(name as string)) {
V
vben 已提交
26
      router.hasRoute(name) && router.removeRoute(name);
陈文彬 已提交
27 28 29 30 31 32 33 34 35 36
    }
  });
}

// config router
export function setupRouter(app: App<Element>) {
  app.use(router);
  createGuard(router);
}

V
vben 已提交
37 38 39
// router.onError((error) => {
//   console.error(error);
// });
V
vben 已提交
40

陈文彬 已提交
41
export default router;