Files
vxe-table/types/table.d.ts
2021-01-12 11:50:54 +08:00

2130 lines
67 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { RenderFunction, SetupContext, Ref, ComputedRef, ComponentPublicInstance, ComponentInternalInstance, VNode } from 'vue'
import { VXETableComponent, VxeComponentInstance, VxeEvent, RowInfo, RecordInfo, SizeType, ValueOf, VNodeStyle } from './component'
import { VxeColumnOptions, VxeColumnPropTypes } from './column'
import { VxeGlobalRendererHandles } from './v-x-e-table'
import { VxeToolbarConstructor, VxeToolbarInstance } from './toolbar'
import { VxeTooltipInstance } from './tooltip'
import { VxeGridConstructor } from './grid'
import { VxeMenuPanelInstance } from './menu'
/**
* 组件 - 表格
*/
export interface Table extends VXETableComponent { }
export type VxeTableInstance = ComponentPublicInstance<VxeTableProps, VxeTableConstructor>;
export interface VxeTableConstructor extends VxeComponentInstance, VxeTableMethods {
props: VxeTableProps;
context: SetupContext<VxeTableEmits>;
instance: ComponentInternalInstance;
reactData: TableReactData;
internalData: TableInternalData;
getRefMaps(): TablePrivateRef;
getComputeMaps(): TablePrivateComputed;
renderVN: RenderFunction;
xegrid?: VxeGridConstructor | null;
}
export interface TablePrivateRef {
refElem: Ref<HTMLDivElement>;
refTooltip: Ref<VxeTooltipInstance>;
refValidTooltip: Ref<VxeTooltipInstance>;
refTableFilter: Ref<ComponentPublicInstance>;
refTableMenu: Ref<VxeMenuPanelInstance>;
refTableHeader: Ref<ComponentPublicInstance>;
refTableBody: Ref<ComponentPublicInstance>;
refTableFooter: Ref<ComponentPublicInstance>;
refTableLeftHeader: Ref<ComponentPublicInstance>;
refTableLeftBody: Ref<ComponentPublicInstance>;
refTableLeftFooter: Ref<ComponentPublicInstance>;
refTableRightHeader: Ref<ComponentPublicInstance>;
refTableRightBody: Ref<ComponentPublicInstance>;
refTableRightFooter: Ref<ComponentPublicInstance>;
refLeftContainer: Ref<HTMLDivElement>;
refRightContainer: Ref<HTMLDivElement>;
refCellResizeBar: Ref<HTMLDivElement>;
}
export interface VxeTablePrivateRef extends TablePrivateRef { }
export interface TablePrivateComputed {
computeValidOpts: ComputedRef<VxeTablePropTypes.ValidOpts>;
computeSXOpts: ComputedRef<VxeTablePropTypes.SXOpts>;
computeSYOpts: ComputedRef<VxeTablePropTypes.SYOpts>;
computeResizableOpts: ComputedRef<VxeTablePropTypes.ResizableOpts>;
computeSeqOpts: ComputedRef<VxeTablePropTypes.SeqOpts>;
computeRadioOpts: ComputedRef<VxeTablePropTypes.RadioOpts>;
computeCheckboxOpts: ComputedRef<VxeTablePropTypes.CheckboxOpts>;
computeTooltipOpts: ComputedRef<VxeTablePropTypes.TooltipOpts>;
computeEditOpts: ComputedRef<VxeTablePropTypes.EditOpts>;
computeSortOpts: ComputedRef<VxeTablePropTypes.SortConfig>;
computeFilterOpts: ComputedRef<VxeTablePropTypes.FilterOpts>;
computeMouseOpts: ComputedRef<VxeTablePropTypes.MouseOpts>;
computeKeyboardOpts: ComputedRef<VxeTablePropTypes.KeyboardOpts>;
computeClipOpts: ComputedRef<VxeTablePropTypes.ClipOpts>;
computeFNROpts: ComputedRef<VxeTablePropTypes.FNROpts>;
computeIsMenu: ComputedRef<boolean>;
computeMenuOpts: ComputedRef<VxeTablePropTypes.MenuConfig>;
computeExportOpts: ComputedRef<VxeTablePropTypes.ExportOpts>;
computeImportOpts: ComputedRef<VxeTablePropTypes.ImportOpts>;
computePrintOpts: ComputedRef<VxeTablePropTypes.PrintOpts>;
computeExpandOpts: ComputedRef<VxeTablePropTypes.ExpandOpts>;
computeTreeOpts: ComputedRef<VxeTablePropTypes.TreeOpts>;
computeEmptyOpts: ComputedRef<VxeTablePropTypes.EmptyOpts>;
computeCustomOpts: ComputedRef<VxeTablePropTypes.CustomOpts>;
computeIsAllCheckboxDisabled: ComputedRef<boolean>;
}
export interface VxeTablePrivateComputed extends TablePrivateComputed { }
export interface TableMethods extends TablePublicMethods {
dispatchEvent(type: ValueOf<VxeTableEmits>, params: any, evnt: Event | null): void;
}
export interface TablePublicMethods {
/**
* 手动清除表格所有条件,还原到初始状态
* 对于增删改查的场景中可能会用到,比如在数据保存之后清除表格缓存
*/
clearAll(): Promise<any>;
/**
* 同步 data 数据;如果用了该方法,那么组件将不再记录增删改的状态,只能自行实现对应逻辑
* 对于某些特殊的场景,比如深层树节点元素发生变动时可能会用到
*/
syncData(): Promise<any>;
/**
* 手动处理数据
* 对于手动更改了排序、筛选...等条件后需要重新处理数据时可能会用到
*/
updateData(): Promise<any>;
/**
* 加载数据
* @param data 数据
*/
loadData(data: any[]): Promise<any>;
/**
* 加载数据并恢复到初始状态
* @param data 数据
*/
reloadData(data: any[]): Promise<any>;
/**
* 局部加载行数据并恢复到初始状态
* @param rows 行对象
* @param record 新数据
* @param field 指定字段名
*/
reloadRow(rows: any | any[], record?: any, field?: string): Promise<any>;
/**
* 用于树结构,给行数据加载子节点
* @param row 行对象
* @param children 子节点
*/
loadChildren(row: any, children: any[]): Promise<any[]>;
/**
* 加载列配置
* @param columns 列对象
*/
loadColumn(columns: VxeColumnOptions[]): Promise<any>;
/**
* 加载列配置并恢复到初始状态
* @param columns 列对象
*/
reloadColumn(columns: VxeColumnOptions[]): Promise<any>;
/**
* 根据 tr 元素获取对应的 row 信息
* @param tr 行节点元素
*/
getRowNode(trElem: HTMLElement): {
rowid: string;
item: RowInfo;
items: RowInfo[];
index: number;
parent?: RowInfo;
} | null;
/**
* 根据 th/td 元素获取对应的 column 信息
* @param cell 单元格节点元素
*/
getColumnNode(cellElem: HTMLElement): {
colid: string;
item: VxeTableDefines.ColumnInfo;
items: VxeTableDefines.ColumnInfo[];
index: number;
parent?: VxeTableDefines.ColumnInfo;
} | null;
/**
* 根据 row 获取相对于 data 中的索引
* @param row 行对象
*/
getRowIndex(row: RowInfo): number;
/**
* 根据 row 获取相对于当前数据中的索引
* @param row 行对象
*/
getVTRowIndex(row: RowInfo): number;
/**
* 根据 row 获取渲染中的虚拟索引
* @param row 行对象
*/
getVMRowIndex(row: RowInfo): number;
/**
* 根据 column 获取相对于 columns 中的索引
* @param column 列对象
*/
getColumnIndex(column: VxeTableDefines.ColumnInfo): number;
/**
* 根据 column 获取相对于当前表格列中的索引
* @param column 列对象
*/
getVTColumnIndex(column: VxeTableDefines.ColumnInfo): number;
/**
* 根据 column 获取渲染中的虚拟索引
* @param column 列对象
*/
getVMColumnIndex(column: VxeTableDefines.ColumnInfo): number;
/**
* 创建 data 对象
* 对于某些特殊场景可能会用到,会自动对数据的字段名进行检测,如果不存在就自动定义
* @param records 数据
*/
createData(records: any[]): Promise<any[]>;
/**
* 创建 Row|Rows 对象
* 对于某些特殊场景需要对数据进行手动插入时可能会用到
* @param records 数据
*/
createRow(records: any | any[]): Promise<any | any[]>;
/**
* 只对 keep-source 开启有效,还原指定行 row 或者整个表格的数据
* @param rows 指定行
* @param field 字段名
*/
revertData(rows?: RowInfo | RowInfo[], field?: string): Promise<any>;
/**
* 手动清空单元格内容,如果不传参数,则清空整个表格内容,如果传了行则清空指定行内容,如果传了指定字段,则清空该字段内容
* @param rows 指定行
* @param field 字段名
*/
clearData(rows?: RowInfo | RowInfo[], field?: string): Promise<any>;
/**
* 用于 edit-config判断行是否为新增的临时数据
* @param row 指定行
*/
isInsertByRow(row: RowInfo): boolean;
/**
* 只对 keep-source 开启有效,判断行数据是否发生改变
* @param row 指定行
* @param field 指定字段
*/
isUpdateByRow(row: RowInfo, field?: string): boolean;
/**
* 获取表格的可视列,也可以指定索引获取列
* @param columnIndex 列索引
*/
getColumns(): VxeTableDefines.ColumnInfo[];
getColumns(columnIndex: number): VxeTableDefines.ColumnInfo;
/**
* 根据列的唯一主键获取列
* @param colid 列主键
*/
getColumnById(colid: string): VxeTableDefines.ColumnInfo;
/**
* 根据列的字段名获取列
* @param field 字段名
*/
getColumnByField(field: string): VxeTableDefines.ColumnInfo;
/**
* 获取当前表格的列
* 收集到的全量列、全量表头列、处理条件之后的全量表头列、当前渲染中的表头列
*/
getTableColumn(): {
collectColumn: VxeTableDefines.ColumnInfo[];
fullColumn: VxeTableDefines.ColumnInfo[];
visibleColumn: VxeTableDefines.ColumnInfo[];
tableColumn: VxeTableDefines.ColumnInfo[];
};
/**
* 获取数据,和 data 的行为一致,也可以指定索引获取数据
*/
getData(): RowInfo[];
getData(rowIndex: number): RowInfo;
/**
* 用于 type=checkbox获取已选中的行数据
*/
getCheckboxRecords(): RowInfo[];
/**
* 根据行的唯一主键获取行
* @param rowid 行主键
*/
getRowById(rowid: string | number): RowInfo;
/**
* 根据行获取行的唯一主键
* @param row 行对象
*/
getRowid(row: RowInfo): string;
/**
* 获取当前表格的数据
* 完整的全量表体数据、处理条件之后的全量表体数据、当前渲染中的表体数据、当前渲染中的表尾数据
*/
getTableData(): {
fullData: RowInfo[];
visibleData: RowInfo[];
tableData: RowInfo[];
footerData: any[][];
};
/**
* 隐藏指定列
* @param column 列对象
*/
hideColumn(column: VxeTableDefines.ColumnInfo): Promise<any>;
/**
* 显示指定列
* @param column 列对象
*/
showColumn(column: VxeTableDefines.ColumnInfo): Promise<any>;
/**
* 手动重置列的显示隐藏、列宽拖动的状态;如果为 true 则重置所有状态
* 如果已关联工具栏,则会同步更新
* @param options 可选参数
*/
resetColumn(options: boolean | { visible?: boolean, resizable?: boolean }): Promise<any>;
/**
* 刷新列配置
* 对于动态修改属性、显示/隐藏列等场景下可能会用到
*/
refreshColumn(): Promise<any>;
/**
* 刷新滚动操作,手动同步滚动相关位置
* 对于某些特殊的操作,比如滚动条错位、固定列不同步
*/
refreshScroll(): Promise<any>;
/**
* 重新计算表格,如果传 true 则进行完整计算
* 对于某些特殊场景可能会用到,比如隐藏的表格、重新计算列宽...等
*/
recalculate(refull?: boolean): Promise<any>;
/**
* 打开 tooltip 提示
* @param target 目标元素
* @param content 内容
*/
openTooltip(target: HTMLElement, content: string | number): Promise<any>;
/**
* 关闭 tooltip 提示
*/
closeTooltip(): Promise<any>;
/**
* 用于 type=checkbox设置行为选中状态第二个参数为选中与否
* @param rows 指定行
* @param checked 是否选中
*/
setCheckboxRow(rows: RowInfo | RowInfo[], checked: boolean): Promise<any>;
/**
* 用于 type=checkbox判断复选行是否被全部选中
*/
isAllCheckboxChecked(): boolean;
/**
* 用于 type=checkbox判断复选框是否半选
*/
isCheckboxIndeterminate(): boolean;
/**
* 用于 type=checkbox判断复选行数据是否勾选
* @param row 指定行
*/
isCheckedByCheckboxRow(row: RowInfo): boolean;
/**
* 用于 type=checkbox切换某一行的选中状态
* @param row 指定行
*/
toggleCheckboxRow(row: RowInfo): Promise<any>;
/**
* 用于 type=checkbox设置所有行的选中状态
* @param checked 是否选中
*/
setAllCheckboxRow(checked: boolean): Promise<any>;
/**
* 用于 radio-config.reserve获取已保留选中的行数据
*/
getRadioReserveRecord(): RowInfo[];
/**
* 用于 radio-config.reserve手动清空用户保留选中的行数据
*/
clearRadioReserve(): Promise<any>;
/**
* 用于 checkbox-config.reserve获取已保留选中的行数据
*/
getCheckboxReserveRecords(): RowInfo[];
/**
* 用于 type=checkbox获取半选状态的行数据
*/
getCheckboxIndeterminateRecords(): RowInfo[]
/**
* 用于 checkbox-config.reserve手动清空用户保留选中的行数据
*/
clearCheckboxReserve(): Promise<any>;
/**
* 用于 type=checkbox切换所有行的选中状态
*/
toggleAllCheckboxRow(): Promise<any>;
/**
* 用于 type=checkbox手动清空用户的选择
*/
clearCheckboxRow(): Promise<any>;
/**
* 用于 highlight-current-row设置某一行为高亮状态
* @param row 指定行
*/
setCurrentRow(row: RowInfo): Promise<any>;
/**
* 用于 type=radio判断单选行数据是否勾选
* @param row 指定行
*/
isCheckedByRadioRow(row: RowInfo): boolean;
/**
* 用于 type=radio设置某一行为选中状态
* @param row 指定行
*/
setRadioRow(row: RowInfo): Promise<any>;
/**
* 手动清除临时合并的单元格
*/
clearMergeCells(): Promise<any>;
/**
* 手动清除临时合并的表尾
*/
clearMergeFooterItems(): Promise<any>;
/**
* 用于 highlight-current-row手动清空当前高亮的状态
*/
clearCurrentRow(): Promise<any>;
/**
* 用于 type=radio手动清空用户的选择
*/
clearRadioRow(): Promise<any>;
/**
* 获取临时合并的单元格
*/
getMergeCells(): VxeTableDefines.MergeInfo[];
/**
* 获取临时合并的表尾
*/
getMergeFooterItems(): VxeTableDefines.MergeInfo[];
/**
* 用于 highlight-current-column获取当前列
*/
getCurrentColumn(): VxeTableDefines.ColumnInfo | null;
/**
* 用于 highlight-current-row获取当前行的行数据
*/
getCurrentRecord(): RowInfo;
/**
* 用于 type=radio获取当已选中的行数据
*/
getRadioRecord(): RowInfo;
/**
* 用于 highlight-current-column设置某列行为高亮状态
* @param column 列对象
*/
setCurrentColumn(column: VxeTableDefines.ColumnInfo): Promise<any>;
/**
* 用于 highlight-current-column手动清空当前高亮的状态
*/
clearCurrentColumn(): Promise<any>;
/**
* 手动对表格进行排序
* @param sortConfs 字段名、多列排序
* @param order 排序方式
*/
sort(field: string, order?: VxeTablePropTypes.SortOrder): Promise<any>;
sort(sortConfs: VxeTableDefines.SortConfs, order?: VxeTablePropTypes.SortOrder): Promise<any>;
sort(sortConfs: VxeTableDefines.SortConfs[], order?: VxeTablePropTypes.SortOrder): Promise<any>;
/**
* 手动清空排序条件,数据会恢复成未排序的状态
*/
clearSort(fieldOrColumn?: string | VxeTableDefines.ColumnInfo | null): Promise<any>;
/**
* 判断指定列是否为排序状态,如果为空则判断所有列
* @param columnOrField
*/
isSort(fieldOrColumn: string | VxeTableDefines.ColumnInfo): boolean;
/**
* 获取当前排序的列信息
*/
getSortColumns(): any[];
/**
* 手动关闭筛选面板
*/
closeFilter(): Promise<any>;
/**
* 判断指定列是否为筛选状态,如果为空则判断所有列
* @param column 列对象
*/
isFilter(fieldOrColumn: string | VxeTableDefines.ColumnInfo): boolean;
/**
* 用于 expand-config.lazy用于懒加载展开行判断展开行是否懒加载完成
* @param row 指定行
*/
isRowExpandLoaded(row: RowInfo): boolean;
/**
* 用于 expand-config.lazy手动清空懒加载展开行的状态数据会恢复成未展开的状态当再次展开时会重新加载
*/
clearRowExpandLoaded(row: RowInfo): Promise<any>;
/**
* 用于懒加载展开行,重新加载展开行的内容
* @param rows 指定行
*/
reloadExpandContent(rows: RowInfo | RowInfo[]): Promise<any>;
/**
* 用于 type=expand切换展开行的状态
* @param row 指定行
*/
toggleRowExpand(row: RowInfo): Promise<any>;
/**
* 用于 expand-config设置所有行的展开与否
* 如果是关闭所有行,可以使用 clearRowExpand 快速清除
* @param checked 是否选中
*/
setAllRowExpand(checked: boolean): Promise<any>;
/**
* 用于 expand-config设置展开行二个参数设置这一行展开与否
* @param rows 指定行
* @param checked 是否选中
*/
setRowExpand(rows: RowInfo | RowInfo[], checked: boolean): Promise<any>;
/**
* 用于 expand-config判断行是否为展开状态
* @param row 指定行
*/
isExpandByRow(row: RowInfo): boolean;
/**
* 用于 type=expand手动清空展开行状态数据会恢复成未展开的状态
*/
clearRowExpand(): Promise<any>;
/**
* 用于 type=expand手动清空用户保留行的展开状态
*/
clearRowExpandReserve(): Promise<any>;
/**
* 用于 expand-config用于展开行获取已展开的行数据
*/
getRowExpandRecords(): RowInfo[];
/**
* 用于 tree-config用于树表格获取已展开的节点
* 注意,即使父节点被收起,只要该节点还处于展开状态都能获取到
*/
getTreeExpandRecords(): RowInfo[];
/**
* 用于 tree-config.lazy用于懒加载树表格判断树节点是否懒加载完成
*/
isTreeExpandLoaded(row: RowInfo): boolean;
/**
* 用于 tree-config.lazy手动清空懒加载树节点的状态数据会恢复成未展开的状态当再次展开时会重新加载
*/
clearTreeExpandLoaded(row: RowInfo): Promise<any>;
/**
* 用于懒加载树表格,重新加载子节点
* @param rows 指定行
*/
reloadTreeChilds(rows: RowInfo | RowInfo[]): Promise<any>;
/**
* 用于 tree-config切换展开树形节点的状态
* @param row 指定行
*/
toggleTreeExpand(row: RowInfo): Promise<any>;
/**
* 用于 tree-config设置所有树节点的展开与否
* 如果是关闭所有树节点,可以使用 clearTreeExpand 快速清除
* @param checked 是否选中
*/
setAllTreeExpand(checked: boolean): Promise<any>;
/**
* 用于 tree-config设置展开树形节点二个参数设置这一行展开与否
* @param rows 指定行
* @param checked 是否选中
*/
setTreeExpand(rows: RowInfo | RowInfo, checked: boolean): Promise<any>;
/**
* 用于 tree-config判断行是否为树形节点展开状态
* @param row 指定行
*/
isTreeExpandByRow(row: RowInfo): boolean;
/**
* 用于 tree-config手动清空树形节点的展开状态数据会恢复成未展开的状态
*/
clearTreeExpand(): Promise<any>;
/**
* 用于 tree-config.reserve手动清空用户保留树节点的展开状态
*/
clearTreeExpandReserve(): Promise<any>;
/**
* 获取表格的滚动状态
*/
getScroll(): {
virtualX: boolean;
virtualY: boolean;
scrollTop: number;
scrollLeft: number;
};
/**
* 如果有滚动条,则滚动到对应的位置
* @param scrollLeft 左边距离
* @param scrollTop 顶部距离
*/
scrollTo(scrollLeft: number | null, scrollTop?: number | null): Promise<any>;
/**
* 如果有滚动条,则滚动到对应的行
* @param row 指定行
* @param column 列对象
*/
scrollToRow(row: RowInfo, column?: VxeTableDefines.ColumnInfo): Promise<any>;
/**
* 如果有滚动条,则滚动到对应的列
* @param column 列对象
*/
scrollToColumn(column: VxeTableDefines.ColumnInfo): Promise<any>;
/**
* 手动清除滚动相关信息,还原到初始状态
*/
clearScroll(): Promise<any>;
/**
* 手动更新表尾
*/
updateFooter(): Promise<any>;
/**
* 更新单元格状态
* @param params 插槽对象
*/
updateStatus(
params: {
row: RowInfo;
column: VxeTableDefines.ColumnInfo;
},
cellValue?: any
): Promise<any>;
/**
* 取消单元格的临时合并状态,如果为数组,则取消多个合并
*/
removeMergeCells(merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]): Promise<VxeTableDefines.MergeInfo[]>;
/**
* 取消表尾的临时合并状态,如果为数组,则取消多个合并
*/
removeMergeFooterItems(merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]): Promise<VxeTableDefines.MergeInfo[]>;
/**
* 临时合并单元格,如果为数组则合并多个
*/
setMergeCells(merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]): Promise<any>;
/**
* 临时合并表尾,如果为数组则合并多个
*/
setMergeFooterItems(merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]): Promise<any>;
/**
* 连接工具栏
* @param toolbar 工具栏组件实例
*/
connect(toolbar: VxeToolbarConstructor | VxeToolbarInstance): Promise<any>;
/**
* 使表格获取焦点
*/
focus(): Promise<any>;
/**
* 使表格失去焦点
*/
blur(): Promise<any>;
}
export interface VxeTableMethods extends TableMethods { }
export interface TablePrivateMethods {
getParentElem(): any;
getParentHeight(): any;
getExcludeHeight(): any;
defineField(record: any): any;
handleTableData(force?: boolean): Promise<any>;
updateCache(isSource?: boolean): void;
saveCustomResizable(isReset?: boolean): void;
saveCustomVisible(): void;
analyColumnWidth(): void;
checkSelectionStatus(): void;
handleSelectRow(params: any, value: any): void;
preventEvent(evnt: any, type: any, args?: any, next?: any, end?: any): any;
triggerHeaderHelpEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderHeaderParams): void;
triggerHeaderTooltipEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderHeaderParams): void;
triggerBodyTooltipEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderBodyParams): void;
triggerFooterTooltipEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderFooterParams): void;
handleTargetLeaveEvent(evnt: MouseEvent): void;
triggerHeaderCellClickEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderHeaderParams): void;
triggerHeaderCellDBLClickEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderHeaderParams): void;
triggerCellClickEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderBodyParams): void;
triggerCellDBLClickEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderBodyParams): void;
triggerCheckRowEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderBodyParams, value: boolean): void;
triggerCheckAllEvent(evnt: MouseEvent | null, value: boolean): void;
triggerRadioRowEvent(evnt: Event, params: VxeTableDefines.CellRenderBodyParams): void;
triggerCurrentRowEvent(evnt: Event, params: VxeTableDefines.CurrentChangeParams): void;
triggerRowExpandEvent(evnt: Event, params: VxeTableDefines.CellRenderBodyParams): void;
triggerTreeExpandEvent(evnt: Event, params: VxeTableDefines.CellRenderBodyParams): void;
triggerSortEvent(evnt: Event, column: VxeTableDefines.ColumnInfo, order: VxeTablePropTypes.SortOrder): void;
triggerScrollXEvent(evnt: Event): void;
triggerScrollYEvent(evnt: Event): void;
scrollToTreeRow(row: any): Promise<any>;
updateScrollXSpace(): void;
updateScrollYSpace(): void;
updateScrollXData(): void;
updateScrollYData(): void;
checkScrolling(): void;
updateZindex(): void;
updateCellAreas(): void;
triggerHoverEvent(evnt: any, params: any): void;
setHoverRow(row: any): void;
clearHoverRow(): void;
getCell(row: any, column: VxeTableDefines.ColumnInfo): HTMLTableDataCellElement | null;
getCellLabel(row: any, column: VxeTableDefines.ColumnInfo): any;
findRowIndexOf(list: any[], row: any): number;
eqRow(row1: any, row2: any): boolean;
}
export interface VxeTablePrivateMethods extends TablePrivateMethods { }
export interface TableReactData {
// 低性能的静态列
staticColumns: any[];
// 渲染的列分组
tableGroupColumn: any[];
// 可视区渲染的列
tableColumn: any[];
// 渲染中的数据
tableData: any[];
// 是否启用了横向 X 可视渲染方式加载
scrollXLoad: boolean;
// 是否启用了纵向 Y 可视渲染方式加载
scrollYLoad: boolean;
// 是否存在纵向滚动条
overflowY: boolean;
// 是否存在横向滚动条
overflowX: boolean;
// 纵向滚动条的宽度
scrollbarWidth: number;
// 横向滚动条的高度
scrollbarHeight: number;
// 行高
rowHeight: number;
// 表格父容器的高度
parentHeight: number;
// 是否使用分组表头
isGroup: boolean;
// 复选框属性,是否全选
isAllSelected: boolean;
// 复选框属性,有选中且非全选状态
isIndeterminate: boolean;
// 复选框属性,已选中的行
selection: any[];
// 当前行
currentRow: any;
// 单选框属性,选中列
currentColumn: any;
// 单选框属性,选中行
selectRow: any;
// 表尾合计数据
footerData: any[];
// 展开列信息
expandColumn: any;
// 树节点列信息
treeNodeColumn: any;
// 已展开的行
rowExpandeds: any[];
// 懒加载中的展开行的列表
expandLazyLoadeds: any[];
// 已展开树节点
treeExpandeds: any[];
// 懒加载中的树节点的列表
treeLazyLoadeds: any[];
// 树节点不确定状态的列表
treeIndeterminates: any[];
// 合并单元格的对象集
mergeList: any[];
// 合并表尾数据的对象集
mergeFooterList: any[];
// 初始化标识
initStore: {
filter: boolean;
import: boolean;
export: boolean;
},
// 当前选中的筛选列
filterStore: {
isAllSelected: boolean;
isIndeterminate: boolean;
style: any;
options: any[];
column: any;
multiple: boolean;
visible: boolean;
[key: string]: any;
},
// 存放列相关的信息
columnStore: {
leftList: any[];
centerList: any[];
rightList: any[];
resizeList: any[];
pxList: any[];
pxMinList: any[];
scaleList: any[];
scaleMinList: any[];
autoList: any[];
},
// 存放快捷菜单的信息
ctxMenuStore: {
selected: any;
visible: boolean;
showChild: boolean;
selectChild: any;
list: any[][];
style: any;
[key: string]: any;
},
// 存放可编辑相关信息
editStore: {
indexs: {
columns: any[];
},
titles: {
columns: any[];
},
// 选中源
selected: {
row: any;
column: any;
[key: string]: any;
},
// 已复制源
copyed: {
cut: boolean;
rows: any[];
columns: any[];
[key: string]: any;
},
// 激活
actived: {
row: any;
column: any;
[key: string]: any;
},
insertList: any[];
removeList: any[];
},
// 存放数据校验相关信息
validStore: {
visible: boolean;
row: any;
column: any;
content: any;
rule: any;
isArrow: boolean;
},
// 导入相关信息
importStore: {
inited: boolean;
file: any;
type: any;
modeList: any[];
typeList: any[];
filename: any;
visible: boolean;
},
importParams: {
mode: any;
types: any;
message: boolean;
},
// 导出相关信息
exportStore: {
inited: boolean;
name: any;
modeList: any[];
typeList: any[];
columns: any[];
isPrint: boolean;
hasFooter: boolean;
hasMerge: boolean;
hasColgroup: boolean;
visible: boolean;
},
exportParams: {
filename: any;
sheetName: any;
mode: any;
type: any;
isColgroup: boolean;
isMerge: boolean;
useStyle: boolean;
original: boolean;
message: boolean;
isHeader: boolean;
isFooter: boolean;
}
}
export interface TableInternalData {
tZindex: number;
elemStore: any;
// 存放横向 X 虚拟滚动相关的信息
scrollXStore: any;
// 存放纵向 Y 虚拟滚动相关信息
scrollYStore: any;
// 存放 tooltip 相关信息
tooltipStore: any;
// 表格宽度
tableWidth: number;
// 表格高度
tableHeight: number;
// 表头高度
headerHeight: number;
// 表尾高度
footerHeight: number;
customHeight: number;
customMaxHeight: number;
// 当前 hover 行
hoverRow: any;
// 最后滚动位置
lastScrollLeft: number;
lastScrollTop: number;
lastScrollTime: number;
// 单选框属性,已选中保留的行
radioReserveRow: any;
// 复选框属性,已选中保留的行
checkboxReserveRowMap: any;
// 行数据,已展开保留的行
rowExpandedReserveRowMap: any;
// 树结构数据,已展开保留的行
treeExpandedReserveRowMap: any;
// 完整数据、条件处理后
tableFullData: any[];
afterFullData: any[];
tableSynchData: any[];
tableSourceData: any[];
// 收集的列配置(带分组)
collectColumn: any[],
// 完整所有列(不带分组)
tableFullColumn: any[];
// 渲染所有列
visibleColumn: any[];
// 缓存数据集
fullAllDataRowMap: Map<any, any>;
fullAllDataRowIdData: { [key: string]: any };
fullDataRowMap: Map<any, any>;
fullDataRowIdData: { [key: string]: any };
fullColumnMap: Map<any, any>;
fullColumnIdData: { [key: string]: any };
fullColumnFieldData: { [key: string]: any };
// 特殊标识
inited: boolean;
tooltipActive: boolean;
tooltipTimeout: any;
initStatus: boolean;
isActivated: boolean;
// 内部属性
_lastResizeTime?: any;
_isResize?: boolean;
_keyCtx?: any;
_lastCallTime?: any;
_importResolve?: Function | null;
_importReject?: Function | null;
_currFilterParams?: any;
_currMenuParams?: any;
}
export interface VxeTableOptions extends VxeTableProps, VxeTableListeners { }
export namespace VxeTablePropTypes {
export type Size = SizeType;
export type ID = string;
export type Data = any[];
export type Height = number | string;
export type MaxHeight = number | string;
export type Resizable = boolean;
export type Stripe = boolean;
export type Round = boolean;
export type Border = boolean | 'default' | 'full' | 'outer' | 'inner' | 'none';
export type Loading = boolean;
export type Align = 'left' | 'center' | 'right' | null;
export type HeaderAlign = Align;
export type FooterAlign = Align;
export type ShowHeader = boolean;
export type HighlightCurrentRow = boolean;
export type HighlightHoverRow = boolean;
export type HighlightCurrentColumn = boolean;
export type HighlightHoverColumn = boolean;
export type HighlightCell = boolean;
export type ShowFooter = boolean;
export type FooterMethod = (params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
$grid: VxeGridConstructor | null;
columns: VxeTableDefines.ColumnInfo[];
data: any[];
}) => Array<string | number | null>[];
export type RowClassName = string | ((params: {
row: RowInfo;
rowIndex: number;
$rowIndex: number;
_rowIndex: number;
}) => null | string | { [key: string]: boolean });
export type CellClassName = string | ((params: {
row: RowInfo;
rowIndex: number;
$rowIndex: number;
_rowIndex: number;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$columnIndex: number;
_columnIndex: number;
}) => null | string | { [key: string]: boolean });
export type HeaderRowClassName = string | ((params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
$rowIndex: number;
fixed: VxeColumnPropTypes.Fixed;
type: string;
}) => null | string | { [key: string]: boolean });
export type HeaderCellClassName = string | ((params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
$rowIndex: number;
column: VxeTableDefines.ColumnInfo;
fixed: VxeColumnPropTypes.Fixed;
type: string;
}) => null | string | { [key: string]: boolean });
export type FooterRowClassName = string | ((params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
$rowIndex: number;
_rowIndex: number;
fixed: VxeColumnPropTypes.Fixed;
type: string;
}) => null | string | { [key: string]: boolean });
export type FooterCellClassName = string | ((params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
$rowIndex: number;
_rowIndex: number;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$columnIndex: number;
_columnIndex: number;
}) => null | string | { [key: string]: boolean });
export type CellStyle = VNodeStyle | Array<string | number | boolean | VNodeStyle> | ((params: {
row: RowInfo;
rowIndex: number;
$rowIndex: number;
_rowIndex: number;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$columnIndex: number;
_columnIndex: number;
}) => null | string | { [key: string]: boolean });
export type HeaderCellStyle = VNodeStyle | Array<string | number | boolean | VNodeStyle> | ((params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
$rowIndex: number;
}) => null | string | { [key: string]: boolean });
export type FooterCellStyle = VNodeStyle | Array<string | number | boolean | VNodeStyle> | ((params: {
$rowIndex: number;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$columnIndex: number;
_columnIndex: number;
}) => null | string | { [key: string]: boolean });
export type RowStyle = VNodeStyle | Array<string | number | boolean | VNodeStyle> | ((params: {
row: RowInfo;
rowIndex: number;
$rowIndex: number;
_rowIndex: number;
}) => null | string | { [key: string]: boolean });
export type HeaderRowStyle = VNodeStyle | Array<string | number | boolean | VNodeStyle> | ((params: {
$table: & VxeTablePrivateMethods;
$rowIndex: number;
fixed: VxeColumnPropTypes.Fixed;
type: string;
}) => null | string | { [key: string]: boolean });
export type FooterRowStyle = VNodeStyle | Array<string | number | boolean | VNodeStyle> | ((params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
$rowIndex: number;
_rowIndex: number;
fixed: VxeColumnPropTypes.Fixed;
type: string;
}) => null | string | { [key: string]: boolean });
export type MergeCell = VxeTableDefines.MergeOptions;
export type MergeFooterItem = VxeTableDefines.MergeOptions;
export type SpanMethod = (params: {
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$columnIndex: number;
row: RowInfo;
rowIndex: number;
$rowIndex: number;
isHidden: boolean;
fixed: VxeColumnPropTypes.Fixed;
type: string;
}) => { rowspan: number, colspan: number };
export type FooterSpanMethod = (params: {
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
_columnIndex: number;
$columnIndex: number;
$rowIndex: number;
items: any[];
data: any[][];
}) => { rowspan: number, colspan: number };
export type ShowOverflow = boolean | 'ellipsis' | 'title' | 'tooltip' | null;
export type ShowHeaderOverflow = ShowOverflow;
export type ShowFooterOverflow = ShowOverflow;
export type ColumnKey = boolean;
export type RowKey = boolean;
export type RowId = string;
export type KeepSource = boolean;
export type AutoResize = boolean;
export type SyncResize = boolean | string | number;
/**
* 列的默认配置
*/
export interface ColumnConfig {
width?: number;
minWidth?: number;
}
export interface ColumnOpts extends ColumnConfig { }
/**
* 自定义列配置项
*/
export interface CustomConfig {
storage?: boolean | {
visible?: boolean;
resizable?: boolean;
};
checkMethod?(params: { column: VxeTableDefines.ColumnInfo }): boolean;
}
export interface CustomOpts extends CustomConfig { }
export interface ResizableConfig {
minWidth?: number | string | ((params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$columnIndex: number;
$rowIndex: number;
cell: HTMLTableHeaderCellElement;
}) => number | string);
}
export interface ResizableOpts extends ResizableConfig { }
/**
* 序号配置项
*/
export interface SeqConfig {
startIndex?: number;
seqMethod?(params: {
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$columnIndex: number;
row: RowInfo;
rowIndex: number;
$rowIndex: number;
isHidden: boolean;
fixed: VxeColumnPropTypes.Fixed;
type: string;
}): number;
}
export interface SeqOpts extends SeqConfig { }
interface SortConfigDefaultSort {
field: string;
order: SortOrder;
}
/**
* 排序配置项
*/
export interface SortConfig {
defaultSort?: SortConfigDefaultSort | SortConfigDefaultSort[];
orders?: SortOrder[];
sortMethod?(params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
data: any[];
sortList: any[];
}): any[];
remote?: boolean;
multiple?: boolean;
trigger?: 'default' | 'cell';
showIcon?: boolean;
iconAsc?: string;
iconDesc?: string;
}
export type SortOrder = 'asc' | 'desc' | null;
export interface SortOpts extends SortConfig {
orders: SortOrder[];
}
/**
* 筛选配置项
*/
export interface FilterConfig {
filterMethod?: (params: { options: any[], values: any[], row: any, column: any }) => any;
remote?: boolean;
showIcon?: boolean;
iconNone?: string;
iconMatch?: string;
}
export interface FilterOpts extends FilterConfig { }
/**
* 单选框配置
*/
export interface RadioConfig {
reserve?: boolean;
labelField?: string;
checkRowKey?: string | number;
checkMethod?(params: { row: RowInfo }): boolean;
trigger?: 'default' | 'cell' | 'row';
highlight?: boolean;
}
export interface RadioOpts extends RadioConfig { }
/**
* 复选框配置项
*/
export interface CheckboxConfig {
reserve?: boolean;
labelField?: string;
checkField?: string;
halfField?: string;
showHeader?: boolean;
checkAll?: boolean;
checkRowKeys?: string[] | number[];
checkStrictly?: boolean;
strict?: boolean;
checkMethod?(params: { row: RowInfo }): boolean;
trigger?: 'default' | 'cell' | 'row';
highlight?: boolean;
range?: boolean;
}
export interface CheckboxOpts extends CheckboxConfig { }
/**
* 提示信息配置项
*/
export interface TooltipConfig {
showAll?: boolean;
theme?: 'dark' | 'light';
enterable?: boolean;
leaveDelay?: number;
leaveMethod?: (params: { $event: Event }) => boolean;
contentMethod?(params: {
items: any[];
row: RowInfo;
rowIndex: number;
$rowIndex: number;
_rowIndex: number;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$columnIndex: number;
_columnIndex: number;
type: 'header' | 'body' | 'footer';
cell: HTMLElement;
$event: any;
}): string | null | void;
}
export interface TooltipOpts extends TooltipConfig { }
/**
* 展开行配置项
*/
export interface ExpandConfig {
labelField?: string;
expandAll?: boolean;
expandRowKeys?: string[] | number[];
accordion?: boolean;
trigger?: 'default' | 'cell' | 'row';
lazy?: boolean;
reserve?: boolean;
loadMethod?(params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
row: RowInfo;
rowIndex: number;
$rowIndex: number;
}): Promise<any>;
toggleMethod?(params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
expanded: boolean;
row: RowInfo;
rowIndex: number;
$rowIndex: number;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$columnIndex: number;
}): boolean;
visibleMethod?(params: VxeTableDefines.CellRenderBodyParams): boolean;
showIcon?: boolean;
iconOpen?: string;
iconClose?: string;
iconLoaded?: string;
}
export interface ExpandOpts extends ExpandConfig { }
/**
* 树形结构配置项
*/
export interface TreeConfig {
children?: string;
indent?: number;
line?: boolean;
expandAll?: boolean;
expandRowKeys?: string[] | number[];
accordion?: boolean;
trigger?: 'default' | 'cell' | 'row';
lazy?: boolean;
hasChild?: string;
reserve?: boolean;
loadMethod?(params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
row: RowInfo
}): Promise<any[]>;
toggleMethod?(params: {
$table: VxeTableConstructor & VxeTablePrivateMethods;
expanded: boolean;
row: RowInfo;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$columnIndex: number;
}): boolean;
showIcon?: boolean;
iconOpen?: string;
iconClose?: string;
iconLoaded?: string;
}
export interface TreeOpts extends TreeConfig {
children: string;
indent: number;
hasChild: string;
iconOpen: string;
iconClose: string;
iconLoaded: string;
}
/**
* 快捷菜单配置项
*/
export interface MenuConfig {
header?: VxeTableDefines.MenuOptions;
body?: VxeTableDefines.MenuOptions;
footer?: VxeTableDefines.MenuOptions;
trigger?: 'default' | 'cell';
className?: string;
visibleMethod?(params: {
type: string;
options: (VxeTableDefines.MenuFirstOption | VxeTableDefines.MenuChildOption)[][];
columns: VxeTableDefines.ColumnInfo[];
row?: RowInfo;
rowIndex?: number;
column?: VxeTableDefines.ColumnInfo;
columnIndex?: number;
}): boolean;
}
/**
* 鼠标配置项
*/
export interface MouseConfig {
selected?: boolean;
/**
* 如果功能被支持,则开启单元格区域选取功能,非连续的区域,按住 Ctrl 键,用鼠标逐一选取
*/
area?: boolean;
extension?: boolean;
}
export interface MouseOpts extends MouseConfig { }
/**
* 按键配置项
*/
export interface KeyboardConfig {
/**
* 是否开启非编辑状态下,上下左右移动功能
*/
isArrow?: boolean;
/**
* 是否开启删除键功能
*/
isDel?: boolean;
/**
* 是否开启回车移动上下行移动
*/
isEnter?: boolean;
/**
* 是否开启TAB键左右移动功能
*/
isTab?: boolean;
/**
* 是否开启单元格选择编辑
*/
isEdit?: boolean;
/**
* 用于 mouse-config.area开启合并和取消合并功能
*/
isMerge?: boolean;
/**
* 用于 mouse-config.area开启复制/剪贴/粘贴功能
*/
isClip?: boolean;
/**
* 用于 mouse-config.area & column.type=checkbox|radio开启空格键切换复选框或单选框状态功能
*/
isChecked?: boolean;
/**
* 用于 mouse-config.area是否将回车键行为改成 Tab 键行为
*/
enterToTab?: boolean;
/**
* 只对 isDel=true 有效,用于删除键清空单元格内容方法
*/
delMethod?(params: {
row: RowInfo;
rowIndex: number;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$table: VxeTableConstructor & VxeTablePrivateMethods;
}): void;
/**
* 只对 isDel=true 有效,用于重写回退键清空单元格内容并激活为编辑状态方法
*/
backMethod?(params: {
row: RowInfo;
rowIndex: number;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$table: VxeTableConstructor & VxeTablePrivateMethods;
}): void;
/**
* 只对 isEdit=true 有效,用于重写编辑单元格方法
*/
editMethod?(params: {
row: RowInfo;
rowIndex: number;
column: VxeTableDefines.ColumnInfo;
columnIndex: number;
$table: VxeTableConstructor & VxeTablePrivateMethods;
}): boolean;
}
export interface KeyboardOpts extends KeyboardConfig { }
/**
* 复制/粘贴配置项
*/
export interface ClipConfig {
isCopy?: boolean;
isCut?: boolean;
isPaste?: boolean;
getMethod?(params: {
row: any;
column: VxeTableDefines.ColumnInfo;
}): string;
beforeGetMethod?(params: {
targetAreas: any[];
}): boolean;
setMethod?(params: {
row: any,
column: VxeTableDefines.ColumnInfo;
cellValue: any;
}): void;
beforeSetMethod?(params: {
currentAreas: any[];
targetAreas: any[];
cellValues: any[][];
}): boolean;
}
export interface ClipOpts extends ClipConfig { }
/**
* 查找/替换配置项
*/
export interface FNRConfig {
isFind?: boolean;
isReplace?: boolean;
}
export interface FNROpts extends FNRConfig { }
/**
* 编辑配置项
*/
export interface EditConfig {
trigger?: 'manual' | 'click' | 'dblclick';
mode?: string;
icon?: string;
showIcon?: boolean;
showStatus?: boolean;
showAsterisk?: boolean;
autoClear?: boolean;
/**
* 该方法的返回值用来决定该单元格是否允许编辑
*/
activeMethod?(params: {
row: RowInfo
rowIndex: number
column: VxeTableDefines.ColumnInfo
columnIndex: number
}): boolean;
}
export interface EditOpts extends EditConfig { }
/**
* 校验配置项
*/
export interface ValidConfig {
autoPos?: boolean;
showMessage?: boolean;
message?: string;
maxWidth?: number;
}
export interface ValidOpts extends ValidConfig { }
/**
* 校验规则配置项
*/
export interface EditRules {
[field: string]: VxeTableDefines.ValidatorRule[];
}
export type ZIndex = number;
export type EmptyText = string;
export interface EmptyRender extends VxeGlobalRendererHandles.RenderOptions { }
export interface EmptyOpts extends EmptyRender { }
export type Fit = boolean;
export type Animat = boolean;
export type DelayHover = number;
export interface ScrollX {
gt?: number;
oSize?: number;
[key: string]: any;
}
export interface SXOpts extends ScrollX {
gt: number;
oSize: number;
}
export interface ScrollY {
gt?: number;
oSize?: number;
[key: string]: any;
}
export interface SYOpts extends ScrollY {
gt: number;
oSize: number;
}
export type Params = any;
}
export interface VxeTableProps {
size?: VxeTablePropTypes.Size;
id?: VxeTablePropTypes.ID;
data?: VxeTablePropTypes.Data;
height?: VxeTablePropTypes.Height;
maxHeight?: VxeTablePropTypes.MaxHeight;
resizable?: VxeTablePropTypes.Resizable;
stripe?: VxeTablePropTypes.Stripe;
round?: VxeTablePropTypes.Round;
border?: VxeTablePropTypes.Border;
loading?: VxeTablePropTypes.Loading;
align?: VxeTablePropTypes.Align;
headerAlign?: VxeTablePropTypes.HeaderAlign;
footerAlign?: VxeTablePropTypes.FooterAlign;
showHeader?: VxeTablePropTypes.ShowHeader;
highlightCurrentRow?: VxeTablePropTypes.HighlightCurrentRow;
highlightHoverRow?: VxeTablePropTypes.HighlightHoverRow;
highlightCurrentColumn?: VxeTablePropTypes.HighlightCurrentColumn;
highlightHoverColumn?: VxeTablePropTypes.HighlightHoverColumn;
highlightCell?: VxeTablePropTypes.HighlightCell;
showFooter?: VxeTablePropTypes.ShowFooter;
footerMethod?: VxeTablePropTypes.FooterMethod;
rowClassName?: VxeTablePropTypes.RowClassName;
cellClassName?: VxeTablePropTypes.CellClassName;
headerRowClassName?: VxeTablePropTypes.HeaderRowClassName;
headerCellClassName?: VxeTablePropTypes.HeaderCellClassName;
footerRowClassName?: VxeTablePropTypes.FooterRowClassName;
footerCellClassName?: VxeTablePropTypes.FooterCellClassName;
cellStyle?: VxeTablePropTypes.CellStyle;
headerCellStyle?: VxeTablePropTypes.HeaderCellStyle;
footerCellStyle?: VxeTablePropTypes.FooterCellStyle;
rowStyle?: VxeTablePropTypes.RowStyle;
headerRowStyle?: VxeTablePropTypes.HeaderRowStyle;
footerRowStyle?: VxeTablePropTypes.FooterRowStyle;
mergeCells?: VxeTablePropTypes.MergeCell[];
mergeFooterItems?: VxeTablePropTypes.MergeFooterItem[];
spanMethod?: VxeTablePropTypes.SpanMethod;
footerSpanMethod?: VxeTablePropTypes.FooterSpanMethod;
showOverflow?: VxeTablePropTypes.ShowOverflow;
showHeaderOverflow?: VxeTablePropTypes.ShowHeaderOverflow;
showFooterOverflow?: VxeTablePropTypes.ShowFooterOverflow;
columnKey?: VxeTablePropTypes.ColumnKey;
rowKey?: VxeTablePropTypes.RowKey;
rowId?: VxeTablePropTypes.RowId;
keepSource?: VxeTablePropTypes.KeepSource;
autoResize?: VxeTablePropTypes.AutoResize;
syncResize?: VxeTablePropTypes.SyncResize;
columnConfig?: VxeTablePropTypes.ColumnConfig;
customConfig?: VxeTablePropTypes.CustomConfig;
resizableConfig?: VxeTablePropTypes.ResizableConfig;
seqConfig?: VxeTablePropTypes.SeqConfig;
sortConfig?: VxeTablePropTypes.SortConfig;
filterConfig?: VxeTablePropTypes.FilterConfig;
radioConfig?: VxeTablePropTypes.RadioConfig;
checkboxConfig?: VxeTablePropTypes.CheckboxConfig;
tooltipConfig?: VxeTablePropTypes.TooltipConfig;
exportConfig?: VxeTablePropTypes.ExportConfig;
importConfig?: VxeTablePropTypes.ImportConfig;
printConfig?: VxeTablePropTypes.PrintConfig;
expandConfig?: VxeTablePropTypes.ExpandConfig;
treeConfig?: VxeTablePropTypes.TreeConfig;
menuConfig?: VxeTablePropTypes.MenuConfig;
mouseConfig?: VxeTablePropTypes.MouseConfig;
fnrConfig?: VxeTablePropTypes.FNRConfig;
keyboardConfig?: VxeTablePropTypes.KeyboardConfig;
clipConfig?: VxeTablePropTypes.ClipConfig;
editConfig?: VxeTablePropTypes.EditConfig;
validConfig?: VxeTablePropTypes.ValidConfig;
editRules?: VxeTablePropTypes.EditRules;
emptyText?: VxeTablePropTypes.EmptyText;
emptyRender?: VxeTablePropTypes.EmptyRender;
fit?: VxeTablePropTypes.Fit;
animat?: VxeTablePropTypes.Animat;
delayHover?: VxeTablePropTypes.DelayHover;
scrollX?: VxeTablePropTypes.ScrollX;
scrollY?: VxeTablePropTypes.ScrollY;
params?: VxeTablePropTypes.Params;
}
export type VxeTableEmits = [
'update:data',
'keydown',
'paste',
'copy',
'cut',
'current-change',
'radio-change',
'checkbox-change',
'checkbox-all',
'checkbox-range-start',
'checkbox-range-change',
'checkbox-range-end',
'cell-click',
'cell-dblclick',
'cell-menu',
'cell-mouseenter',
'cell-mouseleave',
'header-cell-click',
'header-cell-dblclick',
'header-cell-menu',
'footer-cell-click',
'footer-cell-dblclick',
'footer-cell-menu',
'sort-change',
'filter-change',
'resizable-change',
'toggle-row-expand',
'toggle-tree-expand',
'menu-click',
'edit-closed',
'edit-actived',
'edit-disabled',
'valid-error',
'scroll',
'custom',
'open-fnr',
'change-fnr',
'cell-area-copy',
'cell-area-cut',
'cell-area-paste',
'cell-area-merge',
'cell-area-selection-start',
'cell-area-selection-end',
'cell-area-extension-start',
'cell-area-extension-end'
]
export namespace VxeTableDefines {
export interface SortConfs {
field: string;
order?: VxeTablePropTypes.SortOrder;
}
export interface MergeOptions {
row: any | number;
col: VxeTableDefines.ColumnInfo | number;
rowspan: number;
colspan: number;
}
export interface MergeInfo {
row: number;
col: number;
rowspan: number;
colspan: number;
}
/**
* 列对象
*/
export class ColumnInfo {
property: string;
type: VxeColumnPropTypes.Type;
title: VxeColumnPropTypes.Title;
width: VxeColumnPropTypes.Width;
minWidth: VxeColumnPropTypes.MinWidth;
resizable: VxeColumnPropTypes.Resizable;
fixed: VxeColumnPropTypes.Fixed;
align: VxeColumnPropTypes.Align;
headerAlign: VxeColumnPropTypes.HeaderAlign;
footerAlign: VxeColumnPropTypes.FooterAlign;
showOverflow: VxeColumnPropTypes.ShowOverflow;
showHeaderOverflow: VxeColumnPropTypes.ShowHeaderOverflow;
showFooterOverflow: VxeColumnPropTypes.ShowFooterOverflow;
className: VxeColumnPropTypes.ClassName;
headerClassName: VxeColumnPropTypes.HeaderClassName;
footerClassName: VxeColumnPropTypes.FooterClassName;
formatter: VxeColumnPropTypes.Formatter;
sortable: VxeColumnPropTypes.Sortable;
sortBy: VxeColumnPropTypes.SortBy;
filters: VxeColumnPropTypes.Filter[];
filterMultiple: VxeColumnPropTypes.FilterMultiple;
filterMethod: VxeColumnPropTypes.FilterMethod;
filterRender: VxeColumnPropTypes.FilterRender;
treeNode: VxeColumnPropTypes.TreeNode;
visible: VxeColumnPropTypes.Visible;
exportMethod: VxeColumnPropTypes.ExportMethod;
footerExportMethod: VxeColumnPropTypes.FooterExportMethod;
titleHelp: VxeColumnPropTypes.TitleHelp;
cellType: VxeColumnPropTypes.CellType;
cellRender: VxeColumnPropTypes.CellRender;
editRender: VxeColumnPropTypes.EditRender;
contentRender: VxeColumnPropTypes.ContentRender;
params: VxeColumnPropTypes.Params;
slots: VxeColumnPropTypes.Slots;
id: string;
parentId: string;
level: number;
rowSpan: number;
colSpan: number;
halfVisible: boolean;
defaultVisible: any;
checked: boolean;
halfChecked: boolean;
disabled: boolean;
order: VxeTablePropTypes.SortOrder;
renderWidth: number;
renderHeight: number;
resizeWidth: number;
model: {
update: boolean;
value: any;
};
children: ColumnInfo[];
renderHeader(params: CellRenderHeaderParams): VNode[];
renderCell(params: CellRenderCellParams): VNode[];
renderData(params: CellRenderDataParams): VNode[];
renderFooter(params: CellRenderFooterParams): VNode[];
getTitle(): string;
}
export interface CellRenderHeaderParams {
$table: VxeTableConstructor & VxeTablePrivateMethods;
$rowIndex: number;
column: ColumnInfo;
columnIndex: number;
$columnIndex: number;
_columnIndex: number;
fixed: VxeColumnPropTypes.Fixed;
type: string;
isHidden: boolean;
hasFilter: boolean;
}
export interface CellRenderBodyParams {
$table: VxeTableConstructor & VxeTablePrivateMethods;
$seq: string;
seq: number;
rowid: string;
row: any;
rowIndex: number;
$rowIndex: number;
_rowIndex: number;
column: ColumnInfo;
columnIndex: number;
$columnIndex: number;
_columnIndex: number;
fixed: VxeColumnPropTypes.Fixed;
type: string
isHidden: boolean;
level: number;
visibleData: any[];
data: any[];
items: any[];
}
export interface CellRenderDataParams extends CellRenderBodyParams { }
export interface CellRenderCellParams extends CellRenderBodyParams { }
export interface CellRenderFooterParams {
$table: VxeTableConstructor & VxeTablePrivateMethods;
_rowIndex: number;
$rowIndex: number;
column: ColumnInfo;
columnIndex: number;
$columnIndex: number;
_columnIndex: number;
itemIndex: number;
items: any[];
fixed: VxeColumnPropTypes.Fixed;
type: string;
data: any[][];
}
interface TableEventParams extends VxeEvent {
$table: VxeTableConstructor & VxeTablePrivateMethods;
}
interface TableBaseHeaderCellParams {
$rowIndex: number;
column: ColumnInfo;
columnIndex: number;
$columnIndex: number;
}
interface TableBaseCellParams {
row: RowInfo;
rowIndex: number;
$rowIndex: number;
column: ColumnInfo;
columnIndex: number;
$columnIndex: number;
}
interface TableBaseFooterCellParams {
$rowIndex: number;
column: ColumnInfo;
columnIndex: number;
$columnIndex: number;
}
export interface KeydownParams { }
export interface KeydownEventParams extends TableEventParams, KeydownParams { }
export interface PasteParams { }
export interface PasteEventParams extends TableEventParams, PasteParams { }
export interface CopyParams { }
export interface CopyEventParams extends TableEventParams, CopyParams { }
export interface CutParams { }
export interface CutEventParams extends TableEventParams, CutParams { }
export interface CurrentChangeParams {
row: RowInfo;
rowIndex: number;
$rowIndex: number;
}
export interface CurrentChangeEventParams extends TableEventParams, CurrentChangeParams { }
export interface RadioChangeParams extends TableBaseCellParams { }
export interface RadioChangeEventParams extends TableEventParams, RadioChangeParams { }
export interface CheckboxChangeParams {
checked: boolean;
records: RowInfo[];
reserves: RowInfo[];
indeterminates: RowInfo[];
}
export interface CheckboxChangeEventParams extends TableEventParams, CheckboxChangeParams { }
export interface CheckboxAllParams extends CheckboxChangeParams { }
export interface CheckboxAllEventParams extends TableEventParams, CheckboxAllParams { }
export interface CheckboxRangeStartParams {
records: any[];
reserves: any[];
}
export interface CheckboxRangeStartEventParams extends TableEventParams, CheckboxRangeStartParams { }
export interface CheckboxRangeChangeParams extends CheckboxRangeStartParams { }
export interface CheckboxRangeChangeEventParams extends TableEventParams, CheckboxRangeChangeParams { }
export interface CheckboxRangeEndParams extends CheckboxRangeStartParams { }
export interface CheckboxRangeEndEventParams extends TableEventParams, CheckboxRangeEndParams { }
export interface CellClickParams extends TableBaseCellParams {
triggerRadio: boolean;
triggerCheckbox: boolean;
triggerTreeNode: boolean;
triggerExpandNode: boolean;
}
export interface CellClickEventParams extends TableEventParams, CellClickParams { }
export interface CellDBLClickParams extends CellClickParams, CellClickParams { }
export interface CellDBLClickEventParams extends TableEventParams, CellDBLClickParams { }
export interface CellMenuParams extends TableBaseCellParams { }
export interface CellMenuEventParams extends TableEventParams, CellMenuParams { }
export interface CellMouseenterParams extends TableBaseCellParams { }
export interface CellMouseenterEventParams extends TableEventParams, CellMouseenterParams { }
export interface CellMouseleaveParams extends TableBaseCellParams { }
export interface CellMouseleaveEventParams extends TableEventParams, CellMouseleaveParams { }
export interface HeaderCellClickParams extends TableBaseHeaderCellParams { }
export interface HeaderCellClickEventParams extends TableEventParams, HeaderCellClickParams { }
export interface HeaderCellDblclickParams extends TableBaseHeaderCellParams { }
export interface HeaderCellDblclickEventParams extends TableEventParams, HeaderCellDblclickParams { }
export interface HeaderCellMenuParams extends TableBaseHeaderCellParams { }
export interface HeaderCellMenuEventParams extends TableEventParams, HeaderCellMenuParams { }
export interface FooterCellClickParams extends TableBaseFooterCellParams { }
export interface FooterCellClickEventParams extends TableEventParams, FooterCellClickParams { }
export interface FooterCellDblclickParams extends TableBaseFooterCellParams { }
export interface FooterCellDblclickEventParams extends TableEventParams, FooterCellDblclickParams { }
export interface FooterCellMenuParams extends TableBaseFooterCellParams { }
export interface FooterCellMenuEventParams extends TableEventParams, FooterCellMenuParams { }
export interface SortCheckedParams {
column: VxeTableDefines.ColumnInfo;
property: VxeColumnPropTypes.Field;
sortBy: VxeColumnPropTypes.SortBy;
order: VxeTablePropTypes.SortOrder;
}
export interface SortChangeParams extends SortCheckedParams {
sortList: SortCheckedParams[];
}
export interface SortChangeEventParams extends TableEventParams, SortChangeParams { }
export interface FilterCheckedParams {
column: VxeTableDefines.ColumnInfo;
property: VxeColumnPropTypes.Field;
values: any[];
datas: any[];
}
export interface FilterChangeParams extends FilterCheckedParams {
filterList: FilterCheckedParams[]
}
export interface FilterChangeEventParams extends TableEventParams, FilterChangeParams { }
export interface ResizableChangeParams extends TableBaseHeaderCellParams { }
export interface ResizableChangeEventParams extends TableEventParams, ResizableChangeParams { }
export interface ToggleRowExpandParams extends TableBaseCellParams { }
export interface ToggleRowExpandEventParams extends TableEventParams, ToggleRowExpandParams { }
export interface ToggleTreeExpandParams extends TableBaseCellParams { }
export interface ToggleTreeExpandEventParams extends TableEventParams, ToggleTreeExpandParams { }
export interface MenuClickParams extends TableBaseCellParams {
menu: VxeTableDefines.MenuFirstOption | VxeTableDefines.MenuChildOption;
type: string;
}
export interface MenuClickEventParams extends TableEventParams, MenuClickParams { }
export interface EditClosedParams extends TableBaseCellParams { }
export interface EditClosedEventParams extends TableEventParams, EditClosedParams { }
export interface EditActivedParams extends TableBaseCellParams { }
export interface EditActivedEventParams extends TableEventParams, EditActivedParams { }
export interface EditDisabledParams extends TableBaseCellParams { }
export interface EditDisabledEventParams extends TableEventParams, EditDisabledParams { }
export interface ValidErrorParams extends TableBaseCellParams {
rule: any;
}
export interface ValidErrorEventParams extends TableEventParams, ValidErrorParams { }
export interface ScrollParams {
type: string;
scrollTop: number;
scrollLeft: number;
isX: boolean;
isY: boolean;
}
export interface ScrollEventParams extends TableEventParams, ScrollParams {
target: HTMLDivElement;
}
export interface CustomParams {
type: string;
}
export interface CustomEventParams extends TableEventParams, CustomParams { }
}
export interface VxeTableListeners {
onKeydown?: VxeTableEvents.Keydown;
keydown?: VxeTableEvents.Keydown;
onPaste?: VxeTableEvents.Paste;
paste?: VxeTableEvents.Paste;
onCopy?: VxeTableEvents.Copy;
copy?: VxeTableEvents.Copy;
onCut?: VxeTableEvents.Cut;
cut?: VxeTableEvents.Cut;
onCurrentChange?: VxeTableEvents.CurrentChange;
currentChange?: VxeTableEvents.CurrentChange;
onRadioChange?: VxeTableEvents.RadioChange;
radioChange?: VxeTableEvents.RadioChange;
onCheckboxChange?: VxeTableEvents.CheckboxChange;
checkboxChange?: VxeTableEvents.CheckboxChange;
onCheckboxAll?: VxeTableEvents.CheckboxAll;
checkboxAll?: VxeTableEvents.CheckboxAll;
onCheckboxRangeStart?: VxeTableEvents.CheckboxRangeStart;
checkboxRangeStart?: VxeTableEvents.CheckboxRangeStart;
onCheckboxRangeChange?: VxeTableEvents.CheckboxRangeChange;
checkboxRangeChange?: VxeTableEvents.CheckboxRangeChange;
onCheckboxRangeEnd?: VxeTableEvents.CheckboxRangeEnd;
checkboxRangeEnd?: VxeTableEvents.CheckboxRangeEnd;
onCellClick?: VxeTableEvents.CellClick;
cellClick?: VxeTableEvents.CellClick;
onCellDBLClick?: VxeTableEvents.CellDBLClick;
cellDBLClick?: VxeTableEvents.CellDBLClick;
onCellMenu?: VxeTableEvents.CellMenu;
cellMenu?: VxeTableEvents.CellMenu;
onCellMouseenter?: VxeTableEvents.CellMouseenter;
cellMouseenter?: VxeTableEvents.CellMouseenter;
onCellMouseleave?: VxeTableEvents.CellMouseleave;
cellMouseleave?: VxeTableEvents.CellMouseleave;
onHeaderCellClick?: VxeTableEvents.HeaderCellClick;
headerCellClick?: VxeTableEvents.HeaderCellClick;
onHeaderCellDblclick?: VxeTableEvents.HeaderCellDblclick;
headerCellDblclick?: VxeTableEvents.HeaderCellDblclick;
onHeaderCellMenu?: VxeTableEvents.HeaderCellMenu;
headerCellMenu?: VxeTableEvents.HeaderCellMenu;
onFooterCellClick?: VxeTableEvents.FooterCellClick;
footerCellClick?: VxeTableEvents.FooterCellClick;
onFooterCellDblclick?: VxeTableEvents.FooterCellDblclick;
footerCellDblclick?: VxeTableEvents.FooterCellDblclick;
onFooterCellMenu?: VxeTableEvents.FooterCellMenu;
footerCellMenu?: VxeTableEvents.FooterCellMenu;
onSortChange?: VxeTableEvents.SortChange;
sortChange?: VxeTableEvents.SortChange;
onFilterChange?: VxeTableEvents.FilterChange;
filterChange?: VxeTableEvents.FilterChange;
onResizableChange?: VxeTableEvents.ResizableChange;
resizableChange?: VxeTableEvents.ResizableChange;
onToggleRowExpand?: VxeTableEvents.ToggleRowExpand;
toggleRowExpand?: VxeTableEvents.ToggleRowExpand;
onToggleTreeExpand?: VxeTableEvents.ToggleTreeExpand;
toggleTreeExpand?: VxeTableEvents.ToggleTreeExpand;
onMenuClick?: VxeTableEvents.MenuClick;
menuClick?: VxeTableEvents.MenuClick;
onEditClosed?: VxeTableEvents.EditClosed;
editClosed?: VxeTableEvents.EditClosed;
onEditActived?: VxeTableEvents.EditActived;
editActived?: VxeTableEvents.EditActived;
onEditDisabled?: VxeTableEvents.EditDisabled;
editDisabled?: VxeTableEvents.EditDisabled;
onValidError?: VxeTableEvents.ValidError;
validError?: VxeTableEvents.ValidError;
onScroll?: VxeTableEvents.Scroll;
scroll?: VxeTableEvents.Scroll;
onCustom?: VxeTableEvents.Custom;
custom?: VxeTableEvents.Custom;
}
export namespace VxeTableEvents {
export type Keydown = (params: VxeTableDefines.KeydownEventParams) => void;
export type Paste = (params: VxeTableDefines.PasteEventParams) => void;
export type Copy = (params: VxeTableDefines.CopyEventParams) => void;
export type Cut = (params: VxeTableDefines.CutEventParams) => void;
export type CurrentChange = (params: VxeTableDefines.CurrentChangeEventParams) => void;
export type RadioChange = (params: VxeTableDefines.RadioChangeEventParams) => void;
export type CheckboxChange = (params: VxeTableDefines.CheckboxChangeEventParams) => void;
export type CheckboxAll = (params: VxeTableDefines.CheckboxAllEventParams) => void;
export type CheckboxRangeStart = (params: VxeTableDefines.CheckboxRangeStartEventParams) => void;
export type CheckboxRangeChange = (params: VxeTableDefines.CheckboxRangeChangeEventParams) => void;
export type CheckboxRangeEnd = (params: VxeTableDefines.CheckboxRangeEndEventParams) => void;
export type CellClick = (params: VxeTableDefines.CellClickEventParams) => void;
export type CellDBLClick = (params: VxeTableDefines.CellDBLClickEventParams) => void;
export type CellMenu = (params: VxeTableDefines.CellMenuEventParams) => void;
export type CellMouseenter = (params: VxeTableDefines.CellMouseenterEventParams) => void;
export type CellMouseleave = (params: VxeTableDefines.CellMouseleaveEventParams) => void;
export type HeaderCellClick = (params: VxeTableDefines.HeaderCellClickEventParams) => void;
export type HeaderCellDblclick = (params: VxeTableDefines.HeaderCellDblclickEventParams) => void;
export type HeaderCellMenu = (params: VxeTableDefines.HeaderCellMenuEventParams) => void;
export type FooterCellClick = (params: VxeTableDefines.FooterCellClickEventParams) => void;
export type FooterCellDblclick = (params: VxeTableDefines.FooterCellDblclickEventParams) => void;
export type FooterCellMenu = (params: VxeTableDefines.FooterCellMenuEventParams) => void;
export type SortChange = (params: VxeTableDefines.SortChangeEventParams) => void;
export type FilterChange = (params: VxeTableDefines.FilterChangeEventParams) => void;
export type ResizableChange = (params: VxeTableDefines.ResizableChangeEventParams) => void;
export type ToggleRowExpand = (params: VxeTableDefines.ToggleRowExpandEventParams) => void;
export type ToggleTreeExpand = (params: VxeTableDefines.ToggleTreeExpandEventParams) => void;
export type MenuClick = (params: VxeTableDefines.MenuClickEventParams) => void;
export type EditClosed = (params: VxeTableDefines.EditClosedEventParams) => void;
export type EditActived = (params: VxeTableDefines.EditActivedEventParams) => void;
export type EditDisabled = (params: VxeTableDefines.EditDisabledEventParams) => void;
export type ValidError = (params: VxeTableDefines.ValidErrorEventParams) => void;
export type Scroll = (params: VxeTableDefines.ScrollEventParams) => void;
export type Custom = (params: VxeTableDefines.CustomEventParams) => void;
}