import type { FormInstance } from 'antd/es/form'; import type { TablePaginationConfig } from 'antd/es/table/interface'; import type { UseFormFetchOption } from '../useFormFetch'; export type Page = { pageCurrent: number; pageSize: number; }; export type ResponseData = Page & { records: T[]; totalRecords: number; }; export interface UseTablePagingOption extends Omit { /** * 表单实例 */ form?: FormInstance; /** * 请求函数 */ request: (page: Page, values: FormValues) => Promise>; /** * 默认从第几页开始 * @default 1 */ defaultPageCurrent?: number; /** * 每页多少个数据 * @description 变更不会引起重新拉取数据,如果有需求,可以手动刷新或修改组件 * @default 10 */ defaultPageSize?: number; /** * 默认参数 * @description 这个适合页面进来就需要预置的参数 */ defaultParams?: Partial; /** * 参数 * @description 这部分参数不在表单里,变化后重新发起第一页查询 */ params?: Partial; /** * 自定义参数 */ formatParams?: (v: [Page, FormValues]) => [Page, FormValues]; } declare const useTablePaging: ({ request, defaultPageCurrent, defaultPageSize, defaultParams, params, formatParams, ...restOptions }: UseTablePagingOption) => { searchObject: Record; onSubmit: () => void; onReset: () => void; refresh: () => void; refreshByDelete: (n: number) => void; tableProps: { loading: boolean; pagination: { current: number; pageSize: number; total: number; showSizeChanger: boolean; showTotal: (total: number) => string; }; dataSource: ListItem[]; onChange: (p: TablePaginationConfig) => void; }; }; export default useTablePaging;