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