vue 权限按钮显示隐藏 (自定义指令法)

咱们做后台管理系统 肯定避免不了 权限菜单 权限按钮的显示与隐藏  我分享一下 我的实现:

import Vue from 'vue'Vue.directive('auth', {inserted: function (el, binding, vnode) {const authItem = binding.value.authItemconst authArr = [...new Set(binding.value.authArr)]if (Object.prototype.toString.call(authItem) === '[object Array]') {// 数组if (JSON.stringify(authItem.sort()) === JSON.stringify(authArr.sort())) {//存在不做操作} else {//不存在el.parentNode.removeChild(el)}} else {//字符串if (authArr.indexOf(authItem) < 0) {el.parentNode.removeChild(el)}}},
})

这里创建了一个 js 文件  具体逻辑如上

在 main.js 中引入

 使用

 这里传了两个参数 

authItem 是当前按钮的权限标记 可以传 字符串/数组 

authArr 是当前页的权限标记数组

 

 这里我是通过当前router获取的 你们也可以通过 vuex pinia 等状态管理工具 获取你们后台返回的路由数组中的meta 中的权限标记数组 具体根据项目而定 请自行修改

传的这两个参数 就是比较

authItem如果为字符串 authArr中存在这个字符串 就显示 

authItem如果为数组 authArr中的数组内容和authItem的数组内容 一样就显示

嗯....  我是这样做的 有大佬有更好的方法 欢迎评论 哈哈哈


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部