UNPKG

@farris/bef-vue

Version:
142 lines (141 loc) 3.39 kB
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 };