UNPKG

table-reuse

Version:

A reusable table built on top of Antd ProTable

33 lines (32 loc) 1.82 kB
/// <reference types="react" /> import type { ParamsType, ProColumns, ListToolBarProps } from "@ant-design/pro-components"; import ProTable from "@ant-design/pro-table"; import type { SortOrder } from "antd/es/table/interface"; export type TTabsProps = ListToolBarProps; export type { ListToolBarProps }; export type { ProColumns }; export type TRecord = Record<string, unknown>; /** 从 ProTable 组件推导出的 props 类型 */ export type TProTableProps<TItem extends TRecord> = React.ComponentProps<typeof ProTable<TItem>>; /** 从 ProTable props 提取 toolbar 类型 */ export type TProTableToolbar<TItem extends TRecord> = NonNullable<TProTableProps<TItem>["toolbar"]>; /** 从 toolbar.menu.items 提取 tab item 类型 */ export type TProTableTabItems<TItem extends TRecord> = NonNullable<TProTableToolbar<TItem>["menu"]>["items"]; /** ProTable 的标准 request 函数类型 */ export type TRequestFunc<TItem extends TRecord> = NonNullable<TProTableProps<TItem>["request"]>; export type TRequestFuncParams<TItem extends TRecord, Index extends number> = Parameters<TRequestFunc<TItem>>[Index]; /** Request params, sort, and filter inferred from ProTable's request signature */ export type TParams<TItem extends TRecord> = TRequestFuncParams<TItem, 0>; export type TSorter<TItem extends TRecord> = TRequestFuncParams<TItem, 1>; /** 排序字段映射 */ /** 请求函数类型,用于 ProTable 请求 */ /** 带参数的 request 函数,支持分页、排序、过滤 */ export type TRequestFuncWithArgs<TItem extends TRecord> = (params: ParamsType & { pageSize?: number; current?: number; keyword?: string; }, sort: Record<string, SortOrder>, filter: Record<string, (string | number)[]>) => Promise<{ data: TItem[]; total: number; success?: boolean; }>;