diff --git a/web/src/plugin/permission/directive.permission.ts b/web/src/plugin/permission/directive.permission.ts new file mode 100644 index 0000000..032e5aa --- /dev/null +++ b/web/src/plugin/permission/directive.permission.ts @@ -0,0 +1,10 @@ +import permissionUtil from './func.permission' +export default { + mounted (el:any, binding:any) { + const { value } = binding + const hasPermission = permissionUtil.hasPermissions(value) + if (!hasPermission) { + el.parentNode && el.parentNode.removeChild(el) + } + } +} diff --git a/web/src/plugin/permission/func.permission.ts b/web/src/plugin/permission/func.permission.ts new file mode 100644 index 0000000..77911fa --- /dev/null +++ b/web/src/plugin/permission/func.permission.ts @@ -0,0 +1,17 @@ +import XEUtils from 'xe-utils' +import {BtnPermissionStore} from "/@/plugin/permission/store.permission"; + +export default { + hasPermissions (value:string | string[]) { + const BtnPermission = BtnPermissionStore().data + if (import.meta.env.VITE_PM_ENABLED) { + if(value instanceof Array){ + return XEUtils.includeArrays(BtnPermission, value) + }else if(typeof value === 'string'){ + const index = XEUtils.arrayIndexOf(BtnPermission, value) + return index>0?true:false + } + } + return true + } +}