import Vue from 'vue'
|
import VueRouter from 'vue-router'
|
import PageRouter from './page/'
|
import ViewsRouter from './views/'
|
import ShowRouter from './show/index'
|
import padRouter from './pad/index'
|
import AvueRouter from './avue-router'
|
import Store from '../store/'
|
Vue.use(VueRouter)
|
//创建路由
|
export const createRouter = () => new VueRouter({
|
routes: [ ...ViewsRouter,...ShowRouter, ...padRouter]
|
})
|
|
const Router = createRouter()
|
AvueRouter.install(Router, Store)
|
Router.$avueRouter.formatRoutes(Store.state.user.menu, true)
|
// 重置路由
|
export function resetRouter () {
|
const newRouter = createRouter()
|
Router.matcher = newRouter.matcher
|
AvueRouter.install(Router, Store)
|
}
|
// router文件夹下等index.js文件中写入
|
//解决编程式路由往同一地址跳转时会报错的情况
|
const originalPush = VueRouter.prototype.push
|
const originalReplace = VueRouter.prototype.replace
|
//push
|
VueRouter.prototype.push = function push(location, onResolve, onReject) {
|
if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
|
return originalPush.call(this, location).catch(err => err)
|
}
|
//replace
|
VueRouter.prototype.replace = function push(location, onResolve, onReject) {
|
if (onResolve || onReject) return originalReplace.call(this, location, onResolve, onReject)
|
return originalReplace.call(this, location).catch(err => err)
|
}
|
|
export default Router
|