index.js
1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import Vue from "vue";
import VueRouter from "vue-router";
import Layout from '@/views/homePage/HomePage.vue'
import baseRouter from './modules/base'
Vue.use(VueRouter);
export const constantRoutes = [
{
path: '/404',
name: '404',
component: (resolve) => require(['@/views/error-page/404.vue'], resolve),
hidden: true
},
{
path: '/login',
component: (resolve) => require(['@/views/Login.vue'], resolve),
hidden: true
},
{
path: '',
name: 'homePage',
component: Layout,
children: [
{
path: '/homePage',
name: 'homePage',
component: (resolve) => require(['@/views/overView/Overview.vue'], resolve),
meta: { title: '首页', icon: 'dashboard', affix: true },
},
],
hidden: true
},
...baseRouter
]
const createRouter = () => {
return new VueRouter({
mode: 'hash', // 使用 hash 模式
routes: constantRoutes
});
}
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => {
if (err && err.name != 'NavigationDuplicated') this.replace('/404')
})
}
const router = createRouter();
export function resetRouter() {
const newRouter = createRouter()
router.matcher = newRouter.matcher // reset router
}
export default router;