有没有哪位大佬来帮我看看路由动态添加跳转404和权限的问题
远程看过源码了...路由里有个路径... 直接把所有的页面跳转到404了...
业务逻辑需要重写...一直反复横跳/login路由,导致浏览器卡死了...
这事肯定是哪个即将离职然后....倒霉的程序员做的
就这么问,没点信息?
const routes =[{
path: '/1ogin',
name: 'Login',
component:()=>
import ( ' ../views/Login.vue ' )
}]
const a = [{
path: ' /search',
name: 'Search ',
component:()=>
import ( '../views/Search.vue ')
}]
a.push({
path: '/*',
name: '404',
component: ()=>
import ('../views/404.vue ')
})
router.addRoutes(a);
const router = new Router({
mode: 'history'.
base: process.env.BASE_URL,
routes: routes
})
router.beforeEach((to, from, next) => {
// 添加动态(菜单)路由
// 1. 已经添加 or 全局路由, 直接访问
// 2. 获取菜单列表, 添加并保存本地存储
if (router.options.isAddDynamicMenuRoutes || fnCurrentRouteType(to, globalRoutes) === 'global') {
next()
} else {
if (cookies.get('token')) {
const code = document.referrer.toString()
Vue.prototype.$axios.get('/menu/list', {
headers: {
'Accept-Language': sessionStorage.getItem('language') === 'en' ? 'en-US' : 'zh-CN',
'system-code': 'hlb-' + (code ? code.substring(7, code.indexOf('.')) : 'pmkt')
}
})
.then(({data}) => {
if (data && data.code === 200) {
fnAddDynamicMenuRoutes(data.list)
router.options.isAddDynamicMenuRoutes = true
sessionStorage.setItem('menuList', JSON.stringify(data.list || '[]'))
sessionStorage.setItem('permissions', JSON.stringify(data.permissions || '[]'))
next({...to, replace: true})
} else if (data.code === 1002) {
Vue.prototype.$message({
message: data.msg,
type: 'error'
})
clearLoginInfo()
router.push({name: 'login'})
} else {
sessionStorage.setItem('menuList', '[]')
sessionStorage.setItem('permissions', '[]')
next()
}
}).catch((e) => {
console.log(`%c${e} 请求菜单列表和权限失败,跳转至登录页!!`, 'color:blue')
router.push({name: 'login'})
})
} else {
router.push({name: 'login'})
}
}
})
路由的动态添加可以在router/index.js进行解析。404 问题可能是你添加了菜单,但是前端这边没有对应的组件页面之类的。