import React from 'react'; import { TableProps, ColumnProps, GroupHeaderProps, GroupFooterProps } from '@alifd/next/types/table'; import { PaginationProps } from '@alifd/next/types/pagination'; import { ButtonProps } from '@alifd/next/types/button'; import { propsType as comfirmType } from '../dialog/confirm'; interface column extends ColumnProps { tips?: any; iconType?: string; iconColor?: any; dataIndex?: string; isSpecialIndex?: boolean; iconSize?: "inherit" | "small" | "large" | "medium" | "xxs" | "xs" | "xl" | "xxl" | "xxxl"; } interface action { width: string | number; title: React.ReactNode; props: ColumnProps; buttons: { visible?: boolean | Function; onClick?: Function; }[]; max: number; maxText: string; } interface batchAction extends ButtonProps { comfirmProps?: comfirmType; } interface rowSelection { getProps?: (record: object, index: number) => void; onChange?: (selectedRowKeys: Array, records: Array) => void; onSelect?: (selected: boolean, record: object, records: Array) => void; onSelectAll?: (selected: boolean, records: Array) => void; selectedRowKeys?: Array; mode?: 'single' | 'multiple'; columnProps?: () => ColumnProps; } interface tablePagination extends PaginationProps { showTotal: boolean; } export interface propsType extends TableProps { /** 是否显示等待 */ isLoading?: boolean; /** 分页器配置 */ pagination?: tablePagination; /** 渲染数据的配置 */ columns: column[]; /** 操作集合 */ actions?: action; /** 批量操作按钮 */ batchActionContent?: Array; /** 不显示cell内的气泡 */ noBalloon?: boolean; /** table.groupHeader的属性 */ groupHeader?: GroupHeaderProps; /** table.groupFooter的属性 */ groupFooter?: GroupFooterProps; /** 是否展示基础的empty */ baseEmpty?: boolean; /** 默认Empty底部文案 */ empty?: React.ReactNode; /** 是否启用选择模式 * next的rowSelection属性申明有问题,明明还有一个columnProps等方法 * 在这里做补充 * */ rowSelection?: rowSelection; /**文案 */ locale?: any; /**批量操作函数*/ batchClearAction?: Function; } interface stateType { selectedRowKeys: any[]; } declare class LPTable extends React.Component { TableId: string; constructor(props: any); rowSelectionProxy: (rowSelection: any, batchActionContent: any) => any; generateTitle(tips: any, title: any, iconType: string | undefined, iconColor: string | undefined, iconSize: any): any; columnCell: (value: any, index: any, data: any, column: any, noBalloon: boolean | undefined, balloonProps: any) => any; renderTextButton(textButton: any, item: any, index: any, actionIndex: any): any; getActionable: (visible: any, data: any, defaultValue: any) => any; generateActions: (value: any, index: any, data: any, actions: any) => JSX.Element; returnBatchActionContent: (batchActionContent: any) => any; renderfooter: (paginationConfig: any, batchActionContent: any) => JSX.Element | null; renderColums: (columns: any, dataSource: any, noBalloon: any) => any; getPaginationConfig: (pagination: any, batchActionContent: any, locale: any) => any; render(): JSX.Element; } export default LPTable;