import React from 'react'; import { PaginationProps } from 'antd/es/pagination'; export interface PageInfo { page: number; offset: number; pageSize: number; } export interface ListProps { idKey?: string; onFetch: (pageInfo: PageInfo) => Promise<{ list: T[]; total: number; }>; onShift?: ShiftHandler; renderItem: (item: T, idx: number) => React.ReactNode; } export declare type ShiftHandler = (from: T, to: T, type: 'up' | 'down', instance: List) => Promise; interface State { dataSource: T[]; pagination: PaginationProps; loading: boolean; error?: Error; empty?: boolean; } /** * 简单带分页的列表组件 */ export default class List extends React.Component, State> { state: State; /** * 是否可以上移 */ canShiftUp(id: any): boolean; /** * 是否可以下移 */ canShiftDown(id: any): boolean; shiftUp(id: any): Promise; shiftDown(id: any): Promise; /** * 移动元素 */ shift(id: any, dir?: 'up' | 'down'): Promise; /** * 根据id获取字段在全局的索引 * @returns [number, number] 全局索引,当前页面索引 */ getIndexById(id: any): [number, number]; fetch: () => Promise; render(): JSX.Element; private fetchItem; private handleShift; } export {};