yuang-framework-ui-pc
Version:
yuang-framework-ui-pc Library
173 lines (171 loc) • 7.03 kB
TypeScript
import { Emitter } from '../ele-app/types';
import { ElTableInstance } from '../ele-app/el';
import { dataTableEmits } from './props';
import { DataKey, DataItem, Column, Columns, Sorter, Filter, GetInstance, TableMethods, ShowOverflowTooltip, TooltipEffect, TooltipOptions, RowClass, RowKey } from './types';
/**
* 获取行的类名
* @param rowClass 自定义行类名
* @param param 方法类型的参数
*/
export declare function getRowClass(rowClass: RowClass | undefined, param: Parameters<Exclude<RowClass, string | undefined>>[0]): string | undefined;
/**
* 获取行的类名
* @param rowClass 自定义行类名
* @param param 方法类型的参数
*/
export declare function getBodyRowClass(rowClass: RowClass | undefined, param: Parameters<Exclude<RowClass, string | undefined>>[0]): string;
/**
* 获取表头行的类名
* @param rowClass 自定义行类名
* @param param 方法类型的参数
* @param ellipsis 是否单行省略
*/
export declare function getHeadRowClass(rowClass: RowClass | undefined, param: Parameters<Exclude<RowClass, string | undefined>>[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<ShowOverflowTooltip, true>;
/**
* 获取单元格提示组件属性
* @param props 单元格提示组件属性
* @param globalProps 表格提示组件属性
*/
export declare function getTooltipProps(props?: ShowOverflowTooltip, globalProps?: ShowOverflowTooltip): ShowOverflowTooltip;
/**
* 切换表格指定数据的选中状态
* @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 filterClassName 自定义类名
*/
export declare function getFilterPopperClass(filterClassName?: string): string;
/**
* 获取数据值
* @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<T>(value1?: T | null, value2?: T | null): boolean;
/**
* 判断数组数据是否改变
* @param list1 数组
* @param list2 新数组
*/
export declare function arrayIsChanged<T>(list1?: T[] | null, list2?: T[] | null): boolean;
/**
* 使用粘性表头
*/
export declare function useStickyHeader(): {
isLayoutFixedHead: import('vue').ComputedRef<boolean | undefined>;
isLayoutMaximized: import('vue').ComputedRef<boolean | undefined>;
};
/**
* 表格实例方法统一处理
* @param getInstance 获取表格实例方法
*/
export declare function useMethods(getInstance: GetInstance): TableMethods;
/**
* 表格事件统一处理
* @param emit 事件触发器
*/
export declare function useEmits(emit: Emitter<typeof dataTableEmits>): {
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;
};