UNPKG

@ticatec/app-data-manager

Version:

A comprehensive TypeScript library providing hierarchical data manager classes for CRUD operations, pagination, and data management in frontend applications. Features include full list, paged, and stackable data managers with built-in caching and transfor

117 lines (116 loc) 3.27 kB
import BaseDataManager from "./BaseDataManager"; import type { CheckEqual } from "./BaseDataManager"; import type { PagingDataService } from "@ticatec/app-data-service"; /** * 通用分页数据管理器抽象类,提供分页查询和数据管理功能 * @template T 继承自PagingDataService的服务类型 */ export default abstract class CommonPagedDataManager<T extends PagingDataService> extends BaseDataManager<T> { #private; private static rowsCount; private static rowsKey; private static pageNoKey; /** * 构造函数 * @param service 分页数据服务实例 * @param keyField 主键字段名或相等性检查函数 * @param options 配置选项 * @protected */ protected constructor(service: T, keyField: string | CheckEqual, options?: any); /** * 设置分页查询时每页行数的属性名称 * @param value 每页行数 */ static setRowsPerPage(value: number): void; /** * 设置默认的每页行数 * @param value 行数对应的属性名 */ static setRowsKey(value: string): void; /** * 设置分页查询时候页吗对应的属性名称 * @param value 页码对应的属性名 */ static setPageNoKey(value: string): void; /** * 根据条件通过接口代理查询 * @param criteria 查询条件 * @returns 查询结果 * @protected */ protected searchViaProxy(criteria: any): Promise<import("@ticatec/app-data-service").PaginationList>; /** * 根据条件查询数据 * @param criteria 查询条件 * @param pageNo 页码,默认为1 */ protected searchData(criteria: any, pageNo?: number): Promise<void>; /** * 处理查询返回的结果(抽象方法,由子类实现) * @param result 查询结果 * @protected */ protected abstract processDataResult(result: any): void; /** * 重置查询条件 */ resetCriteria(): any; /** * 设置新的显示页 * @param value 页码 */ setPageNo(value: number): Promise<void>; /** * 重新设置每页的行数,并从首页查询 * @param value 每页行数 */ setRowsPage(value: number): Promise<void>; /** * 重置条件查询 */ resetSearch(): Promise<void>; /** * 按照条件重新查询 * @param criteria 查询条件 */ search(criteria: any): Promise<void>; /** * 设置查询条件 * @param criteria 查询条件 * @deprecated 请使用search方法 */ setCriteria(criteria: any): Promise<void>; /** * 刷新查询数据 */ refresh(): Promise<void>; /** * 当前的查询条件 * @returns 查询条件对象 */ get criteria(): any; /** * 获取当前页码 * @returns 当前页码 * @protected */ protected getPageNo(): number; /** * 总页数 * @returns 总页数 * @protected */ protected getPageCount(): number; /** * 返回纪录总数 * @returns 纪录总数 */ get count(): number; /** * 构建查询条件 * @returns 查询条件对象 * @protected */ protected buildCriteria(): any; }