首页 > 编程语言 >若依--自定义指令 v-hasPermi 和 v-hasRole

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

时间:2023-05-08 11:33:39浏览次数:34  
标签:el const 自定义 permission -- value hasRole &&

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

标签:el,const,自定义,permission,--,value,hasRole,&&
From: https://www.cnblogs.com/kitty-blog/p/17381112.html

相关文章

  • 若依--字典标签组件完善
    由于若依是基于element,但是在实际业务中,往往会出现标签不够用的情况,数据标签回显样式只有一下六种://数据标签回显样式constlistClassOptions=ref([{value:"default",label:"默认"},{value:"primary",label:"主要"},{value:"success",label:&qu......
  • ChatGPT官方第一手资料:这七个小技巧帮你用好ChatGPT
    文/高扬 学习技术最好的方式是什么?看官方资料。    然而,官方教材总有些晦涩难懂,所以大白话将意思做个翻译,就成为了必然。我个人建议有条件的话,先看官方指南。 其实,我个人的ChatGPT经验,也是啃了官方材料,然后经过自己的实践总结而成。 例如,针对官方提供的......
  • 攻击面管理的重要技术指标有哪些?螣龙安科受邀分享来解答
    近日,国内网络安全知名权威机构-安全牛发布了《网络安全行业全景图》(第十版)。  螣龙安科凭借先进的创新网络安全技术和高度的市场认可度,实力领跑,上榜了“攻击面管理”和“BAS”两大安全分类。  此次强势入选全景图的两大领域,不仅是业界权威机构对螣龙安科产品能力和服......
  • 计数排序就是这么容易
    文章目录前言1.计数排序(CountingSort)1.1.计数排序(CountingSort)2.原理2.1.步骤2.2.实例题目3.代码3.1.代码4.扩展阅读4.1.局限性前言声明:参考来源互联网,有任何争议可以留言。站在前人的肩上,我们才能看的更远。本教程纯手打,致力于最实用教程,不需要什么奖励,只希望多多转发支持......
  • C3P0连接池在tomcat中的详细配置
    http://qiufubin.blog.sohu.com/55457392.html 2007-07-16 | C3P0连接池在tomcat中的详细配置  一.在tomcat_home\common\lib下放入jdbc的驱动程序,额外说一下,如果是使用sqlserver的话,有至少两个驱动可以选择,一个是微软提供的,另一个是jtds,比微软的要好很多,推荐使用二.配......
  • 解决eclipse+myeclipse的Processing Dirty Regions错误
    http://www.javaeye.com/topic/192152我的Eclipse3.3.2+MyEclipse6.0.1在打开JSP文件时出现以下错误:Aninternalerroroccurredduring:"ProcessingDirtyRegions".org/eclipse/wst/sse/ui/internal/reconcile/validator/ValidationHelperAninternalerro......
  • 通用分页实现及其OO设计探讨
    本来是打算拿到it168投稿的!!那边的速度太慢了!先贴出来先!!分页是一种常用的页面数据显示技术,分页能够通过减少页面数据处理量从而提高了系统的性能。分页应该是做WEB开发必须掌握的一个小技术。而分页却是复杂的,倒不是它的技术有多复杂;而是有太多的重复代码,这些代码都难以重用。能不能......
  • 禅道软件设计六大原则
    第一原则,长周期原则想尽一切办法让产品的生命周期大于团队的生命周期。每个产品都有自己的生命周期,每个团队也都有自己的生命周期,这是客观规律。但我总会觉得用户和客户因为信任选择使用禅道,我们就要为用户和客户负责,这是我放不下的责任和义务。一方面我努力赚钱,让团队持续发展,为我......
  • CSS内外边距属性
    <head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/><title>无标题文档</title></head><styletype="text/css">h1{ background-color:green; padding-top:20px; padd......
  • vue+element输入框校验输入汉字再输入数字看似正常,实则有大问题,保存时数据不对
    在vue+elementUI项目中经常会使用到输入框限制为整数或者小数的需求,一般采用如下oninput="value=value.replace(/[^0-9.]/g,'')"解决,<el-input    :placeholder="请输入整数或者小数"    v-model="inputValue"   oninput="value=value.replace(/[^0-9......