1.定义指令

具体代码。
import Vue from 'vue'
const permission = Vue.directive('permission', {
inserted: function (el, binding, vnode) {
const value = binding.value
if (!value || !Vue.prototype.$_hasPermission(value)) {
el.parentNode.removeChild(el)
}
}
})
Vue.prototype.$_hasPermission = function (value) {
let isExiting = false
// 把后台返回的按钮列表存在session中 ==>[aa,bb,cc]
let btnPermission = JSON.parse(sessionStorage.getItem('btnList'))
if (btnPermission === undefined || btnPermission === null) {
return false
}
// 判断 binding.value 是否在数组btnPermission中
for (let i = 0; i < btnPermission.length; i++) {
if (value === btnPermission[i]) {
isExiting = true
break
}
}
return isExiting
}
export { permission }
2.在mian.js中注册

3.使用
<el-button type="primary" @click="init()" v-permission="'queryBtn'">查询</el-button>
本文介绍如何在Vue项目中实现基于用户权限的元素显示隐藏。通过自定义指令'permission',结合后端返回的按钮权限列表,动态控制DOM元素的展示,确保用户只能看到其有权限操作的功能。

8587

被折叠的 条评论
为什么被折叠?



