• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

我的博客我做主

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

若依--自定义指令 v-hasPermi 和 v-hasRole

  1. 为什么大家都在用若依?
    若依版本有很多种,前端的,后端的,大家点击去看看 http://doc.ruoyi.vip/,看完记得回来!
    第一次接触到若依 是进入这家公司之后,以前做项目都是“白手起家”,若依项目结构清晰,很多轮子都被造好了,不用自己搭建项目,git clone 就完成了,happy!还有项目文档可以查看,虽然我很少看...但是应该还是有帮助的。
    但是需要本人继承的业务代码却十分混乱,没办法,为了钱钱,捂着头也要编下去。
    往事不要再提,聊点开心的!接着上一片随笔的批量操作组件聊一聊指令:
    在权限上,若依提供了两种指令:操作 和 角色。

  2. 操作权限指令,v-hasPermi,hasPermi.js:

    import useUserStore from '@/store/modules/user'
    export default {
        mounted(el, binding, vnode) {
            const { value } = binding
            const all_permission = "*:*:*";
            const permissions = useUserStore().permissions // 用户的所有权限
        
            if (value && value instanceof Array && value.length > 0) {
                const permissionFlag = value
        
                const hasPermissions = permissions.some(permission => {
                return all_permission === permission || permissionFlag.includes(permission)
                })
        
                if (!hasPermissions) {
                el.parentNode && el.parentNode.removeChild(el)
                }
            } else {
                // throw new Error(`请设置操作权限标签值`)
            }
        }
    }
    
  3. 角色权限指令,v-hasRole,hasRole.js:

     import useUserStore from '@/store/modules/user'
     export default {
         mounted(el, binding, vnode) {
             const { value } = binding
             const super_admin = "admin";
             const roles = useUserStore().roles // 用户角色
         
             if (value && value instanceof Array && value.length > 0) {
               const roleFlag = value
         
               const hasRole = roles.some(role => {
                 return super_admin === role || roleFlag.includes(role)
               })
         
               if (!hasRole) {
                 el.parentNode && el.parentNode.removeChild(el)
               }
             } else {
               throw new Error(`请设置角色权限标签值`)
             }
         }
     }
    
作者:胡倩倩0903
出处:https://www.cnblogs.com/kitty-blog/
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。

posted on 2023-05-08 11:28  kitty20180903suzhou  阅读(3695)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3