/** * v-hasPermi 操作权限处理 * Copyright (c) 2019 ruoyi */ /** * v-clickOutside * 点击元素外部事件 * 接收参数:function类型,点击外面时返回true,点击内部时返回false */ import {store} from '../../store' import type { Directive, DirectiveBinding } from 'vue' const directive: Directive = { mounted(el: HTMLElement, binding: DirectiveBinding) { const { value } = binding const all_permission = "*:*:*"; const permissions =store.getters.loginInfo?.permissions //store.getters && store.getters.permissions if(permissions || permissions.length<=0){ return } if (value && value instanceof Array && value.length > 0) { const permissionFlag = value const hasPermissions = permissions.some((permission:any) => { return all_permission === permission || permissionFlag.includes(permission) }) if (!hasPermissions) { //el.style() el.parentNode && el.parentNode.removeChild(el) } } else { throw new Error(`请设置操作权限标签值`) } } } export default directive