vue自定义权限指令的实现
作者: 枫沂
本文主要介绍了vue自定义权限指令的实现
定义v-hasPermi指令
/** * v-hasPermi 操作权限处理 */ import useUserStore from '@/store/modules/user' export default { mounted(el, binding, vnode) { const { value } = binding const all_permission = "*:*:*"; const permissions = useUserStore().permissions; //permission为数组,在系统登录后获取保存至vueX中 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(`请设置操作权限标签值`) } } }
接口返回的permissions的格式
permissions: [ "plan:planadd:add", "plan:planadd:edit", "performance:plan:add", "performance:plan:edit", "system:role:submit", "performance:plan:list", ]
注册指令
在index.js文件中
import hasPermi from './permission/hasPermi' export default function directive(app){ app.directive('hasPermi', hasPermi) }
挂载安装指令
/* * main.js文件 */ import { createApp } from 'vue' import directive from './directive' // directive const app = createApp(App) directive(app)
在项目中使用
<el-button type="primary" @click="addTable(scope)" :disabled="btnDis" v-hasPermi="['deptManage:yearDispatch:add']" >添加</el-button >
到此这篇关于vue自定义权限指令的实现的文章就介绍到这了,更多相关vue自定义权限内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!