admin管理员组文章数量:1533918
2024年6月4日发(作者:)
)
commit('setRoutes', finallyAsyncRoutes)
return finallyAsyncRoutes
},
setPartialRoutes ({ commit }, accessRoutes) {
commit('setPartialRoutes', accessRoutes)
return accessRoutes
}
}
export default { namespaced: true, state, getters, mutations, actions }
3、路由拦截
/**
* @author Alan
* @description 判断当前路由是否包含权限
* @param permissions
* @param route
* @returns {boolean|*}
*/
export function hasPermission (permissions, route) {
if ( && sions) {
return ((role) => es(role))
} else {
return true
}
}
/**
* @author Alan
* @description 根据permissions数组拦截路由
* @param routes
* @param permissions
* @returns {[]}
*/
export function filterAsyncRoutes (routes, permissions) {
const finallyRoutes = []
h((route) => {
const item = { ...route }
if (hasPermission(permissions, item)) {
if (en) {
en = filterAsyncRoutes(en, permissions)
}
(item)
}
})
return finallyRoutes
}
4、路由菜单
/*
* @author Alan
* @description 公共路由
*/
export const constantRoutes = [
{
path: '/auth',
name: 'auth1',
component: AuthLayout,
children: authChildRoutes('auth1'),
hidden: true // 隐藏菜单
},
{
path: '/',
name: 'dashboard',
component: VerticleLayout,
meta: {
title: 'Dashboard',
name: 'ard',
is_heading: false,
is_active: false,
link: '',
class_name: '',
is_icon_class: true,
icon: 'ri-home-4-line',
permissions: ['admin']
},
children: childRoutes('dashboard')
}
]
/*
* @author Alan
* @description 异步路由
*/
export const asyncRoutes = [
{
path: '/menu-design',
name: 'horizontal-dashboard',
component: HorizantalLayout,
meta: {
title: 'Menu Design',
name: 'sign',
is_heading: false,
is_active: false,
link: '',
class_name: '',
is_icon_class: true,
icon: 'ri-menu-3-line',
permissions: ['admin']
},
children: horizontalRoute('dashboard')
}, {
path: '/core',
name: 'core',
component: VerticleLayout,
meta: {
title: 'UI Elements',
name: 'ents',
is_heading: false,
is_active: false,
class_name: '',
link: '',
is_icon_class: true,
icon: 'ri-pencil-ruler-line',
permissions: ['admin']
},
版权声明:本文标题:vue-router基于后端permissions动态生成导航菜单的示例代码 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1717492277a577061.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论