import type { ElTable, ElTableColumn } from 'ant-design-vue/lib/components/table' import { XPBUIComponent } from './component' export type columnProps = { slots?: { default?: ((h, scope) => any) | string header?: ((h, scope) => any) | string } // children?: TableColumnProps[] t_label?: string // eslint-disable-next-line no-undef [propName: string]: any } /* Column */ // export type TableColumnProps = InstanceType['$props'] & columnProps export type TableColumnProps = { prop: string type?: string width?: string minWidth?: string sortable?: boolean | string align?: string showOverflowTooltip?: boolean fixed?: boolean | string formatter?: Function } & columnProps export type Options = { // 表格分页器 pageSizes (默认:[10, 20, 50, 100]) pageSizes?: number[] // 表格分页器 layout (默认:'total, sizes, prev, pager, next, jumper') layout?: string // 表格分页器 背景 (默认:true) background?: boolean // 表格loading (默认:false) loading?: boolean // 是否多选类型 (默认:false) multipleSelect?: boolean // 多选类型|(currentRowKey当前行选中key)选中标记唯一key (默认:'id') 【table $prop属性之一】 rowKey?: (row) => any | string // 根据 该值 查找当前页面数据是否包含当前数据 添加 高亮状态 (默认:'id') // currentRowKey?: string; // table 默认 column 对齐方式 (默认:'center') align?: string // table 默认 column 是否允许拖动 (默认:true) resizable?: boolean // table 默认 column 是否允许拖动 (默认:true) showOverflowTooltip?: boolean // 是否展示数据序列号 (默认:true) showIndex?: boolean // 展示数据序列号_label (默认:'序号') indexLabel?: string // table 默认 column 是否允许拖动 (默认:true) showPagination?: boolean } /* Table */ export type TableProps = InstanceType['$props'] & Options export type SearchParams = { page: number size: number [propName: string]: any } /* // import { TooltipEffect } from './tooltip' export type SortOrder = 'ascending' | 'descending' /!** Options to set the default sort column and order *!/ export interface DefaultSortOptions { /!** Default sort column *!/ prop: string, /!** Default sort order *!/ order: SortOrder } export interface SummaryMethodParams { columns: object[], data: object } export interface rowCallbackParams { row: object, rowIndex: number } export interface cellCallbackParams { row: object, rowIndex: number, column: object, columnIndex: number } export interface treeNode { rowKey: string | number, isLeaf: boolean, level: number, expanded: boolean, loaded: boolean } */ /** Table Component */ export declare class XTable extends XPBUIComponent { /* /!** Table data *!/ data: object[] /!** Table's height. By default it has an auto height. If its value is a number, the height is measured in pixels; if its value is a string, the height is affected by external styles *!/ height: string | number /!** Table's max-height. The height of the table starts from auto until it reaches the maxHeight limit. The maxHeight is measured in pixels, same as height *!/ maxHeight: string | number /!** Whether table is striped *!/ stripe: boolean /!** Whether table has vertical border *!/ border: boolean /!** Whether width of column automatically fits its container *!/ fit: boolean /!** Whether table header is visible *!/ showHeader: boolean /!** Whether current row is highlighted *!/ highlightCurrentRow: boolean /!** Key of current row, a set only prop *!/ currentRowKey: string | number /!** Whether to lazy load tree structure data, used with load attribute *!/ lazy: boolean /!** Horizontal indentation of nodes in adjacent levels in pixels *!/ indent: number /!** Function that returns custom class names for a row, or a string assigning class names for every row *!/ rowClassName: string | ((param: rowCallbackParams) => string) /!** Function that returns custom style for a row, or an object assigning custom style for every row *!/ rowStyle: object | ((param: rowCallbackParams) => object) /!** Function that returns custom class names for a cell, or a string assigning class names for every cell *!/ cellClassName: string | ((param: cellCallbackParams) => string) /!** Function that returns custom style for a cell, or an object assigning custom style for every cell *!/ cellStyle: object | ((param: cellCallbackParams) => object) /!** Function that returns custom class names for a row in table header, or a string assigning class names for every row in table header *!/ headerRowClassName: string | ((param: rowCallbackParams) => string) /!** Function that returns custom style for a row in table header, or an object assigning custom style for every row in table header *!/ headerRowStyle: object | ((param: rowCallbackParams) => object) /!** Function that returns custom class names for a cell in table header, or a string assigning class names for every cell in table header *!/ headerCellClassName: string | ((param: cellCallbackParams) => string) /!** Function that returns custom style for a cell in table header, or an object assigning custom style for every cell in table header *!/ headerCellStyle: object | ((param: cellCallbackParams) => object) /!** Key of row data, used for optimizing rendering. Required if reserve-selection is on *!/ rowKey: (row: object) => any /!** Displayed text when data is empty. You can customize this area with `slot="empty"` *!/ emptyText: String /!** Whether expand all rows by default. Only works when the table has a column `type="expand"` *!/ defaultExpandAll: Boolean /!** Set expanded rows by this prop. Prop's value is the keys of expand rows, you should set row-key before using this prop *!/ expandRowKeys: any[] /!** Set the default sort column and order *!/ defaultSort: DefaultSortOptions /!** Tooltip effect property *!/ tooltipEffect: TooltipEffect /!** Whether to display a summary row *!/ showSummary: boolean /!** Displayed text for the first column of summary row *!/ sumText: string /!** Custom summary method *!/ summaryMethod: (param: SummaryMethodParams) => any[] /!** Controls the behavior of master checkbox in multi-select tables when only some rows are selected *!/ selectOnIndeterminate: boolean /!** Clear selection. Might be useful when `reserve-selection` is on *!/ clearSelection (): void /!** * Toggle or set if a certain row is selected * * @param row The row that is going to set its selected state * @param selected Whether the row is selected. The selected state will be toggled if not set *!/ toggleRowSelection (row: object, selected?: boolean): void /!** * Toggle or set all rows *!/ toggleAllSelection (): void /!** * Set a certain row as selected * * @param row The row that is going to set as selected *!/ setCurrentRow (row?: object): void /!** * Toggle or set if a certain row is expanded * * @param row The row that is going to set its expanded state * @param expanded Whether the row is expanded. The expanded state will be toggled if not set *!/ toggleRowExpansion (row: object, expanded?: boolean): void /!** Clear sort status, reset the table to unsorted *!/ clearSort (): void /!** Clear filter, reset the table to unfiltered *!/ clearFilter (): void /!** Relayout the table, maybe needed when change the table or it's ancestors visibility *!/ doLayout (): void /!** Sort Table manually *!/ sort (prop: string, order: string): void /!** method for lazy load subtree data *!/ load (row: object, treeNode: treeNode, resolve: Function): void*/ }