UNPKG

@lvxiaowu/antd4

Version:

antd4-components

50 lines (48 loc) 1.72 kB
import { TableProps, ColumnType } from 'antd/es/table' import { TableRowSelection } from 'antd/es/table/interface' import { FormItemProps } from 'antd/es/form' import { SortableContainerProps, SortableHandle } from 'react-sortable-hoc' import React from 'react' import TableStore from './store' interface EditableCellProps extends FormItemProps { // 转换非编辑状态下显示的值 transformDisplay?(value?: any): any // 是否保持为编辑状态 keepEditing?: boolean allowClear?: boolean } type Editable = (record: object, rowIndex: number) => any interface Column extends ColumnType<any> { rules?: [] editable?: boolean | Editable keepEditing?: boolean } type ChangedValue = { rowKeyData: string columnKey: string value: any } export interface TableStoreInstance { readonly $table?: TableStore } interface SdTableProps extends TableProps<any> { store?: TableStore | TableStoreInstance searchbar?: React.ReactNode // 是否可选择 selectable?: boolean | TableRowSelection<any> // 保存可编辑表格的时候触发 onEditorSave?(editedValues: object, editedList: Array<object>): void columns: Array<Column> // 是否可拖拽 draggable?: boolean | SortableContainerProps // 拖拽排序回调 onDragSort?(list: Array<any>): void // 可编辑的单元格value改变时触发,用于同步外界数据源,注意不要引起死循环 onEditorChange?(changedValue: ChangedValue, allValues: object): void } declare function EditableCell(props: EditableCellProps) declare const SdTable: React.FC<SdTableProps> & { EditableCell: typeof EditableCell DragHandle: typeof SortableHandle } export default SdTable