/********************************************************************* * Audit Information Platform Component * 数据表,默认采用bee-table来实现,也可以用其他表格来实现(如果有更好的表格的话) * 2020-08 * Sunny *********************************************************************/ import * as React from "react"; import { PureComponent, ReactNode } from "react"; import "tinper-bee/assets/tinper-bee.css"; /** * 表格选中行的回调函数 */ export interface RecordsSelectedFunc { (selectedList: any[], record: any, index: number, newData: any): void; } export interface onRowDoubleClick { (record: any, index: number, event: Event): void; } /** * 表格组件属性定义 */ export interface AIPTableProp { column: any[]; title?: string; size?: "md" | "sm" | "lg"; key?: string; needFooter?: boolean; height?: number; getSelectedDataFunc?: RecordsSelectedFunc; page?: number; limit?: number; data?: any[]; needSum?: boolean; /** * 是否是树表 */ isTreeTable?: boolean; /** * default is single */ select?: "single" | "raw" | "multiple"; footer?: string; onRowDoubleClick?: onRowDoubleClick; } /** * 表格组件状态定义(可不关注) */ export interface AIPTableState { select: "single" | "raw" | "multiple"; bordered: boolean; data: any[]; columns: any[]; getSelectedDataFunc: RecordsSelectedFunc; scroll: any; title: (currentData: any) => React.ReactNode; dragborder: boolean; autoCheckedByClickRows: boolean; size: "md" | "sm" | "lg"; key: string; /** * 是否是树表 */ isTreeTable?: boolean; needSum: boolean; footer: (currentData: any) => React.ReactNode; onRowDoubleClick: onRowDoubleClick; } /** * 表格组件 * * 对于IUAP表格的封装 */ declare class AIPTable extends PureComponent { constructor(props: AIPTableProp); private setTitle; private setFooter; /** * 点击表格行的事件回调 * @function * @param {any[]} selectedList 已选中数据列表 * @param {any} record 当前选中的数据 * @param {number} index 当前选中数据行 * @param {any} newData 新的数据 */ private _getSelectedDataFunc; /** * 表格行双击事件 * @param record 表格行内容 * @param index 当前行的序号 * @param event 事件 */ private _onRowDoubleClick; private static page; private static limit; /** * 删除序号列,返回一个新的Columns * @function * @param {any[]} cols * @param {boolean} isTreeTable * @returns {any[]} */ private static spliceIndexCols; static getDerivedStateFromProps(newProp: AIPTableProp): { data: any[] | undefined; columns: any[]; size?: "sm" | "md" | "lg" | undefined; key?: string | undefined; needFooter?: boolean | undefined; getSelectedDataFunc?: RecordsSelectedFunc | undefined; needSum?: boolean | undefined; /** * default is single */ select?: "single" | "raw" | "multiple" | undefined; onRowDoubleClick?: onRowDoubleClick | undefined; }; render(): ReactNode; } export default AIPTable;