import { CSSProperties, ReactNode } from 'react'; import { type SizeType } from '../config-provider'; /** * @title Pagination */ export interface PaginationProps { style?: CSSProperties; className?: string | string[]; /** * 分页按钮样式 */ pageItemStyle?: CSSProperties; /** * 被选中的分页按钮样式 */ activePageItemStyle?: CSSProperties; /** * 当前页 */ current?: number; /** * 每页数据条数 */ pageSize?: number; /** * 数据总数 */ total?: number; /** * 当前页默认值 */ defaultCurrent?: number; /** * 默认每页数据条数 */ defaultPageSize?: number; /** * 是否禁用 */ disabled?: boolean; /** * 是否在只有一页的情况下隐藏 */ hideOnSinglePage?: boolean; /** * 定制分页按钮的结构 */ itemRender?: (page: number, type: 'page' | 'more' | 'prev' | 'next', originElement: ReactNode) => ReactNode; /** * 分页器尺寸 */ size?: SizeType; /** * 是否显示数据总数 */ showTotal?: boolean | ((total: number, range: number[]) => ReactNode); /** * 是否可以改变每页条数 */ showSizeChange?: boolean; /** * 每页可以显示数据条数 */ sizeOptions?: number[]; /** * `current` 页与 `...` 之间的页码个数 * @defaultValue 2 */ bufferSize?: number; /** * 变化时的回调 */ onChange?: (pageNumber: number, pageSize: number) => void; /** * pageSize 变化时的回调 */ onPageSizeChange?: (size: number, current: number) => void; /** * `pageSize` 改变的时候重置当前页码为 `1` * @defaultValue true */ pageSizeChangeResetCurrent?: boolean; /** * 是否应用精简分页模式 */ simple?: boolean; /** * 是否显示快速跳转到某页,在 `simple` 模式下默认为 true */ showJumper?: boolean; /** * 是否显示更多页码提示(当尚无法计算数据总数时可以使用) */ showMore?: boolean; /** * 用于配置弹出框的属性 */ selectProps?: any; /** * 设置分页器的图标 */ icons?: { prev?: ReactNode; next?: ReactNode; more?: ReactNode; }; }