import { Directive, DirectiveBinding } from 'vue'; import { useUserStore } from "@/store/modules/user"; /** * 按钮权限 */ export const hasButton: Directive = { mounted(el: HTMLElement, binding: DirectiveBinding) { const userStore = useUserStore(); const { value } = binding; // console.log("按钮权限",el,"-->",binding,"-->",value,"-->",userStore.myPower.menuButIdAry,"-->",userStore.myPower); if (value) { const requiredPerms = value; // DOM绑定需要的按钮权限标识 const hasPerm = userStore.myPower.menuButIdAry.some((perm: any) => { return requiredPerms.includes(perm); }); if (!hasPerm) { el.parentNode?.removeChild(el); } } } } /** * app权限 */ export const hasApp: Directive = { mounted(el: HTMLElement, binding: DirectiveBinding) { const userStore = useUserStore(); const { value } = binding; // console.log("app权限",el,"-->",binding,"-->",value,"-->",userStore.myPower.appKeyAry,"-->",userStore.myPower); // console.log("我的App--->",userStore.myPower) if (value) { const requiredPerms = value; // DOM绑定需要的app权限标识 const hasPerm = userStore.myPower.appKeyAry.some((perm: any) => { return requiredPerms.includes(perm); }); if (!hasPerm) { el.parentNode?.removeChild(el); } } } } export const hasAppList = (signCode:string) => { const userStore = useUserStore(); return userStore.myPower.appKeyAry.some((perm: any) => { return perm.includes(signCode); }); } /** @ 作者: 秦东 @ 时间: 2025-12-11 16:30:08 @ 功能: 自定义App分组指令授权 */ export const hasAppGroup: Directive = { mounted(el: HTMLElement, binding: DirectiveBinding) { const userStore = useUserStore(); const { value } = binding; // console.log("app权限",el,"-->",binding,"-->",value,"-->",userStore.myPower.appGroupPower,"-->",userStore.myPower); // console.log("我的App--->",userStore.myPower) if (value) { const requiredPerms = value; // DOM绑定需要的app权限标识 const hasPerm = userStore.myPower.appGroupPower.some((perm: any) => { return requiredPerms.includes(perm); }); if (!hasPerm) { el.parentNode?.removeChild(el); } } } } /** @ 作者: 秦东 @ 时间: 2025-12-11 16:39:01 @ 功能: 判断应用级权限 */ export const appHasPower = (signCode:string,buttonKey:string) => { const userStore = useUserStore(); console.log("判断应用级权限--appSystemPower->",userStore.myPower.appSystemPower) return userStore.myPower.appSystemPower.some((perm: any) => { console.log(signCode,"判断应用级权限--->",buttonKey) if(perm.AppId == signCode){ console.log("判断应用级权限-1111-->",perm.AppId,buttonKey) console.log("判断应用级权限-222-->",perm.butPower && Array.isArray(perm.butPower)) if(perm.butPower && Array.isArray(perm.butPower)){ // console.log("判断应用级权限--->",perm.AppId,buttonKey) return perm.butPower.includes(buttonKey) } } }); } /** @ 作者: 秦东 @ 时间: 2025-12-12 09:33:21 @ 功能: 判断表单级权限 */ export const formHasPower = (signCode:string,tormCode:string,buttonKey:string,classType:number) => { const userStore = useUserStore(); // console.log("判断表单级权限-1111-->",signCode,userStore.myPower.appSystemPower) if(userStore.myPower.appSystemPower && Array.isArray(userStore.myPower.appSystemPower)){ return userStore.myPower.appSystemPower.some((perm: any) => { if(perm.AppId == signCode){ // console.log("判断表单级权限-1112-->",signCode) // console.log("判断表单级权限-1113-->",tormCode) // console.log("判断表单级权限-1114-->",perm.formPower) // console.log("判断表单级权限-1115-->",buttonKey) if(perm.formPower && Array.isArray(perm.formPower)){ return perm.formPower.some((formPerm: any) => { switch(classType){ case 1: return formPerm.AppId == tormCode && formPerm.tablePower.includes(buttonKey); break; case 2: return formPerm.AppId == tormCode && formPerm.PagePower.includes(buttonKey); break; default: return formPerm.AppId == tormCode && formPerm.listPower.includes(buttonKey); break; } }); } } }); } } /** @ 作者: 秦东 @ 时间: 2025-12-12 13:42:40 @ 功能: 判断自定义App菜单 */ export const hasCustomAppMenu = (appKey:string,menuKey:string) => { // console.log("判断自定义App菜单--->",appKey,menuKey) const userStore = useUserStore(); if(userStore.myPower.appSystemPower && Array.isArray(userStore.myPower.appSystemPower)){ return userStore.myPower.appSystemPower.some((perm: any) => { if(perm.AppId == appKey){ if(perm.formTrue && Array.isArray(perm.formTrue)){ return perm.formTrue.includes(menuKey); } } }); } return false; } //自定义App分组 export const hasGroupApp: Directive = { mounted(el: HTMLElement, binding: DirectiveBinding) { const userStore = useUserStore(); const { value } = binding; // console.log("app权限appGroupMenu",el,"-->",binding,"-->",value,"-->",userStore.myPower.appGroupMenu,"-->",userStore.myPower); // console.log("我的App--->",userStore.myPower) if (value) { const requiredPerms = value; // DOM绑定需要的app权限标识 const hasPerm = userStore.myPower.appGroupMenu.some((perm: any) => { // console.log("我的App-判断值-->",requiredPerms.includes(perm)) return requiredPerms.includes(perm); }); if (!hasPerm) { el.parentNode?.removeChild(el); } } } } export const hasCustomAppGroup = (appKey:string) => { const userStore = useUserStore(); if(userStore.myPower.appGroupMenu && Array.isArray(userStore.myPower.appGroupMenu)){ return userStore.myPower.appGroupMenu.some((perm: any) => { // console.log("--->",perm,appKey) if (perm == appKey){ return true } }); } return false; }