@farris/bef-vue
Version:
142 lines (141 loc) • 3.39 kB
TypeScript
import { Type, Entity, EntityState, Repository, ViewModel } from '@farris/devkit-vue';
import { BefSessionService } from './session/index';
import { BefProxy } from './bef-proxy';
/**
* Bef实体仓库
* @description
*/
declare abstract class BefRepository<T extends Entity> extends Repository<T> {
/**
* Bef代理
*/
abstract apiProxyType: Type<BefProxy>;
/**
* 注入器
*/
private injector;
/**
* Bef会话管理
*/
sessionService: BefSessionService;
/**
* API代理
*/
apiProxy: BefProxy;
/**
* 实体状态
*/
entityState: EntityState<T>;
/**
* 分页信息
*/
paginationInfo: any;
/**
* 构造函数
*/
constructor(viewModel: ViewModel);
/**
* 初始化
*/
init(): void;
/**
* 初始化实体状态
*/
private initEntityState;
/**
* 初始化Proxy
*/
private initApiProxy;
/**
* 初始化SessionService
*/
private initSessionService;
/**
* 初始化分页信息
*/
private initPaginationInfo;
/**
* 查询实体
*/
getEntities(filters: any[], sorts: any[], pageSize?: number, pageIndex?: number): Promise<T[]>;
/**
* 获取实体
*/
getEntityById(id: string): Promise<T>;
/**
* 加锁编辑数据
* @param id 数据id
* @returns
*/
editEntityById(id: string): Promise<T | null>;
/**
* 创建新实体
*/
createEntity(defaultValue?: any): Promise<T>;
/**
* 批量创建实体
* @param defaultValues 实体字段默认值,keyvalue格式
* @returns 实体数组
*/
createEntities(defaultValues: Array<any>): Promise<T[]>;
/**
* 创建从表或从从表实体
* @param path 实体路径
* @param defaultValues 默认值,keyvalue格式
* @returns
*/
createEntityByPath(path: string, defaultValues?: Array<any>): Promise<T>;
/**
* 批量创建从表或从从表实体
* @param path 实体路径,如/1/educations
* @param defaultValues 默认值,keyvalue格式
* @returns 实体数组
*/
createEntitiesByPath(path: string, defaultValues: Array<any>): Promise<T[]>;
/**
* 删除实体
*/
removeEntityById(id: string): Promise<boolean>;
/**
* 批量删除仓库数据
* @param ids 实体id数组
* @returns
*/
removeEntitiesByIds(ids: string[]): Promise<boolean>;
/**
* 删除从表或从从表实体
* @param fpath 实体路径
* @param id 实体id
* @returns
*/
removeEntityByPath(fpath: string, id: string): Promise<boolean>;
/**
* 批量删除从表或从从表数据
* @param fPath 实体路径
* @param ids 实体id数组
* @returns
*/
removeEntitiesByPath(fPath: string, ids: string[]): Promise<boolean>;
/**
* 删除实体
*/
removeAndSaveEntityById(id: string): Promise<boolean>;
/**
* 保存实体变更
*/
saveEntityChanges(): Promise<boolean>;
/**
* 撤销实体变更
*/
cancelEntityChanges(): Promise<boolean>;
/**
* 是否有未保存的变更
* @returns
*/
hasChanges(): Promise<any>;
/**
* 构造EntityFilter
*/
private buildEntityFilter;
}
export { BefRepository };