在我的 Vue.js 应用程序中,我使用导航抽屉来显示用户有权访问的不同页面。仅当管理员激活相关模块时,页面才可见。moduleID
因此,为每个页面和子页面设置了唯一的。该列表由 填充filteredPages[]
。该数组是仅显示用户有权访问的页面的结果。所有可用的页面都存储在我的原始数据源中pages[]
。
总结一下:仅当这两个条件都成立时才会显示页面:
activatedModules[]
包含moduleID
页面和子页面的 。
userPermissions[]
包含permissions
子级的值(如果没有子级,则包含页面)。
我的代码:
export default {
data: () => ({
pages: [
{
text: 'Team', moduleID: 'm1',
children: [
{ text: 'Dashboard', route:'team/dashboard', permissions: 'p101', moduleID: 'm1-1' },
],
},
{
text: 'Planner', moduleID: 'm2',
children: [
{ text: 'Events', route:'/planner/events', permissions: 'p201', moduleID: 'm2-1' },
{ text: 'Calendar', route:'/planner/calendar', permissions: 'p202', moduleID: 'm2-2' },
],
},
{
text: 'HR', moduleID: 'm3',
children: [
{ text: 'Staff', route:'/hr/staff', permissions: 'p301', moduleID: 'm3-1' },
{ text: 'Config', route:'/hr/config', permissions: 'p302', moduleID: 'm3-2' },
],
},
{
text: 'Admin', moduleID: 'm4',
children: [
{ text: 'Users', route:'/admin/users', permissions: 'p401', moduleID: 'm4-1' },
{ text: 'Security', route:'/admin/security', permissions: 'p402', moduleID: 'm4-2' },
],
},
{ text: 'Support', route:'/support', permissions: 'p50', moduleID: 'm5' },
],
activatedModules: ['m1', 'm1-1', 'm3', 'm3-1', 'm3-2' 'm4', 'm4-1', 'm4-2', 'm5'],
userPermissions: ['p101', 'p301', 'p302', 'p402', 'p50'],
// This is the source for my navigation drawer:
filteredPages: []
}),
凤凰求蛊
牧羊人nacy
达令说
相关分类