vue-router怎么动态配置,比如根据用户权限不同显示路由
2个回答
2017-10-27
展开全部
1、vue-router怎么动态配置,比如根据用户权限不同显示路由
如上图,我想根据用户权限不同,动态添加删除菜单
下面是路由配置
const routes = [
{
path: '/',
component: Home,
name: '系统管理',
iconCls: 'el-icon-setting',
children: [
{ path: '/Page12', component: Page12, name: '组织机构' },
{ path: '/Page9', component: Page9, name: '管理员' },
{ path: '/Page11', component: Page11, name: '用户管理' },
{ path: '/Page7', component: Page7, name: '用户反馈' },
{ path: '/Page6', component: Page6, name: '关于我们' },
{ path: '/Page8', component: Page8, name: '联系我们' },
{ path: '/Page10', component: Page10, name: '个人中心' }
]
}
]
1月20日提问
评论
邀请回答
编辑
查看全部 2 个回答
答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问
路由就是按照你这样配置的,然后你的菜单单独配置:放在store里面,根据用户权限配置菜单。如果更进一步,可以配置accessMenu,就好像这样
router.beforeEach ((to, from, next) => {
let accessMenu = store.state.env.accessMenu
let hasLogin = store.state.env.haslogin
if (to.name === 'login') {
next()
} else {
if (accessMenu.length === 0 || hasLogin === false) {
// 跳转到登录页
next({name: 'login'})
} else {
if (to.name === 'home') {
next()
} else {
// 查看路径是否在允许的路由内
const toName = to.name
console.log(toName)
if (!toName) {
next({name: 'home'})
} else {
let canGo = findName(toName,accessMenu)
console.log(canGo)
if (canGo) {
next()
} else {
next({name: 'home'})
如上图,我想根据用户权限不同,动态添加删除菜单
下面是路由配置
const routes = [
{
path: '/',
component: Home,
name: '系统管理',
iconCls: 'el-icon-setting',
children: [
{ path: '/Page12', component: Page12, name: '组织机构' },
{ path: '/Page9', component: Page9, name: '管理员' },
{ path: '/Page11', component: Page11, name: '用户管理' },
{ path: '/Page7', component: Page7, name: '用户反馈' },
{ path: '/Page6', component: Page6, name: '关于我们' },
{ path: '/Page8', component: Page8, name: '联系我们' },
{ path: '/Page10', component: Page10, name: '个人中心' }
]
}
]
1月20日提问
评论
邀请回答
编辑
查看全部 2 个回答
答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问
路由就是按照你这样配置的,然后你的菜单单独配置:放在store里面,根据用户权限配置菜单。如果更进一步,可以配置accessMenu,就好像这样
router.beforeEach ((to, from, next) => {
let accessMenu = store.state.env.accessMenu
let hasLogin = store.state.env.haslogin
if (to.name === 'login') {
next()
} else {
if (accessMenu.length === 0 || hasLogin === false) {
// 跳转到登录页
next({name: 'login'})
} else {
if (to.name === 'home') {
next()
} else {
// 查看路径是否在允许的路由内
const toName = to.name
console.log(toName)
if (!toName) {
next({name: 'home'})
} else {
let canGo = findName(toName,accessMenu)
console.log(canGo)
if (canGo) {
next()
} else {
next({name: 'home'})
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询