v-permission指令按钮级

一般后端返回的用户信息,对应接口都有别名如下:

 实现过程:

1.注册全局的自定义指令

import store from "../store"
//判断是否有别名
function hasPermission(value,el = false){
    if(!Array.isArray(value)){
        throw new Error(`需要配置权限,例如 v-permission="['getStatistics3,GET']"`)
    }
    const hasAuth = value.findIndex(v=>store.state.ruleNames.includes(v)) != -1
    if(el && !hasAuth){
        el.parentNode && el.parentNode.removeChild(el)
    }
    return hasAuth
}

export default {
    install(app){
        app.directive("permission",{
            mounted(el,binding){
                hasPermission(binding.value,el)
            }
        })
    }
}

2.main.js中注册全局指令

3.拿到接口别名和后端返回的所有别名进行比较,有的话就留下该组件或者按钮等

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Uniapp 中,可以通过自定义指令来扩展和定制 Vue 模板编译器的行为。自定义指令可以用于在模板中添加一些特殊的行为或逻辑。 要创建一个自定义指令,需要在 Uniapp 项目中的 `main.js` 文件中注册它。下面是一个简单的示例: ```javascript // main.js import Vue from 'vue' // 注册自定义指令 Vue.directive('myDirective', { bind: function (el, binding, vnode) { // 指令绑定时的处理逻辑 // el 是绑定指令的元素 // binding 是一个对象,包含了指令的相关信息 // vnode 是 Vue 编译生成的虚拟节点 }, update: function (el, binding, vnode, oldVnode) { // 指令更新时的处理逻辑 // el 是绑定指令的元素 // binding 是一个对象,包含了指令的相关信息 // vnode 是 Vue 编译生成的虚拟节点 // oldVnode 是更新前的虚拟节点 }, unbind: function (el, binding, vnode) { // 指令解绑时的处理逻辑 // el 是绑定指令的元素 // binding 是一个对象,包含了指令的相关信息 // vnode 是 Vue 编译生成的虚拟节点 } }) ``` 在上面的示例中,我们使用 `Vue.directive` 方法注册了一个名为 `myDirective` 的自定义指令指令对象包含了几个生命周期钩子函数,如 `bind`、`update` 和 `unbind`。通过这些钩子函数,可以在不同的阶段处理指令的逻辑。 在模板中使用自定义指令时,可以通过 v- 前缀来指定指令的名称。例如: ```html <template> <div v-myDirective></div> </template> ``` 以上就是在 Uniapp 中创建自定义指令的基本步骤。你可以根据具体需求在钩子函数中编写自定义指令的逻辑。希望对你有所帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值