@trove-ui/react
Version:
A React component library for T Design UI
59 lines (58 loc) • 1.76 kB
TypeScript
import { CSSProperties, HTMLAttributes, ReactNode } from 'react';
export type Align = 'left' | 'center' | 'right';
export type TableHeader<T> = {
[K in keyof T]: {
/**
* 字段名
* @description 实际显示的当前列表头信息
*/
fieldName: ReactNode;
/**
* 字段属性
* @description 它决定了当前列该根据Data中的哪个键进行值获取
*/
fieldProp: K & string;
/**
* 横向排列方式
* @description 它决定了当前列的所有数据在横向上的排列方式
*/
align?: Align;
/**
* 列宽
* @description 定义当前列的宽度
*/
width?: CSSProperties['width'];
/**
* 自定义表格
*/
render?(value: T[K], record: T, index: number): ReactNode;
};
}[keyof T];
export interface TableProps<T> extends HTMLAttributes<HTMLDivElement> {
bodyClassName?: string;
bodyStyle?: CSSProperties;
headerClassName?: string;
headerStyle?: CSSProperties;
wrapperClassName?: string;
wrapperStyle?: CSSProperties;
rowClassName?: string;
rowStyle?: CSSProperties;
/**
* 是否显示边框
*/
border?: boolean;
/**
* 表头数据
*/
headers: TableHeader<T>[];
/**
* 数据源
*/
data: T[];
/**
* 每一行的ID
*/
rowIndex?: keyof T;
}
declare const Table: <T extends object>({ data, headers, rowIndex, style, rowStyle, className, bodyStyle, headerStyle, wrapperStyle, rowClassName, bodyClassName, headerClassName, wrapperClassName, border, ...props }: TableProps<T>) => import("react/jsx-runtime").JSX.Element;
export default Table;