Merge pull request #21 from iview/2.0

更新
This commit is contained in:
yangdan8 2018-12-20 22:00:17 +08:00 committed by GitHub
commit ba307d7961
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 904 additions and 857 deletions

View file

@ -3,6 +3,7 @@
<head>
<meta charset="UTF-8">
<title>iView test page</title>
<meta name="viewport" content="user-scalable=no,width=device-width,initial-scale=1"/>
<!-- <link href="/test/dist/main.css" rel="stylesheet"> -->
</head>
<body>

View file

@ -62,6 +62,13 @@
<br><br>
<Tag v-for="item in count" :key="item" :name="item" closable @on-close="handleClose2">标签{{ item + 1 }}</Tag>
<Button icon="ios-plus-empty" type="dashed" size="small" @click="handleAdd">添加标签</Button>
<br><br><hr><br>
<Tag :checked="checked" checkable>test</Tag>
<Button @click="toggle">
Toggle
</Button>
<span>{{ checked }}</span>
</div>
</template>
<script>
@ -69,7 +76,8 @@
data () {
return {
show: true,
count: [0, 1, 2]
count: [0, 1, 2],
checked: true
};
},
methods: {
@ -86,6 +94,9 @@
handleClose2 (event, name) {
const index = this.count.indexOf(name);
this.count.splice(index, 1);
},
toggle() {
this.checked = !this.checked;
}
}
};

View file

@ -294,8 +294,11 @@
this.$refs.input.currentValue = '';
const oldVal = JSON.stringify(this.currentValue);
this.currentValue = item.value.split(',');
this.emitValue(this.currentValue, oldVal);
this.handleClose();
// use setTimeout for #4786, can not use nextTick, because @on-find-selected use nextTick
setTimeout(() => {
this.emitValue(this.currentValue, oldVal);
this.handleClose();
}, 0);
},
handleFocus () {
this.$refs.input.focus();

View file

@ -77,10 +77,16 @@
// return value back recursion //
const backItem = this.getBaseItem(item);
if (backItem.label !== this.tmpItem.label || backItem.value !== this.tmpItem.value) {
// #5021 for this.changeOnSelect if #4472
if (
this.changeOnSelect ||
(backItem.label !== this.tmpItem.label || backItem.value !== this.tmpItem.value) ||
(backItem.label === this.tmpItem.label && backItem.value === this.tmpItem.value)
) {
this.tmpItem = backItem;
this.emitUpdate([backItem]);
}
if (item.children && item.children.length){
this.sublist = item.children;
this.dispatch('Cascader', 'on-result-change', {

View file

@ -55,6 +55,7 @@
if (this.timeDisabled) return;
this.$emit('on-pick-toggle-time');
this.dispatch('CalendarPicker', 'focus-input');
this.dispatch('CalendarPicker', 'update-popper');
},
handleTab(e) {
const tabbables = [...this.$el.children];

View file

@ -679,6 +679,9 @@
},
focus() {
this.$refs.input && this.$refs.input.focus();
},
updatePopper () {
this.$refs.drop.update();
}
},
watch: {
@ -715,6 +718,7 @@
// to handle focus from confirm buttons
this.$on('focus-input', () => this.focus());
this.$on('update-popper', () => this.updatePopper());
}
};
</script>

View file

@ -11,28 +11,32 @@
</template>
<script>
const prefixCls = 'ivu-scroll';
import Spin from '../spin/spin.vue';
import Icon from '../icon/icon.vue';
export default {
props: ['text', 'active', 'spinnerHeight'],
computed: {
wrapperClasses() {
return [
`${prefixCls}-loader-wrapper`,
{
[`${prefixCls}-loader-wrapper-active`]: this.active
}
];
},
spinnerClasses() {
return `${prefixCls}-spinner`;
},
iconClasses() {
return `${prefixCls}-spinner-icon`;
},
textClasses() {
return `${prefixCls}-loader-text`;
const prefixCls = 'ivu-scroll';
export default {
props: ['text', 'active', 'spinnerHeight'],
components: { Spin, Icon },
computed: {
wrapperClasses() {
return [
`${prefixCls}-loader-wrapper`,
{
[`${prefixCls}-loader-wrapper-active`]: this.active
}
];
},
spinnerClasses() {
return `${prefixCls}-spinner`;
},
iconClasses() {
return `${prefixCls}-spinner-icon`;
},
textClasses() {
return `${prefixCls}-loader-text`;
}
}
}
};
};
</script>

View file

@ -2,9 +2,7 @@
<li
:class="classes"
@click.stop="select"
@touchend.stop="select"
@mousedown.prevent
@touchstart.prevent
><slot>{{ showLabel }}</slot></li>
</template>
<script>

View file

@ -137,6 +137,11 @@
this.$emit('on-change', checked, this.name);
}
}
},
watch: {
checked (val) {
this.isChecked = val;
}
}
};
</script>

View file

@ -128,6 +128,10 @@
width: auto !important;
margin: 10px;
}
.@{modal-prefix-cls}-fullscreen{
width: 100% !important;
margin: 0;
}
.vertical-center-modal {
.@{modal-prefix-cls} {
flex: 1;

138
types/message.d.ts vendored
View file

@ -5,80 +5,78 @@
import Vue, { VNode, CreateElement } from "vue";
export declare interface Message {
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
info(config?: MessageConfig | string): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
success(config?: MessageConfig | string): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
warning(config?: MessageConfig | string): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
error(config?: MessageConfig | string): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
loading(options?: MessageConfig | string): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
config(options?: MessageConfig): void;
/**
*
*/
destroy(): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
info(config?: MessageConfig | string): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
success(config?: MessageConfig | string): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
warning(config?: MessageConfig | string): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
error(config?: MessageConfig | string): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
loading(options?: MessageConfig | string): void;
/**
*
* @param config MessageConfig为相关配置,string为待显示的内容
*/
config(options?: MessageConfig): void;
/**
*
*/
destroy(): void;
}
export declare interface MessageConfig {
/**
*
*/
content?: string;
/**
* 使 Vue Render
*/
render?: (h: CreateElement) => VNode;
/**
*
*/
onClose?: () => void;
/**
*
* @default false
*/
closable?: boolean;
/**
*
* @default 24
*/
top?: number;
/**
*
* @default 1.5
*/
duration?: number;
}
declare module 'vue/types/vue' {
interface Vue {
/**
*
*
*/
$Message: Message;
}
content?: string;
/**
* 使 Vue Render
* @param h Render函数
*/
render?: (h?: CreateElement) => VNode;
/**
*
*/
onClose?: () => void;
/**
*
* @default false
*/
closable?: boolean;
/**
*
* @default 24
*/
top?: number;
/**
*
* @default 1.5
*/
duration?: number;
}
declare module "vue/types/vue" {
interface Vue {
/**
*
*/
$Message: Message;
}
}

401
types/modal.d.ts vendored
View file

@ -2,222 +2,223 @@
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
import Vue, { VNode, CreateElement } from "vue";
export declare interface Modal {
/**
* 使 v-model
* @default false
*/
value?: boolean;
/**
* 使 slot title
*/
title?: string;
/**
* Esc ,
* @default true
*/
closable?: boolean;
/**
*
* @default true
*/
'mask-closable'?: boolean;
/**
* loading visible来关闭对话框,
* @default false
*/
loading?: boolean;
/**
*
* @default false
*/
scrollable?: boolean;
/**
*
* @default false
*/
fullscreen?: boolean;
/**
*
* @default false
*/
draggable?: boolean;
/**
* draggable
* @default true
*/
mask?: boolean;
/**
*
* @default
*/
'ok-text'?: string;
/**
*
* @default
*/
'cancel-text'?: string;
/**
* px
* 768px auto,
* @default 520
*/
width?: number | string;
/**
*
* @default false
*/
'footer-hide'?: boolean;
/**
* .ivu-modal的样式
*/
style?: object;
/**
* .ivu-modal-wrap的类名
*/
'class-name'?: string;
/**
*
* @default 1000
*/
'z-index'?: number;
/**
* ,
* @default ['ease', 'fade']
*/
'transition-names'?: Array<string>;
/**
* body true
* @default true
*/
transfer?: boolean;
/**
*
*/
$emit(eventName: 'on-ok'): this;
/**
*
*/
$emit(eventName: 'on-cancel'): this;
/**
*
*/
$emit(eventName: 'on-visible-change', visible: boolean): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
* 使 v-model
* @default false
*/
'': VNode[];
value?: boolean;
/**
*
* 使 slot title
*/
header: VNode[];
title?: string;
/**
*
* Esc ,
* @default true
*/
footer: VNode[];
closable?: boolean;
/**
*
*
* @default true
*/
close: VNode[];
};
"mask-closable"?: boolean;
/**
* loading visible来关闭对话框,
* @default false
*/
loading?: boolean;
/**
*
* @default false
*/
scrollable?: boolean;
/**
*
* @default false
*/
fullscreen?: boolean;
/**
*
* @default false
*/
draggable?: boolean;
/**
* draggable
* @default true
*/
mask?: boolean;
/**
*
* @default
*/
"ok-text"?: string;
/**
*
* @default
*/
"cancel-text"?: string;
/**
* px
* 768px auto,
* @default 520
*/
width?: number | string;
/**
*
* @default false
*/
"footer-hide"?: boolean;
/**
* .ivu-modal的样式
*/
style?: object;
/**
* .ivu-modal-wrap的类名
*/
"class-name"?: string;
/**
*
* @default 1000
*/
"z-index"?: number;
/**
* ,
* @default ['ease', 'fade']
*/
"transition-names"?: Array<string>;
/**
* body true
* @default true
*/
transfer?: boolean;
/**
*
*/
$emit(eventName: "on-ok"): this;
/**
*
*/
$emit(eventName: "on-cancel"): this;
/**
*
*/
$emit(eventName: "on-visible-change", visible: boolean): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
"": VNode[];
/**
*
*/
header: VNode[];
/**
*
*/
footer: VNode[];
/**
*
*/
close: VNode[];
};
}
export declare interface ModalInstance {
/**
*
* @param config ModalConfig为相关配置,string为待显示的内容
*/
info(config?: ModalConfig | string): void;
/**
*
* @param config ModalConfig为相关配置,string为待显示的内容
*/
success(config?: ModalConfig | string): void;
/**
*
* @param config ModalConfig为相关配置,string为待显示的内容
*/
warning(config?: ModalConfig | string): void;
/**
*
* @param config ModalConfig为相关配置,string为待显示的内容
*/
error(config?: ModalConfig | string): void;
/**
*
* @param config ModalConfig为相关配置,string为待显示的内容
*/
confirm(config?: ModalConfig | string): void;
/**
*
*/
remove(): void;
/**
*
* @param config ModalConfig为相关配置,string为待显示的内容
*/
info(config?: ModalConfig | string): void;
/**
*
* @param config ModalConfig为相关配置,string为待显示的内容
*/
success(config?: ModalConfig | string): void;
/**
*
* @param config ModalConfig为相关配置,string为待显示的内容
*/
warning(config?: ModalConfig | string): void;
/**
*
* @param config ModalConfig为相关配置,string为待显示的内容
*/
error(config?: ModalConfig | string): void;
/**
*
* @param config ModalConfig为相关配置,string为待显示的内容
*/
confirm(config?: ModalConfig | string): void;
/**
*
*/
remove(): void;
}
export declare interface ModalConfig {
/**
* Element选择器字符串
*/
title?: string;
/**
* Element选择器字符串
*/
content?: string;
/**
* 使 content
*/
render?: (h?) => void;
/**
* px
* @default 416
*/
width?: number | string;
/**
*
* @default
*/
okText?: string;
/**
* Modal.confirm()
* @default
*/
cancelText?: string;
/**
* loading Modal.remove()
* @default false
*/
loading?: boolean;
/**
*
* @default false
*/
scrollable?: boolean;
/**
*
* @default false
*/
closable?: boolean;
/**
*
*/
onOk?: () => void;
/**
* Modal.confirm()
*/
onCancel?: () => void;
/**
* Element选择器字符串
*/
title?: string;
/**
* Element选择器字符串
*/
content?: string;
/**
* 使 content
* @param h Render函数
*/
render?: (h?: CreateElement) => void;
/**
* px
* @default 416
*/
width?: number | string;
/**
*
* @default
*/
okText?: string;
/**
* Modal.confirm()
* @default
*/
cancelText?: string;
/**
* loading Modal.remove()
* @default false
*/
loading?: boolean;
/**
*
* @default false
*/
scrollable?: boolean;
/**
*
* @default false
*/
closable?: boolean;
/**
*
*/
onOk?: () => void;
/**
* Modal.confirm()
*/
onCancel?: () => void;
}
declare module 'vue/types/vue' {
interface Vue {
/**
*
*/
$Modal: ModalInstance;
}
declare module "vue/types/vue" {
interface Vue {
/**
*
*/
$Modal: ModalInstance;
}
}

155
types/notice.d.ts vendored
View file

@ -5,88 +5,89 @@
import Vue, { VNode, CreateElement } from "vue";
export declare interface Notice {
/**
*
* @param config NoticeConfig为相关配置,string为待显示的内容
*/
open(config?: NoticeConfig | string): void;
/**
*
* @param config NoticeConfig为相关配置,string为待显示的内容
*/
info(config?: NoticeConfig | string): void;
/**
*
* @param config NoticeConfig为相关配置,string为待显示的内容
*/
success(config?: NoticeConfig | string): void;
/**
*
* @param config NoticeConfig为相关配置,string为待显示的内容
*/
warning(config?: NoticeConfig | string): void;
/**
*
* @param config NoticeConfig为相关配置,string为待显示的内容
*/
error(config?: NoticeConfig): void;
/**
*
*/
config(options?: NoticeGlobalConfig): void;
/**
*
*/
close(name?: string): void;
/**
*
*/
destroy(): void;
/**
*
* @param config NoticeConfig为相关配置,string为待显示的内容
*/
open(config?: NoticeConfig | string): void;
/**
*
* @param config NoticeConfig为相关配置,string为待显示的内容
*/
info(config?: NoticeConfig | string): void;
/**
*
* @param config NoticeConfig为相关配置,string为待显示的内容
*/
success(config?: NoticeConfig | string): void;
/**
*
* @param config NoticeConfig为相关配置,string为待显示的内容
*/
warning(config?: NoticeConfig | string): void;
/**
*
* @param config NoticeConfig为相关配置,string为待显示的内容
*/
error(config?: NoticeConfig): void;
/**
*
*/
config(options?: NoticeGlobalConfig): void;
/**
*
*/
close(name?: string): void;
/**
*
*/
destroy(): void;
}
export declare interface NoticeConfig {
/**
*
*/
title?: string;
/**
*
*/
desc?: string;
/**
* 使 Vue Render
*/
render?: (h: CreateElement) => VNode;
/**
* 0 4.5
*/
duration?: number;
/**
*
*/
name?: string;
/**
*
*/
onClose?: Function;
/**
*
*/
title?: string;
/**
*
*/
desc?: string;
/**
* 使 Vue Render
* @param h Render函数
*/
render?: (h?: CreateElement) => VNode;
/**
* 0 4.5
*/
duration?: number;
/**
*
*/
name?: string;
/**
*
*/
onClose?: Function;
}
export declare interface NoticeGlobalConfig {
/**
* 24
*/
top?: number;
/**
* 4.5
*/
duration?: number;
/**
* 24
*/
top?: number;
/**
* 4.5
*/
duration?: number;
}
declare module 'vue/types/vue' {
interface Vue {
/**
*
*/
$Notice: Notice;
}
}
declare module "vue/types/vue" {
interface Vue {
/**
*
*/
$Notice: Notice;
}
}

785
types/table.d.ts vendored
View file

@ -2,418 +2,427 @@
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
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;
/**
*
* @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: {
/**
*
* cellClassName
* 使
* @default []
*/
header: VNode[];
data?: object[];
/**
*
*
* @default []
*/
footer: VNode[];
columns?: object[];
/**
*
*
* @default false
*/
loading: VNode[];
};
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[];
};
}
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
*/
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
*/
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[];
/**
* 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
) => TableRenderCreateElementResult;
/**
* column index
* @param h Render函数
* @param params rowcolumn index
*/
renderHeader?: (
h?: CreateElement,
params?: TableColumnRenderHeadParams
) => TableRenderCreateElementResult;
/**
* 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
/**
* `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;
/**
*
*/
row?: object;
/**
*
*/
column?: object;
/**
*
*/
index?: number;
}
export declare interface TableRenderCreateElementResult {
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;
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;
}
export declare interface TableColumnRenderHeadParams {
/**
*
*/
column?: object;
/**
*
*/
index?: number;
/**
*
*/
column?: object;
/**
*
*/
index?: number;
}
export declare interface TableExportCsvParams {
/**
* table.csv
*/
filename?: string;
/**
* true
*/
original?: boolean;
/**
* false
*/
noHeader?: boolean;
/**
*
*/
columns?: any[];
/**
*
*/
data?: any[];
/**
*
*/
callback?: () => void;
/**
* (,)
* @default ,
*/
separator?: string;
/**
*
* @default false
*/
quoted?: boolean;
/**
* table.csv
*/
filename?: string;
/**
* true
*/
original?: boolean;
/**
* false
*/
noHeader?: boolean;
/**
*
*/
columns?: any[];
/**
*
*/
data?: any[];
/**
*
*/
callback?: () => void;
/**
* (,)
* @default ,
*/
separator?: string;
/**
*
* @default false
*/
quoted?: boolean;
}

189
types/tree.d.ts vendored
View file

@ -2,102 +2,103 @@
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
import Vue, { VNode, CreateElement } from "vue";
export declare interface Tree extends Vue {
/**
* tree
*/
data?: TreeChild[];
/**
*
* @default false
*/
multiple?: boolean;
/**
*
* @default false
*/
'show-checkbox'?: boolean;
/**
*
* @default
*/
'empty-text'?: string;
/**
*
*/
'load-data'?: () => void;
/**
*
*/
render?: () => void;
/**
*
* @default children
*/
'children-key'?:string;
/**
*
* @default
*/
$emit(eventName: 'on-select-change', value: TreeChild[]): this;
/**
*
* @default
*/
$emit(eventName: 'on-check-change', value: TreeChild[]): this;
/**
*
* @default
*/
$emit(eventName: 'on-toggle-expand', value: TreeChild): this;
/**
*
*/
getCheckedNodes(): void;
/**
*
*/
getSelectedNodes(): void;
/**
* tree
*/
data?: TreeChild[];
/**
*
* @default false
*/
multiple?: boolean;
/**
*
* @default false
*/
"show-checkbox"?: boolean;
/**
*
* @default
*/
"empty-text"?: string;
/**
*
*/
"load-data"?: () => void;
/**
*
* @param h Render函数
*/
render?: (h?: CreateElement) => void;
/**
*
* @default children
*/
"children-key"?: string;
/**
*
* @default
*/
$emit(eventName: "on-select-change", value: TreeChild[]): this;
/**
*
* @default
*/
$emit(eventName: "on-check-change", value: TreeChild[]): this;
/**
*
* @default
*/
$emit(eventName: "on-toggle-expand", value: TreeChild): this;
/**
*
*/
getCheckedNodes(): void;
/**
*
*/
getSelectedNodes(): void;
}
export declare interface TreeChild extends Vue {
/**
*
*/
title?: string;
/**
*
* @default false
*/
expand?: boolean;
/**
*
* @default false
*/
disabled?: boolean;
/**
* checkbox
* @default false
*/
disableCheckbox?: boolean;
/**
*
* @default false
*/
selected?: boolean;
/**
* ()
* @default false
*/
checked?: boolean;
/**
*
*/
children?: TreeChild[];
/**
*
*/
render(): void;
}
/**
*
*/
title?: string;
/**
*
* @default false
*/
expand?: boolean;
/**
*
* @default false
*/
disabled?: boolean;
/**
* checkbox
* @default false
*/
disableCheckbox?: boolean;
/**
*
* @default false
*/
selected?: boolean;
/**
* ()
* @default false
*/
checked?: boolean;
/**
*
*/
children?: TreeChild[];
/**
*
*/
render(): void;
}