import { HTMLAttributes } from "vue"; import { _TabelDataItem } from "./propTypes"; type align = "left" | "center" | "right"; export interface row { [key: string]: any; } interface ColumnCallBackParam { row: T; column: TableComponent.Columns; /**经过排序的下标 */ index: number; indexs: Array; /**原始数据下标 */ dataIndex: number; dataIndexs: Array; /**树形表格等级深度 */ treeLever: number; } export type WidthCssUnit = "px" | "rem"; export declare namespace TableComponent { interface Columns { /**列头名字 */ title?: string; /**列字段 */ key?: Extract; /**对齐方式*/ align?: align; /**列宽 若没设置,会根据table宽度均分,若其他设置了的已经超出了table宽度则会默认设置为minWidth */ width?: number; /**最小列宽,不设置则为80 */ minWidth?: number; /**自定义渲染,类似vue的render函数 */ render?: (param: ColumnCallBackParam) => any; /**自定义表头 */ renderHeader?: (param: Pick, "column" | "index">) => any; /**列class */ className?: HTMLAttributes["class"]; /**单元格class */ cellClassName?: HTMLAttributes["class"]; /**单元格点击事件 */ cellClick?: ((event: MouseEvent, param: ColumnCallBackParam) => void); /**表头单元格class */ cellHeaderClassName?: HTMLAttributes["class"]; /**开启排序 */ sortable?: boolean; /**表格类型 */ type?: "" | "selection"; /**是否为树形表格 */ tree?: boolean; /**固定列,true “left”表示固定在左侧 “right”固定右侧 */ fixed?: true | "left" | "right"; } type TabelDataItem = _TabelDataItem & T; } export declare namespace TableComponentInner { interface Columns extends TableComponent.Columns { /**是否为固定左列最后一个,用来做阴影效果 */ isLastFixedLeft?: boolean; /**是否为固定右列第一个,用来做阴影效果 */ isFirstFixedRight?: boolean; } } export type ExpandParma = { row: row; index: number; }; export type ExpandFunction = (param: ExpandParma) => any; export type ExpandRender = string | ExpandFunction; export type SortType = "up" | "down" | ""; export interface SortConfig { /**排序类型*/ type: SortType; /**排序的key */ key: string; /**若没有key则使用index */ columnIndex: number; } export interface TableEmitsLoad { ExportToExcel(): void; SetAllSelection(): void; ClearAllSelection(): void; } type GetTableRef = () => HTMLTableElement | undefined; export interface TabelBodyEmitsLoadInput { GetTableRef: GetTableRef; } export interface TabelHeaderEmitsLoadInput { GetTableRef: GetTableRef; } export {};