import { ProTableProps, SortValue } from './types'; import { BasePaginatedOptions, Result } from 'ahooks/lib/useFusionTable'; import { FilterProps } from '@/components/filter'; import { Field } from '@alifd/next'; interface TableParams { sorters: Record; searchers: Record; filters: Record; } type FilterParams = Record; export interface UseProTableResult extends Omit, 'tableProps'> { tableProps: { dataSource: Item[]; loading: boolean; onSort: ProTableProps['onSort']; onFilter: ProTableProps['onFilter']; onSearch: ProTableProps['onSearch']; paginationProps: ProTableProps['paginationProps']; }; filterProps: FilterProps; } export interface UseProTableServiceParams { /** * 当前页 */ current: number; /** * 每页条数 */ pageSize: number; /** * 表格筛选/排序/搜索参数 */ tableParams: TableParams; /** * 筛选表单参数 */ filterParams: FilterParams; } export type UseProTableService = (params: UseProTableServiceParams) => Promise<{ total: number; dataSource: Item[]; [key: string]: any; }>; export interface UseProTableOptions extends Omit, 'paginated'> { field?: Field; } /** * ProTable hooks * @param service 请求service * @param options 参数 */ export declare const useProTable: (service: UseProTableService, options?: UseProTableOptions) => UseProTableResult; export {};