Vue 指令實現(xiàn)按鈕級別權(quán)限管理功能
更新時間:2019年04月23日 14:35:49 作者:xm726
這篇文章主要介紹了Vue 指令實現(xiàn)按鈕級別權(quán)限管理功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
在項目中經(jīng)常有需求要根據(jù)用戶的權(quán)限對界面上的元素進(jìn)行控制,這里介紹了一直簡單的實現(xiàn),僅供參考。
當(dāng)前用戶的權(quán)限列表儲存在 store 里,也可以是其他地方。
指令
// src/directives/permission.js
import Vue from 'vue';
import store from '@/store';
import {get} from '@/utils';
// 是否有權(quán)限
const hasPermission = userPermission => {
let userPermissionList = Array.isArray(userPermission) ? userPermission : [userPermission];
// 當(dāng)前用戶的權(quán)限列表
let permissionList = get(store, 'getters["user/permission"]', []);
return userPermissionList.some(e => permissionList.includes(e));
};
// 指令
Vue.directive('per', {
bind: (el, binding, vnode) => {
if (!hasPermission(binding.value)) {
el.parentNode.removeChild(el);
}
}
});
// 全局判斷方法
Vue.prototype.$_has = hasPermission;
使用方法
在 mian.js 引入
<div v-per="[admin]">
admin 可見
是否為admin:{{$_has('admin')}} //true
<div>
總結(jié)
以上所述是小編給大家介紹的Vue 指令實現(xiàn)按鈕級別權(quán)限管理功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
Vite+TS+Vue開啟eslint和prettier規(guī)范及校驗方式
這篇文章主要介紹了Vite+TS+Vue開啟eslint和prettier規(guī)范及校驗方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06

