@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
53 lines (52 loc) • 1.77 kB
TypeScript
import * as React from 'react';
import type { TablePaginationConfig } from 'antd/es/table';
import type { ISaveFieldItem } from '@qn-pandora/pandora-component/es/components/Table';
import { EThemeTypes, ITableTheme, ChartType, IFontStyle } from '../../../constants';
import BasicComponent from '../BasicComponent';
import { IColumnProps, IFilterValue } from './constant';
import 'react-resizable/css/styles.css';
export interface IAntdTableProps<T> {
columns: Array<IColumnProps<T>>;
dataSource: T[];
className?: string;
bordered?: boolean;
resizable?: boolean;
size?: 'small' | 'middle' | 'large';
tableTitleFont?: IFontStyle;
tableTitleBgColor?: string;
pagination?: false | TablePaginationConfig;
onColumnsFiltersChange?: (filters: IFilterValue[]) => void;
tableOption: ITableTheme;
theme?: EThemeTypes;
chartType?: ChartType;
sort?: {
field: string;
order: 'ascend' | 'descend';
};
onSortChange?: (sort?: {
field: string;
order: 'ascend' | 'descend';
}) => void;
onSettingChange?: (fields: ISaveFieldItem[]) => void;
}
export default class AntdTable<T> extends BasicComponent<IAntdTableProps<T>, any> {
static defaultProps: {
columns: never[];
dataSource: never[];
bordered: boolean;
tableOption: {};
theme: EThemeTypes;
};
get tableHeaderStyle(): {
backgroundColor: string | undefined;
color?: string | undefined;
fontSize?: number | undefined;
};
get hasBgColorColumns(): IColumnProps<T>[];
get trDisplayStyle(): {
display: string;
gridTemplateColumns: string;
};
handleTableChange(_: any, filters: IKeyValues): void;
render(): React.JSX.Element;
}