jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
77 lines (76 loc) • 1.94 kB
TypeScript
import type { LocaleProps, ThemeProps } from 'jamis-core';
export type MODE_TYPE = 'simple' | 'normal';
export type PaginationWidget = 'pager' | 'perpage' | 'total' | 'go' | 'statistics';
export interface BasicPaginationProps {
/**
* 通过控制layout属性的顺序,调整分页结构 total,perPage,pager,go
* @default ['pager']
*/
layout?: string | PaginationWidget[];
/**
* 最多显示多少个分页按钮。
*
* @default 5
*/
maxButtons: number;
/**
* 模式,默认normal,如果只想简单显示可以配置成 `simple`。
* @default 'normal'
*/
mode?: MODE_TYPE;
/**
* 当前页数
*/
activePage: number;
/**
* 总条数
*/
total?: number;
/**
* 最后一页,总页数(如果传入了total,会重新计算lastPage)
*/
lastPage?: number;
/**
* 每页显示条数
* @default 10
*/
perPage?: number;
/**
* 是否展示分页切换,也同时受layout控制
* @default false
*/
showPerPage?: boolean;
/**
* 指定每页可以显示多少条
* @default [5, 10, 20, 50, 100]
*/
perPageAvailable?: Array<number>;
/**
* 是否显示快速跳转输入框
* @default true
*/
showPageInput?: boolean;
/**
* 是否显示统计信息, 和在layout里配置total 或者 statistics 效果一样
*/
showStatistics?: boolean;
/**
* 是否禁用
* @default false
*/
disabled?: boolean;
hasNext?: boolean;
/**
* 弹层挂载节点
* @default false
*/
popOverContainerSelector?: string;
onPageChange?: (page: number, perPage?: number) => void;
}
export interface PaginationCompProps extends BasicPaginationProps, ThemeProps, LocaleProps {
popOverContainer?: any;
}
export interface PaginationState {
pageNum: string;
perPage: number;
}