iview/types/table.d.ts

447 lines
12 KiB
TypeScript
Raw Normal View History

// Type definitions for iview 3.3.1
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode, CreateElement } from "vue";
export declare interface Table extends Vue {
/**
* cellClassName
* 使
* @default []
*/
data?: object[];
/**
*
* @default []
*/
columns?: object[];
/**
*
* @default false
*/
stripe?: boolean;
/**
*
* @default false
*/
border?: boolean;
/**
*
* @default true
*/
"show-header"?: boolean;
/**
* px
* @default
*/
width?: number | string;
/**
* px
*/
height?: number | string;
/**
* px
*/
'max-height'?: number | string;
/**
*
* @default false
*/
loading?: boolean;
/**
*
* @default false
*/
"disabled-hover"?: boolean;
/**
*
* @default false
*/
"highlight-row"?: boolean;
/**
* className
* row
* index
*/
"row-class-name"?: (row?: object, index?: number) => void;
/**
* largesmalldefault
*/
size?: string;
/**
*
* @default
*/
"no-data-text"?: string;
/**
*
* @default
*/
"no-filtered-data-text"?: string;
2019-03-12 11:30:07 +08:00
/**
* @on-drag-drop 使
* @default false
*/
"draggable"?: boolean;
/**
* 使 tooltip dark light
* @default dark
*/
"tooltip-theme"?: string;
/**
* 使 row-key
* @default false
*/
"row-key"?: boolean;
/**
* highlight-row
* currentRow
* oldCurrentRow
*/
$emit(
eventName: "on-current-change",
currentRow: object,
oldCurrentRow: object
): this;
/**
*
* selection
* row
*/
$emit(eventName: "on-select", selection: object[], row: object): this;
/**
*
* selection
* row
*/
$emit(
eventName: "on-select-cancel",
selection: object[],
row: object
): this;
/**
*
* selection
*/
$emit(eventName: "on-select-all", selection: object[]): this;
2019-02-25 17:30:30 +08:00
/**
*
* selection
*/
$emit(eventName: "on-select-all-cancel", selection: object[]): this;
/**
*
* selection
*/
$emit(eventName: "on-selection-change", selection: object[]): this;
/**
*
* column
* key
* order asc desc
*/
$emit(
eventName: "on-sort-change",
column?: object,
key?: string,
order?: "asc" | "desc"
): this;
/**
*
*/
$emit(eventName: "on-filter-change", value: any): this;
/**
*
* currentRow
* index?: 当前行的索引
*/
$emit(eventName: "on-row-click", currentRow: object, index: number): this;
/**
*
* currentRow
* index?: 当前行的索引
*/
$emit(
eventName: "on-row-dblclick",
currentRow: object,
index: number
): this;
/**
*
* row
* status
*/
$emit(eventName: "on-expand", row: object, status: string): this;
2019-03-12 11:30:07 +08:00
/**
*
* index1
* index2
*/
$emit(eventName: "on-drag-drop", index1: number, index2: number): this;
/**
*
*/
exportCsv(params: TableExportCsvParams): void;
/**
* table
*/
handleResize(): void;
/**
* highlight-row
*/
clearCurrentRow(): void;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
header: VNode[];
/**
*
*/
footer: VNode[];
/**
*
*/
loading: VNode[];
};
}
export declare interface TableColumn {
/**
* indexselectionexpandhtml
*/
type?: "index" | "selection" | "expand" | "html";
/**
*
* @default #
*/
title?: string;
/**
*
*/
key?: string;
/**
*
*/
width?: number;
/**
*
*/
minWidth?: number;
/**
*
*/
maxWidth?: number;
/**
* left right center , left
* @default left
*/
align?: "left" | "right" | "center";
/**
*
*/
className?: string;
/**
* left right
*/
fixed?: "left" | "right";
/**
*
* @default false
*/
ellipsis?: boolean;
/**
* Tooltip
* @default false
*/
tooltip?: boolean;
/**
* 使 Vue Render
* h rowcolumn index
*
* Render rc.18 render
* @param h Render函数
* @param params rowcolumn index
*/
render?: (
h?: CreateElement,
params?: TableColumnRenderParams
2019-01-03 16:53:21 +08:00
) => VNode;
/**
* column index
* @param h Render函数
* @param params rowcolumn index
*/
renderHeader?: (
h?: CreateElement,
params?: TableColumnRenderHeadParams
2019-01-03 16:53:21 +08:00
) => VNode;
2019-02-25 17:30:30 +08:00
/**
* type index
* @param row
*/
indexMethod?: (row?: object) => string | number;
/**
* 使 slot-scope
* slot Table slot 使 slot-scope
*/
slot?: string;
/**
* custom
* Table on- sort - change ,false
* @default false
*/
sortable?: boolean | "custom";
/**
* 使 a b type
* sortable?: true type asc desc
*/
sortMethod?: (a: any, b: any, type: "asc" | "desc") => void;
/**
* asc desc
*/
sortType?: "asc" | "desc";
/**
* label value 使filterMethod
*/
filters?: { label: string; value: string | number | boolean }[];
/**
* 使 true
*/
filterMethod?: () => void;
/**
*
* @default true
*/
filterMultiple?: boolean;
/**
* 使 value
*/
filteredValue?: (string | number | boolean)[];
/**
* 使
*/
filterRemote?: () => void;
/**
*
*/
children?: object[];
}
export declare interface TableRenderCreateElementData {
/**
* `v-bind:class` API
*/
class?: object;
/**
* `v-bind:style` API
*/
style?: object;
/**
* HTML
*/
attrs?: object;
/**
* props
*/
props?: object;
/**
* DOM
*/
domProps?: object;
/**
* "on"
* v-on?:keyup.enter
* keyCode
*/
on?: object;
/**
* 使 vm.$emit
*/
nativeOn?: object;
/**
* .
* Vue
*/
directives?: object[];
/**
* slot
*/
slot?: string;
/**
* ,myKey
*/
key?: string;
/**
* myRef
*/
ref?: string;
}
export declare interface TableColumnRenderParams {
/**
*
*/
row?: object;
/**
*
*/
column?: object;
/**
*
*/
index?: number;
}
export declare interface TableColumnRenderHeadParams {
/**
*
*/
column?: object;
/**
*
*/
index?: number;
}
export declare interface TableExportCsvParams {
/**
* table.csv
*/
filename?: string;
/**
* true
*/
original?: boolean;
/**
* false
*/
noHeader?: boolean;
/**
*
*/
columns?: any[];
/**
*
*/
data?: any[];
/**
*
*/
callback?: (data?: any) => void;
/**
* (,)
* @default ,
*/
separator?: string;
/**
*
* @default false
*/
quoted?: boolean;
}