对二甲苯2 2023-05-03 15:08 采纳率: 0%
浏览 41
已结题

Ant DesignPro of Vue权限

想问一下Ant DesignPro of Vue模板如何添加一个user用户,并赋予部分权限,想要的效果是admin显示部分菜单、然后user显示部分菜单。越简单实现越好,最好只修改前端。

img


是在这里添加一个user吗 怎么添加
现在效果是这样

img

想要达成的效果是比如admin只显示首页 活动页、user只显示论坛页以及文章页

  • 写回答

3条回答 默认 最新

  • serendipity★ 2023-05-03 15:27
    关注

    要在 Ant Design Pro Vue 模板中添加一个 user 用户并赋予部分权限,你需要在前端对角色和权限进行控制。首先,为每个用户分配一个角色,例如 admin 和 user。然后,根据角色动态显示不同的菜单。以下是一种简化的实现方法:

    1. src/store/modules/user.js 中为用户添加角色属性,例如:
    state: {
      ...
      roles: [],
    }
    
    1. 在用户登录成功后,将用户角色信息存储到 Vuex 状态管理器中。例如:
    commit('SET_ROLES', data.roles)
    
    1. 根据用户角色动态生成菜单。在 src/components/SiderMenu/index.vue 中,你可以通过检查用户角色来控制菜单项的显示。例如:
    <template>
      ...
      <a-menu-item v-if="hasRole(item)" :key="item.path">{{ item.name }}</a-menu-item>
      ...
    </template>
    
    methods: {
      ...
      hasRole(item) {
        // 根据角色判断是否显示菜单项
        const userRoles = this.$store.state.user.roles;
        if (item.roles && item.roles.length > 0) {
          return item.roles.some(role => userRoles.indexOf(role) >= 0);
        }
        return true;
      }
    }
    
    1. src/router/menu.js 中,为每个菜单项添加 roles 属性,以确定哪些角色可以访问此菜单项。例如:
    {
      path: '/example',
      name: 'Example',
      icon: 'smile',
      component: './Example',
      roles: ['admin'], // 仅 admin 角色可以访问
    }
    

    通过以上步骤,你可以根据不同角色动态显示菜单项。你可以根据需要自定义角色和权限设置,以实现不同的需求。
    如有其他问题请继续提问,若对你有所帮助望采纳

    评论

报告相同问题?

问题事件

  • 系统已结题 5月11日
  • 修改了问题 5月3日
  • 创建了问题 5月3日