import { DataKey, DataItem, Column, Columns, Sorter, Filter, GetInstance, TableMethods, ShowOverflowTooltip, TooltipEffect, TooltipOptions, RowClass, RowKey } from './types'; import { dataTableEmits } from './props'; import { ElEmptyProps, ElTableInstance } from '../ele-app/el'; import { Emitter } from '../ele-app/types'; import { Slots, VNode } from 'vue'; /** * 获取数据某字段值 * @param data 数据 * @param field 字段, 可嵌套 a.b.c */ export declare function getValue(data?: K, field?: string | ((d: K) => T)): T | undefined | null; /** * 递归获取表格列节点 * @param cols 列配置 * @param pageIndex 序号列起始值 * @param slots 插槽对象 * @param slotNormalize 是否过滤非正常的插槽渲染 * @param globalTooltip 表格提示组件属性 */ export declare function getCols(cols: Columns | undefined, pageIndex: number | undefined, slots: Slots, slotNormalize: boolean, globalTooltip?: ShowOverflowTooltip): VNode[]; /** * 获取行的类名 * @param rowClass 自定义行类名 * @param param 方法类型的参数 */ export declare function getRowClass(rowClass: RowClass | undefined, param: Parameters>[0]): string | undefined; /** * 获取行的类名 * @param rowClass 自定义行类名 * @param param 方法类型的参数 */ export declare function getBodyRowClass(rowClass: RowClass | undefined, param: Parameters>[0]): string; /** * 获取表头行的类名 * @param rowClass 自定义行类名 * @param param 方法类型的参数 * @param ellipsis 是否单行省略 */ export declare function getHeadRowClass(rowClass: RowClass | undefined, param: Parameters>[0], ellipsis: boolean): string; /** * 获取全局溢出提示组件属性 * @param showOverflowTooltip 溢出提示组件属性 * @param tooltipEffect 溢出提示组件主题 * @param tooltipOptions 溢出提示组件配置 */ export declare function getGlobalTooltipProps(showOverflowTooltip?: ShowOverflowTooltip, tooltipEffect?: TooltipEffect, tooltipOptions?: TooltipOptions): ShowOverflowTooltip; /** * 合并提示组件相关属性 * @param props 单元格提示组件属性 * @param globalProps 表格提示组件属性 */ export declare function mergeTooltipProps(props?: ShowOverflowTooltip, globalProps?: ShowOverflowTooltip): Exclude; /** * 获取单元格提示组件属性 * @param props 单元格提示组件属性 * @param globalProps 表格提示组件属性 */ export declare function getTooltipProps(props?: ShowOverflowTooltip, globalProps?: ShowOverflowTooltip): ShowOverflowTooltip; /** * 获取插槽 * @param slots 插槽对象 * @param name 插槽名称 */ export declare function getSlot(slots: Slots, name?: string): import('vue').Slot | undefined; /** * 渲染插槽 * @param slots 插槽对象 * @param name 插槽名称 * @param props 插槽数据 */ export declare function renderSlot(slots: Slots, name?: string, props?: any): VNode[] | undefined; /** * 获取空组件属性 * @param emptyProps 空组件属性 * @param emptyText 空文本 * @param errorText 错误文本 */ export declare function getEmptyProps(emptyProps?: boolean | ElEmptyProps, emptyText?: string, errorText?: string): ElEmptyProps; /** * 获取空状态插槽 * @param slots 插槽对象 * @param emptyProps 空组件属性 * @param emptyText 空文本 * @param errorText 错误文本 */ export declare function getEmptySlot(slots: Slots, emptyProps?: boolean | ElEmptyProps, emptyText?: string, errorText?: string): (() => VNode | VNode[] | undefined) | undefined; /** * 切换表格指定数据的选中状态 * @param tableRef 表格实例 * @param row 数据 * @param selected 选中状态 */ export declare function toggleRowSelectionPro(tableRef: ElTableInstance | undefined, row: DataItem, selected: boolean): void; /** * 获取表格筛选值 * @param tableRef 表格实例 */ export declare function getTableFilter(tableRef?: ElTableInstance): Filter | undefined; /** * 获取含表格状态的列配置 * @param cols 表格的列 * @param sorter 当前排序状态 * @param filter 当前筛选状态 */ export declare function getStateCols(cols: Columns, sorter?: Sorter, filter?: Filter): { cols: Columns; sorter?: undefined; } | { cols: Columns; sorter: Sorter | undefined; }; /** * 获取判断多选是否可选择的方法 * @param columns 列配置 */ export declare function getSelectableFunction(columns?: Columns): ((row: any, index: number) => boolean) | null | undefined; /** * 判断行是否禁止多选 * @param row 行数据 * @param index 行索引 * @param columns 列配置 */ export declare function isDisableRow(row: DataItem, index: number, columns?: Columns): boolean; /** * 判断是否保存不存在的选中数据 * @param columns 列配置 */ export declare function isReserveChecked(columns?: Columns): boolean; /** * 用于根据列的固定值排序 * @param fixed 固定值 */ export declare function getColFixedNumber(fixed?: boolean | string): 0 | 1 | 2; /** * 获取列类名 * @param col 列属性 */ export declare function getCellClass(col: Column): string | undefined; /** * 获取数据值 * @param rows 数据 * @param rowKey 值键名 */ export declare function getRowKeys(rows: DataItem[] | undefined, rowKey: RowKey): DataKey[]; /** * 获取值对应的数据 * @param key 值 * @param data 全部数据 * @param rowKey 值键名 * @param childrenField 子级数据键名 */ export declare function getRowByKey(key: DataKey, data?: DataItem[], rowKey?: RowKey, childrenField?: string): DataItem | undefined; /** * 获取平铺后的数据值和数据 * @param data 表格数据 * @param rowKey 数据值字段名 * @param childrenField 子级字段名 */ export declare function getKeysAndList(data?: DataItem[], rowKey?: RowKey, childrenField?: string): [DataKey[], DataItem[]]; /** * 判断值是否改变 * @param value1 值 * @param value2 新值 */ export declare function valueIsChanged(value1?: T | null, value2?: T | null): boolean; /** * 判断数组数据是否改变 * @param list1 数组 * @param list2 新数组 */ export declare function arrayIsChanged(list1?: T[] | null, list2?: T[] | null): boolean; /** * 表格实例方法统一处理 * @param getInstance 获取表格实例方法 */ export declare function useMethods(getInstance: GetInstance): TableMethods; /** * 表格事件统一处理 * @param emit 事件触发器 */ export declare function useEmits(emit: Emitter): { onSelect: (selection: DataItem[], row: DataItem) => void; onSelectAll: (selection: DataItem[]) => void; onCellMouseEnter: (row: DataItem, column: Column, cell: HTMLTableCellElement, event: MouseEvent) => void; onCellMouseLeave: (row: DataItem, column: Column, cell: HTMLTableCellElement, event: MouseEvent) => void; onCellClick: (row: DataItem, column: Column, cell: HTMLTableCellElement, event: MouseEvent) => void; onCellDblclick: (row: DataItem, column: Column, cell: HTMLTableCellElement, event: MouseEvent) => void; onCellContextmenu: (row: DataItem, column: Column, cell: HTMLTableCellElement, event: MouseEvent) => void; onRowClick: (row: DataItem, column: Column, event: MouseEvent) => void; onRowContextmenu: (row: DataItem, column: Column, event: MouseEvent) => void; onRowDblclick: (row: DataItem, column: Column, event: MouseEvent) => void; onHeaderClick: (column: Column, event: MouseEvent) => void; onHeaderContextmenu: (column: Column, event: MouseEvent) => void; onHeaderDragend: (newWidth: number, oldWidth: number, column: Column, event: MouseEvent) => void; onExpandChange: (row: DataItem | undefined, expanded: boolean | DataItem[]) => void; onSelectionChange: (selection: DataItem[]) => void; onSortChange: (sorter: Sorter) => void; onFilterChange: (filter: Filter) => void; onCurrentChange: (currentRow?: DataItem | null, oldCurrentRow?: DataItem | null) => void; /** 新增的事件 */ 'onUpdate:currentRowKey': (currentRowKey?: DataKey) => void; 'onUpdate:selectedRowKeys': (selectedRowKeys: DataKey[]) => void; };