import React from 'react'; // 列配置 export interface ColumnProps { columnType: string; columnChsName: string; columnName: string; width?: number; columnAttrObj?: any; sortFlag?: boolean; sortConfig?: any; isMobile?: boolean; columnIndex?: number; showIndex?: boolean; questionText?: string; [propName: string]: any; } // 单元格基本数据格式 export interface CellDataProps { text: string; value: any; extraData?: any; readonlyFlag?: boolean; } // 行数据格式 export interface RowDataProps { colChsName: string; colName: string; cellValueList: CellDataProps[]; dynamicCellConfigDTO?: any; linkObjRowDateList?: any; } // 行记录格式 export interface RowProps { id: number; rowData: RowDataProps[]; [propName: string]: any; } export interface OperateConfigProps { menusGroup?: Object[]; buttonsGroup?: Object[]; moreGroup?: Object[]; renderCustomNode?: Function; } export interface LoadConfigProps { onScroll?: Function; distanceToLoad?: number; } export interface TableProps extends LoadConfigProps { tableId: string | number; // 表格唯一id columns: ColumnProps[]; // 列配置 dataSource: RowProps[]; // 数据源 rowClassName?: string | Function; // 行class rowStyle?: Object | Function; // 行style rowRenderer?: Function; bordered?: boolean; // 是否显示边框 height?: number; // 表格高度 width?: number; // 表格宽度 emitChangeCell?: Function; // 单元格修改回调 sortConfig?: any; paginationConfig?: any; // 分页配置 showIndex?: boolean; // 是否显示序号 showExpand?: any; // 是否显示展开详情图标 emptyPlaceholder?: string; // 数据为空时默认显示 cellEditable?: boolean; // 单元格是否可编辑 rowHeight?: number; // 初始化行高 headerHeight?: number; // 初始化表头高度 columnWidth?: number; // 初始化单元格宽度 loading?: boolean; // 是否加载中 rowSelection?: any; // 复选配置 noDataPlaceholder?: any; // 无数据时显示文案 contentMenu?: any; // 右键菜单 loadComp?: any; // 加载动画组件 canFixed?: boolean; // 是否可以拖拽自定义固定列 canSorted?: boolean; // 是否可以拖拽自定义列排序 canResized?: boolean; // 是否可以拖拽自定义列伸缩 onDragSorted?: Function; // 拖拽更改列排序回调 onDragFixed?: Function; // 拖拽更改列排序回调 onEmitMsg?: Function;// 是否支持消息协同 cachedFeAttr?:boolean;// 是否启用前端缓存 } export interface TableState { columns: ColumnProps[]; dataSource: RowProps[]; tableHeight?: number; tableWidth?: number; } export interface CommonProps extends TableProps { operateConfig?: OperateConfigProps; tableOperateConfig?: OperateConfigProps; paginationConfig?: any; locale?: any; className?: string; tableClassName?: string; showCondition?: boolean; id?: string; onEmitMsg?: Function; } export interface CommonState extends TableState {} export interface BaseComponentProps { value: CellDataProps[] | undefined; columnConfig: ColumnProps; formatter?: Function; onChange?: Function; onEmitChange?: Function; } export interface BaseComponentState { columnConfig: ColumnProps; } export interface CellProps { cellKey: string; rowIndex: number; columnIndex: number; columnConfig: ColumnProps; value: CellDataProps[]; columnData: any; record: RowProps; columns: ColumnProps[]; emitChangeCell?: Function; cellClassName?: string; cellStyle?: any; hasFixed?: boolean; paginationConfig?: any; showIndex?: boolean; showExpand?: any; emptyPlaceholder?: string; cellEditable?: boolean; rowSelection?: any; contentMenu?: any; selectedCell?: any; changeSelectedCell?: Function; position: string; onEmitMsg?: Function; tableId?: string | number; maxPopHeight?: string | number; } export interface EditCellProps { columns: ColumnProps[]; columnConfig: ColumnProps; rowData: RowDataProps[]; value: CellDataProps[]; tableId: number; cellData: CellDataProps[]; rowId: number; component: any; onChange: Function; componentAttr?: any; columnObj?: any; record: RowProps; } export interface EditCellState { prevProps: EditCellProps; columnConfig: ColumnProps; }