iview/dist/types/table.d.ts

420 lines
10 KiB
TypeScript
Raw Normal View History

2018-08-31 18:04:17 +08:00
// Type definitions for iview 3.1.0
2018-08-30 18:11:37 +08:00
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
2018-09-03 13:28:21 +08:00
import Vue, { VNode } from 'vue';
2018-08-30 18:11:37 +08:00
2018-09-03 13:28:21 +08:00
export declare interface Table extends Vue {
2018-08-30 18:11:37 +08:00
/**
* 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;
/**
*
* @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;
/**
* 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;
/**
*
* 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;
/**
*
*/
exportCsv(params: TableExportCsvParams): void;
/**
* table
*/
handleResize(): void;
/**
* highlight-row
*/
clearCurrentRow(): void;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
header: VNode[];
/**
*
*/
footer: VNode[];
/**
*
*/
loading: VNode[];
};
}
2018-09-03 13:28:21 +08:00
export declare interface TableColumn {
2018-08-30 18:11:37 +08:00
/**
* 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
*/
render?: (h?:
(
el?: string | object | Function,
data?: string | TableRenderCreateElementData | TableRenderCreateElementResult | Array<TableRenderCreateElementResult>,
vnode?: string | TableRenderCreateElementResult[]
) => TableRenderCreateElementResult,
params?: TableColumnRenderParams
) => TableRenderCreateElementResult;
/**
* column index
*/
renderHeader?: (h?:
(
el?: string | object | Function,
data?: string | TableRenderCreateElementData | TableRenderCreateElementResult | Array<TableRenderCreateElementResult>,
vnode?: string | TableRenderCreateElementResult[]
) => TableRenderCreateElementResult,
params?: TableColumnRenderHeadParams
) => TableRenderCreateElementResult;
/**
* custom
* Table on- sort - change ,false
* @default false
*/
2018-09-18 10:41:48 +08:00
sortable?: boolean | 'custom';
2018-08-30 18:11:37 +08:00
/**
* 使 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[];
}
2018-09-03 13:28:21 +08:00
export declare interface TableRenderCreateElementData {
2018-08-30 18:11:37 +08:00
/**
* `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
}
2018-09-03 13:28:21 +08:00
export declare interface TableColumnRenderParams {
2018-08-30 18:11:37 +08:00
/**
*
*/
row?: object;
/**
*
*/
column?: object;
/**
*
*/
index?: number;
}
2018-09-03 13:28:21 +08:00
export declare interface TableRenderCreateElementResult {
2018-08-30 18:11:37 +08:00
child?: object;
children?: Array<any>;
componentInstance?: object;
componentOptions?: object;
context?: object;
data?: object;
elm?: object;
functionalContext?: object;
isCloned?: boolean;
isComment?: boolean;
isOnce?: boolean;
isRootInsert?: boolean;
isStatic?: boolean;
key?: object;
ns?: object;
parent?: object;
raw?: boolean;
tag?: string;
text?: object;
}
2018-09-03 13:28:21 +08:00
export declare interface TableColumnRenderHeadParams {
2018-08-30 18:11:37 +08:00
/**
*
*/
column?: object;
/**
*
*/
index?: number;
}
2018-09-03 13:28:21 +08:00
export declare interface TableExportCsvParams {
2018-08-30 18:11:37 +08:00
/**
* table.csv
*/
filename?: string;
/**
* true
*/
original?: boolean;
/**
* false
*/
noHeader?: boolean;
/**
*
*/
columns?: any[];
/**
*
*/
data?: any[];
/**
*
*/
callback?: () => void;
/**
* (,)
* @default ,
*/
separator?: string;
/**
*
* @default false
*/
quoted?: boolean;
}