|
|
|
|
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;
|
|
|
|
|
}
|