import { FilterOptionsType } from "./FilterField"; import { AxiosInstance } from "axios"; export declare enum Operator { eq = "eq", dateEq = "dateEq", dateLe = "dateLe", dateGe = "dateGe", dateTimeLe = "dateTimeLe", dateTimeGe = "dateTimeGe", dateBetween = "dateBetween", dateTimeBetween = "dateTimeBetween", numberBetween = "numberBetween", ne = "ne", gt = "gt", lt = "lt", ge = "ge", le = "le", startLike = "startLike", endLike = "endLike", like = "like", in = "in", notIn = "notIn", isNull = "isNull", isNotNull = "isNotNull" } export declare enum Order { asc = "asc", desc = "desc" } export interface FilterOption { /** * 过滤字段名 */ field: string; /** * 操作条件 */ operator: Operator; /** * 操作值 */ value: unknown; /** * 是否区分大小写 */ ignoreCase?: boolean; /** * 操作逻辑(and/or) */ logic?: 'and' | 'or'; /** * 子条件 */ filters?: FilterOption[]; } /** * 分页请求对象 */ declare class PageRequest { offset: number; limit: number; filters: FilterOption[]; logic: 'and' | 'or'; data: any | null; sort: string | null; order: 'asc' | 'desc' | null; } /** * 分页返回的参数 */ export declare class PageResponse { first: boolean; last: boolean; number: number; numberOfElements: number; size: number; sort: null; totalElements: number; totalPages: number; } export declare class Pagination { axiosInstance: AxiosInstance; pageUrl: string; /** * 查询条件表单对象 */ queryForm: any; /** * 过滤字段 */ filterFields: FilterOptionsType[]; /** * 分页参数 */ private readonly requests; /** * 分页返回的参数 */ private responses; /** * 默认与过滤条件 */ private defaultFilters; /** * 默认排序字段 */ private defaultSort; /** * 默认排序方式 */ private defaultOrder; /** * 分页返回结果 */ content: T[]; debug: boolean; /** * 数据加载后回调 * 勿必使用 => 定义处理方法。 */ afterDataLoad?: (data: unknown) => void; /** * 数据请求前 * 勿必使用 => 定义处理方法。 */ beforeDataLoad?: () => void; constructor(axiosInstance: AxiosInstance, pageUrl: string, pageSize?: number); get totalElements(): number; get pageIndex(): number; set pageIndex(pageIndex: number); /** * 获取分页请求参数对象 */ get requestParams(): PageRequest; private covertResponses; private appendDeclareFilters; /** * 加入高级模式条件 * @private */ private appendAdvanceFilters; /** * 刷新当前页 * @param concat 是否保存原结果集(默认false) */ refresh(concat?: boolean): Promise; /** * 重新从第一页加载 */ reload(): Promise; /** * 重置查询 */ reset(): Promise; isLast(): boolean; set pageSize(limit: number); get pageSize(): number; /** * 当前内容为空 */ get isEmpty(): boolean; /** * 跳转到指定页 * @ param pageIndex */ toPage(pageIndex?: number): Promise; /** * 下一页 * @ param concat */ nextPage(concat?: boolean): Promise; putData(key: string, value: any): void; getData(key: string): any; removeData(filedName: string): void; clearData(): void; /** * 添加默认过滤条件 * @param filedName * @param filterValue * @param filterOperator 默认为Operator.eq * @param override */ addDefaultFilter(filedName: string, filterValue: unknown, filterOperator?: Operator, override?: boolean): void; /** * 添加与过滤条件 * @param filedName * @param filterValue * @param filterOperator 默认为Operator.eq * @param override 默认为true * @param logic 默认为and */ addFilter(filedName: string, filterValue: unknown, filterOperator?: Operator, override?: boolean, logic?: 'and' | 'or'): void; /** * 添加过滤条件 * @param filter * @param override */ addFilterOption(filter: FilterOption, override?: boolean): void; /** * 删除一个过滤条件 * @param filedName */ removeFilter(filedName: string): void; removeDefaultFilter(filedName: string): void; /** * 清除所有过滤器 */ clearFilters(): void; /** * 清除默认过滤器 */ clearDefaultFilters(): void; /** * 设置默认排序 * @param sortName * @param order */ setDefaultSort(sortName: string, order: 'asc' | 'desc'): void; /** * 设置排序 * @param sortName * @param order */ setSort(sortName: string, order?: 'asc' | 'desc' | 'ascend' | 'descend'): void; set logic(logic: 'and' | 'or'); get logic(): 'and' | 'or'; getSort(): string; getOrder(): string; clearSort(): void; getFilter(key: string): FilterOption; doExport(exportUrl: string, fileName: string, config?: any): void; downloadFile(data: any, fileName: string): void; } export {};