import type { IPagedDataManager } from "@ticatec/app-data-manager"; import type { PageInitialize } from "@ticatec/uniface-micro-frame/common"; /** * 一次分页查询后的结果快照 */ export interface PagingResult { list: Array; total: number; pageNo: number; pageCount: number; criteria: any; } /** * useManagedPaging 的配置项 * @description dataManager/initializeData/busyIndicator/criteria 使用 getter 函数传入, * 以便在组件 props 发生变化时始终读取到最新的值 */ export interface ManagedPagingOptions { dataManager: () => IPagedDataManager; initializeData?: () => PageInitialize | null | undefined; busyIndicator?: () => string | null | undefined; defaultBusyText: string; /** * 当前查询条件,用于非重置场景下的查询 */ criteria: () => any; /** * 每次查询结果返回后回调,通常用于把结果写回组件自身可绑定的 * list/criteria/pageNo/pageCount/total 等 prop */ onResult: (result: PagingResult) => void; /** * 首次加载之后(查询/翻页/改每页行数/刷新)出错时的回调;不提供时默认用 MessageBox * 弹出错误信息,避免错误沦为无任何用户反馈的 unhandled rejection */ onError?: () => ((ex: any) => void) | null | undefined; } /** * 封装“托管型”分页列表(IPagedDataManager)的通用查询/翻页逻辑: * - 首次挂载时执行 initializeData + search,并统一处理 busy 指示器和错误捕获 * - 暴露 doSearch/onPageChange/onRowCountChanged,供查询面板和分页器直接绑定 * * 用于 cards/managed/PagingListPage.svelte、data-table/ManagedPagingDataTableBoard.svelte、 * data-table/managed/PagingListPage.svelte 三处共享同一套加载状态机。 */ export declare function useManagedPaging(options: ManagedPagingOptions): { readonly loaded: boolean; readonly error: any; doSearch: (reset?: boolean) => Promise; onPageChange: (page: number) => Promise; onRowCountChanged: (rows: number) => Promise; refresh: () => Promise; initialize: () => Promise; };