import type { TableColumn } from 'element-ultra/components/table'; import type { EmitFn } from 'element-ultra/utils'; import type { ExtractPropTypes } from 'vue'; /** 数据表格列 */ export interface DataTableColumn extends Omit { /** 深度 */ depth?: number; /** 预设 */ preset?: string; /** * 是否可见 * @default true */ visible?: boolean; /** 子列 */ children?: DataTableColumn[]; /** 渲染 */ render?: (ctx: { val: any; v: any; row: Record; index: number; wrap: DataTreeRow | DataTableRow; }) => any; } export declare const dataTableProps: { /** 列配置 */ readonly columns: { readonly type: PropType; readonly required: true; }; readonly stripe: { readonly type: BooleanConstructor; readonly default: undefined; }; /** 默认展开树形菜单 */ readonly defaultExpandAll: { readonly type: BooleanConstructor; }; /** 指定表格为树形结构 */ readonly tree: { readonly type: PropType; }; /** 表格数据 */ readonly data: { readonly type: PropType; readonly default: () => never[]; }; /** 列最小宽度 */ readonly columnMinWidth: { readonly type: NumberConstructor; readonly default: 100; }; /** 尺寸 */ readonly size: { readonly type: PropType<"default" | "small" | "large">; }; /** 是否多选 */ readonly checkable: { readonly type: PropType boolean)>; readonly default: false; }; /** 多选数据 */ readonly checked: { readonly type: PropType; }; /** 是否可以单选 */ readonly selectable: { readonly type: PropType boolean)>; readonly default: false; }; /** 单选数据 */ readonly selected: { readonly type: ObjectConstructor; }; /** 显示序号, 可以指定continuos来表示连续的字段, 这样就算跨页也能持续 */ readonly showIndex: { readonly type: BooleanConstructor; readonly default: false; }; /** 在浏览器滚动期间等待cpu闲置 */ readonly idle: { readonly type: BooleanConstructor; }; /** 显示表尾合计行 */ readonly showSummary: BooleanConstructor; /** 合计方式 */ readonly summaryMethod: { readonly type: PropType<(ctx: { columns: DataTableColumn[]; data: any[]; checked: Set; }) => any[]>; }; /** 指定合计的列, 指定showSummary时该字段必填 */ readonly summaryKeys: PropType; /** 合并单元格 */ readonly mergeCell: { readonly type: PropType<(row: DataTableRow, column: DataTableColumn, columnIndex: number) => { rowspan: number; colspan: number; } | undefined>; }; /** 单元格类 */ readonly cellClass: { readonly type: PropType<(row: DataTableRow, column: DataTableColumn, columnIndex: number) => string[]>; }; /** 表格高度 */ readonly height: { readonly type: StringConstructor; }; /** 响应式数据项 */ readonly itemReactive: { readonly type: BooleanConstructor; }; /** 数据懒加载 */ readonly lazyLoad: { readonly type: PropType<(data: Record, row: DataTreeRow) => any[] | Promise>; }; }; export declare const dataTableEmits: { 'row-click': (row: any, rowIndex: number) => boolean; check: (checked: any[]) => boolean; select: (selection: any) => boolean; sort: (sortKeys: Record) => boolean; 'row-expand': (data: Record, row: DataTreeRow) => boolean; }; export interface DataTableRow { uid: number; data: any; index: number; } export interface DataTreeRow extends DataTableRow { expanded: boolean; loaded: boolean; loading: boolean; depth: number; children?: DataTreeRow[]; } export type DataTableProps = ExtractPropTypes; export type DataTableEmits = EmitFn;