tav-ui
Version:
47 lines (46 loc) • 1.8 kB
TypeScript
import { type PermissionApiProps } from './global-config-types';
import { type PermissionQueryContent } from './PermissionQuery/types';
import { type PermissionQueryDataContent } from './PermissionDataQuery/types';
export interface ApiPermissionParams {
/** appid,必传不能为空 */
appId: number | string;
/** 父code,必传不能为空 */
code: string;
/** 子code数组,非必传 */
subCodes?: string[];
/** 文件方案对应的应用id,可以不传,如果不传就取appId */
fileSchemeTargetAppId?: number;
}
export interface ApiPermissionResponse {
appId: number | string;
recordkeyName?: string;
recordKeyValue?: string;
permissionCodes?: string[];
fileTypeCodes?: string[];
}
export interface ApiPermissionDataParams extends ApiPermissionParams {
/** 父code对应的接口地址,可以如果resource上有参数,则必传,而且必须填充好 */
resource?: string;
/** 如数据接口有参数则必传 */
body?: Record<string, any>;
/** 数据唯一标识的名称,可以不传,默认为 id */
recordkeyName?: string;
}
export interface PermissionsContext {
id: string;
type: string;
disabled?: boolean;
getPermission: (id: string) => PermissionContext | undefined;
addPermission: (permissionItem: PermissionContext) => void;
removePermission: (permissionItem: PermissionContext) => void;
}
export interface PermissionContext {
id: string;
type: string;
disabled?: boolean;
permission?: PermissionQueryContent | PermissionQueryDataContent | {
apiParams: ApiPermissionParams | ApiPermissionDataParams;
apiPermission?: PermissionApiProps['apiPermission'];
apiPermissionData?: PermissionApiProps['apiPermissionData'];
};
}