import React, { Component } from 'react'; import { ColumnProps, TableProps } from 'antd/lib/table'; import { EntityFormProps } from './EntityForm'; import { OperatorBarProps } from './OperatorBar'; import { SearchFromBarProps } from './SearchBar'; import { SearchForm, SearchFormProps } from './SearchForm'; import { DomainService, Entity, ListOptions, ListResult } from 'matrix-ui-service'; import { CheckboxField, InputField, SelectField } from '../../ant-design-field'; import { RouteChildrenProps } from 'react-router'; import { EntityExporterProps } from './EntityExporter'; import { TablePaginationConfig } from 'antd/lib/table/interface'; export interface OperatorSwitch { update?: boolean; create?: boolean; delete?: boolean; view?: boolean; exportSelected?: boolean; exportAll?: boolean; } export interface EntityListProps extends Partial { name?: string; operatorVisible?: OperatorSwitch; hasNestColumnName?: boolean; } export interface EntityListState { selectedRowKeys?: any[]; formProps?: EntityFormProps; searchParam?: any; exportList?: Entity[]; tableLoading?: boolean; } export interface EntityListTableProps extends TableProps { pagination: TablePaginationConfig; } export interface EntityColumnProps

extends ColumnProps

{ fieldType?: typeof InputField | typeof SelectField | typeof CheckboxField; valueTransfer?: (value: any) => any; renderText?: (text: any, record?: P, index?: number) => string; cellWidth?: number; /** * react-data-export/types/index.d.ts类型有问题,以文档为准 * https://www.npmjs.com/package/react-data-export */ cellStyle?: any; } /** * EntityList不做分页,获取所有数据 * 但后台max还是限制了1000,所以大于这个记录数不能用EntityList,改用EntityPageList * 这里的pagination配置的是前台分页信息 */ export declare abstract class EntityList

extends Component { listName: string; state: S; tableProps: EntityListTableProps; uuid: string; entityFormWrapper?: React.ComponentType>; render(): JSX.Element; abstract get domainService(): DomainService; abstract get columns(): EntityColumnProps[]; /** * 如果包含.号分隔的字段名,在antd4中需要转化为数组 * 嵌套 dataIndex 支持从 'xxx.yyy' 改成 ['xxx', 'yyy'] * @see https://ant.design/docs/react/migration-v4-cn */ getNamePathColumns(): EntityColumnProps[]; get exportColumns(): EntityColumnProps[]; query(): Promise; /** * EntityList切换页面到第一页时不会触发查询,所以需要手工调用query * EntityPageList切换页面后会触发查询 * @param toPageOne 是否回到首页 */ refresh(toPageOne?: boolean): void; updateTableProps(promise: Promise): void; componentDidMount(): void; restoreState(): void; /** * 不用get property是因为无法继承 */ getQueryParam(): ListOptions; toString(): string; get className(): any; pageChange(page: number): void; pageSizeChange(current: number, size: number): void; updateStorePageInfo(): void; changeSelectRows(selectedRowKeys: React.Key[], selectedRows: Entity[]): void; /** * 不用lambda表达式是因为无法被子类继承重载 */ handleCreate(): void; /** * 新增时的初始值 */ getInitItem(): Entity | undefined; handleUpdate(): void; /** * 可用于事件处理参数绑定 * @param item */ doUpdate(item: any): void; handleDelete(): Promise; /** * 可用于事件处理参数绑定 * @param ids */ doDelete(ids: any): Promise; handleDeleteError(err: any, msg?: string): void; handleView(): void; /** * 不用get property是因为无法继承 */ getSelectItem(): Entity | undefined; getSelectItems(): any; handleFormSuccess(item: Entity): void; handleFormCancel(): void; genFormProps(action: string, item?: Entity, exProps?: Partial): EntityFormProps; handleSearch(searchParam: any): void; getEntityForm(): React.ComponentType; getEntityFormPop(formProps?: EntityFormProps): JSX.Element; getSearchForm(): typeof SearchForm | null; searchFormRender(props: SearchFormProps): React.ReactNode; getSearchFormBar(props?: Partial): React.ReactNode; getOperatorEnable(): OperatorSwitch; /** * 可以通过props传入,也可以重载本方法 */ getOperatorVisible(): OperatorSwitch; getOperatorProps(): Partial | undefined; get store(): import("matrix-ui-service").DomainStore; get dataList(): any; handleExportSelected(): void; handleExportAll(): void; getExportProps(): EntityExporterProps; getExportPop(): JSX.Element; }