@lvxiaowu/antd4
Version:
antd4-components
50 lines (48 loc) • 1.72 kB
TypeScript
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