Merge pull request #1 from iview/2.0

pr
This commit is contained in:
Eager Wei 2018-09-15 16:26:03 +08:00 committed by GitHub
commit 634c34e9a0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
192 changed files with 12435 additions and 2190 deletions

View file

@ -1,5 +1,9 @@
<!--
注意:请使用下面的链接来新建 issue
注意:关于用法、咨询等问题,请到 iView Developer 提问:
https://dev.iviewui.com
Bug 反馈、新功能请求,请到下面提交 issues
https://www.iviewui.com/new-issue

View file

@ -1,3 +1,3 @@
<!-- 目前仍然需要提交 PR 到 2.0 分支 | Please send PR to 2.0 branch -->
<!-- 请先运行 npm install 和 npm test通过测试后再提交您的 pr -->
<!-- Please run `npm install` and `npm test` to test your changes before submitting a pull request -->

View file

@ -19,11 +19,7 @@
## Docs
### [3.0](https://www.iviewui.com)
[2.0](http://v2.iviewui.com)
[1.0](http://v1.iviewui.com)
**[3.x](https://www.iviewui.com)** | [2.x](http://v2.iviewui.com) | [1.x](http://v1.iviewui.com)
## Features
@ -35,7 +31,7 @@
## Who's using iView
- [TalkingData](http://www.talkingdata.com/)
- [TalkingData 腾云天下](http://www.talkingdata.com/)
- [Alibaba 阿里巴巴](http://www.alibaba.com/)
- [Baidu 百度](https://www.baidu.com/)
- [Tencent 腾讯](https://www.tencent.com/)
@ -44,6 +40,8 @@
- [DiDi 滴滴](http://www.didichuxing.com/)
- [Meituan 美团](http://www.meituan.com/)
- [Sina 新浪](http://www.sina.com.cn/)
- [iFLYTEK 科大讯飞](http://www.iflytek.com/)
- [LY 同程艺龙](https://www.ly.com/)
> If your company or products use iView, welcome to click [here](https://github.com/iview/iview/issues/2143) to leave a message.
@ -98,8 +96,9 @@ import 'iview/dist/styles/iview.css';
- Supports Vue.js 1.x - [visit 1.0 docs](http://v1.iviewui.com/)
- Supports SSR
- Supports [Nuxt.js](https://nuxtjs.org/)
- Supports TypeScript
- Supports [Electron](http://electron.atom.io/)
- iView does not support IE8 or below since [Vue.js](https://vuejs.org/v2/guide/reactivity.html) uses `Object.defineProperty` to track changes which is not supported by these browsers.
- Most components and features support IE9 and above browsers, some components and features do not support IE
## Community
@ -115,7 +114,7 @@ If you want to contribute or have questions or bugs to report:
|[Aresn](https://github.com/icarusion) | ![](https://avatars3.githubusercontent.com/u/5370542?v=3&s=60) |[jingsam](https://github.com/jingsam) | ![](https://avatars3.githubusercontent.com/u/1522494?v=3&s=60) | [rijn](https://github.com/rijn) | ![](https://avatars2.githubusercontent.com/u/6976367?v=3&s=60) |
|[lcx960324](https://github.com/lcx960324) | ![](https://avatars3.githubusercontent.com/u/9768245?v=3&s=60) |[GITleonine1989](https://github.com/GITleonine1989) | ![](https://avatars1.githubusercontent.com/u/7582490?v=3&s=60) |[huixisheng](https://github.com/huixisheng) | ![](https://avatars1.githubusercontent.com/u/1518967?v=3&s=60) |
|[Sergio Crisostomo](https://github.com/SergioCrisostomo) | ![](https://avatars3.githubusercontent.com/u/5614559?v=3&s=60) | [lison16](https://github.com/lison16) | ![](https://avatars3.githubusercontent.com/u/20942571?v=3&s=60) | [Xotic750](https://github.com/Xotic750) | ![](https://avatars3.githubusercontent.com/u/216041?v=3&s=60) |
[huanghong1125](https://github.com/huanghong1125) | ![](https://avatars3.githubusercontent.com/u/12794817?v=3&s=60) |
[huanghong1125](https://github.com/huanghong1125) | ![](https://avatars3.githubusercontent.com/u/12794817?v=3&s=60) | [yangdan8](https://github.com/yangdan8) | ![](https://avatars2.githubusercontent.com/u/16515026?v=3&s=60) |
### All Contributors

View file

@ -4,6 +4,7 @@ const merge = require('webpack-merge');
const webpackBaseConfig = require('./webpack.base.config.js');
const CompressionPlugin = require('compression-webpack-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
process.env.NODE_ENV = 'production';
@ -35,7 +36,7 @@ module.exports = merge(webpackBaseConfig, {
}),
new UglifyJsPlugin({
parallel: true,
sourceMap: true,
sourceMap: true
}),
new CompressionPlugin({
asset: '[path].gz[query]',
@ -43,6 +44,12 @@ module.exports = merge(webpackBaseConfig, {
test: /\.(js|css)$/,
threshold: 10240,
minRatio: 0.8
})
}),
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, './../types'),
to: path.resolve(__dirname, './../dist/types')
}
])
]
});

3754
dist/iview.js vendored

File diff suppressed because it is too large Load diff

2
dist/iview.js.map vendored

File diff suppressed because one or more lines are too long

4
dist/iview.min.js vendored

File diff suppressed because one or more lines are too long

BIN
dist/iview.min.js.gz vendored

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

22
dist/types/affix.d.ts vendored Normal file
View file

@ -0,0 +1,22 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Affix extends Vue {
/**
*
* @default 0
*/
'offset-top'?: number;
/**
*
*/
'offset-bottom'?: number;
/**
*
* @param value true | false
*/
$emit(eventName: 'on-change', value: boolean): this;
}

48
dist/types/alert.d.ts vendored Normal file
View file

@ -0,0 +1,48 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Alert extends Vue {
/**
* infosuccesswarningerror
* @default info
*/
type?: 'info' | 'success' | 'warning' | 'error';
/**
*
* @default false
*/
closable?: boolean;
/**
*
* @default false
*/
'show-icon'?: boolean;
/**
*
*/
$emit(eventName: 'on-close', event: HTMLElement): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
/**
*
*/
desc: VNode[];
/**
*
*/
icon: VNode[];
/**
*
*/
close: VNode[];
};
}

67
dist/types/anchor.d.ts vendored Normal file
View file

@ -0,0 +1,67 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Anchor extends Vue {
/**
*
* @default true
*/
affix?: boolean;
/**
*
* @default 0
*/
'offset-top'?: number;
/**
*
*/
'offset-bottom'?: number;
/**
* px
* @default 5
*/
bounds?: number;
/**
*
* @default 0
*/
'scroll-offset'?: number;
/**
*
*/
container?: string | HTMLElement;
/**
*
* @default false
*/
'show-ink'?: boolean;
/**
*
*/
$emit(eventName: 'on-select', href: string): this;
/**
*
*/
$emit(eventName: 'on-change', []): this;
}
export declare interface AnchorLink extends Vue {
/**
*
* @default
*/
href?: string;
/**
*
* @default
*/
title?: string;
/**
*
* @default 0
*/
'scroll-offset'?: number;
}

75
dist/types/auto-complete.d.ts vendored Normal file
View file

@ -0,0 +1,75 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface AutoComplete extends Vue {
/**
* 使 v-model
*/
value?: string | number;
/**
*
* @default []
*/
data?: string[] | number[];
/**
*
* @default false
*/
clearable?: boolean;
/**
*
* @default false
*/
disabled?: boolean;
/**
*
*/
placeholder?: string;
/**
* largesmalldefault
*/
size?: '' | 'large' | 'small' | 'default';
/**
*
*/
icon?: string;
/**
* value option
* option true false,
* @default false
*/
'filter-method'?: boolean | (() => boolean);
/**
* body Tabs fixed Table 使
* ,
* @default false
*/
transfer?: boolean;
/**
* id Form
*/
'element-id'?: string;
/**
* option input value
*/
$emit(eventName: 'on-change', value: string | number): this;
/**
* value
*/
$emit(eventName: 'on-select', value: string | number): this;
/**
*
*/
$emit(eventName: 'on-search', query: string): this;
/**
*
*/
$emit(eventName: 'on-focus', event: KeyboardEvent): this;
/**
*
*/
$emit(eventName: 'on-blur', event: KeyboardEvent): this;
}

30
dist/types/avatar.d.ts vendored Normal file
View file

@ -0,0 +1,30 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Avatar extends Vue {
/**
* circlesquare
* @default circle
*/
shape?: 'circle' | 'square';
/**
* largesmalldefault
* @default default
*/
size?: 'large'|'small'|'default';
/**
*
*/
src?: string;
/**
* Icon
*/
icon?: string;
/**
*
*/
'custom-icon'?: string;
}

32
dist/types/back-top.d.ts vendored Normal file
View file

@ -0,0 +1,32 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface BackTop extends Vue {
/**
* BackTop组件
* @default 400
*/
height?: number;
/**
*
* @default 30
*/
bottom?: number;
/**
*
* @default 30
*/
right?: number;
/**
*
* @default 1000
*/
duration?: number;
/**
*
*/
$emit(eventName: 'on-click'): this;
}

47
dist/types/badge.d.ts vendored Normal file
View file

@ -0,0 +1,47 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Badge extends Vue {
/**
* overflowCount时${overflowCount}+ 0
*/
count?: number | string;
/**
*
* @default 99
*/
'overflow-count'?: number | string;
/**
* dot count为 0
* @default false
*/
dot?: boolean
/**
* class名称dot
*/
'class-name'?: string;
/**
* 使 successprimarynormalerrorwarninginfo
*/
type?: 'success' | 'primary' | 'normal' | 'error' | 'warning' | 'info';
/**
* 0 Badge
* @default false
*/
'show-zero'?: boolean;
/**
* Badge successprocessingdefaulterrorwarning
*/
status?: 'success' | 'processing' | 'default' | 'error' | 'warning';
/**
* status
*/
text?: string;
/**
* [x, y]
*/
offset?: number[];
}

30
dist/types/breadcrumb.d.ts vendored Normal file
View file

@ -0,0 +1,30 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Breadcrumb extends Vue {
/**
*
* @default /
*/
separator?: string;
}
export declare interface BreadcrumbItem extends Vue {
/**
*
*/
to?: string | object;
/**
* replace history
* @default false
*/
replace?: boolean;
/**
* a target
* @default _self
*/
target?: '_blank' | '_self' | '_parent' | '_top';
}

86
dist/types/button.d.ts vendored Normal file
View file

@ -0,0 +1,86 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Button extends Vue {
/**
* defaultprimarydashedtextinfosuccesswarningerror或者不设置
* @default default
*/
type?: '' | 'default' | 'primary' | 'dashed' | 'text' | 'info' | 'success' | 'warning' | 'error';
/**
* 使
* @default false
*/
ghost?: boolean;
/**
* largesmalldefault或者不设置
* @default default
*/
size?: '' | 'large' | 'small' | 'default';
/**
* circle或者不设置
*/
shape?: '' | 'circle';
/**
* 100%
* @default false
*/
long?: boolean;
/**
* button原生的typebuttonsubmitreset
* @default button
*/
'html-type'?: 'button' | 'submit' | 'reset';
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default false
*/
loading?: boolean;
/**
*
*/
icon?: string;
/**
*
*/
'custom-icon'?: string;
/**
* vue-router
*/
to?: string | object;
/**
* replace history
* @default false
*/
replace?: boolean;
/**
* a target
* @default _self
*/
target?: '_blank' | '_self' | '_parent' | '_top';
}
export declare interface ButtonGroup extends Vue {
/**
* largesmalldefault或者不设置
* @default default
*/
size?: 'large' | 'small' | 'default';
/**
* circle或者不设置
*/
shape?: '' | 'circle';
/**
*
* @default false
*/
vertical?: boolean;
}

53
dist/types/card.d.ts vendored Normal file
View file

@ -0,0 +1,53 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Card extends Vue {
/**
* 使
* @default true
*/
'bordered'?: boolean;
/**
*
* @default false
*/
'dis-hover'?: boolean;
/**
* 使
* @default false
*/
'shadow'?: boolean;
/**
* px
* @default 16
*/
'padding'?: number;
/**
* 2.12.0
*/
title?: string;
/**
* 2.12.0
*/
icon?: string;
/**
* slot插槽对象
*/
$slots: {
/**
* 使<p>
*/
title: VNode[];
/**
*
*/
extra: VNode[];
/**
*
*/
'': VNode[];
};
}

65
dist/types/carousel.d.ts vendored Normal file
View file

@ -0,0 +1,65 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Carousel extends Vue {
/**
* 0 使 v-model
* @default 0
*/
value?: number;
/**
* auto px
* @default auto
*/
height?: string | number;
/**
*
* @default false
*/
loop?: boolean;
/**
*
*/
autoplay?: boolean;
/**
*
* @default 2000
*/
'autoplay-speed'?: number;
/**
* inside outsidenone
* @default inside
*/
dots?: 'inside' | 'outside' | 'none';
/**
*
* @default false
*/
'radius-dot'?: boolean;
/**
* clickhover
* @default click
*/
trigger?: 'click' | 'hover';
/**
* hoveralwaysnever
* @default hover
*/
arrow?: 'hover' | 'always' | 'never';
/**
*
* @default ease
*/
easing?: string;
/**
*
*/
$emit(eventName: 'on-change', oldValue: number, value: number): this;
}
export declare interface CarouselItem extends Vue {
}

84
dist/types/cascader.d.ts vendored Normal file
View file

@ -0,0 +1,84 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Cascader extends Vue {
/**
*
* @default []
*/
data?: object[];
/**
*
* @default []
*/
value?: object[];
/**
*
* @default label => label.join(' / ')
*/
'render-format'?: (label?: string[]) => string
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default true
*/
clearable?: boolean;
/**
*
* @default
*/
placeholder?: string;
/**
* click hover
* @default click
*/
trigger?: 'click' | 'hover';
/**
* true
* @default false
*/
'change-on-select'?: boolean;
/**
* large和small或者不填
*/
size?: '' | 'large' | 'small';
/**
* loading
*/
'load-data'?: () => void;
/**
*
* @default false
*/
filterable?: boolean;
/**
*
* @default
*/
'not-found-text'?: string;
/**
* body Tabs fixed Table 使
*
* @default false
*/
transfer?: boolean;
/**
* id Form
*/
'element-id'?: string;
/**
* value valueselectedData
*/
$emit(eventName: 'on-change', value: object, selectedData: object[]): this;
/**
*
*/
$emit(eventName: 'on-visible-change', status: boolean): this;
}

81
dist/types/cell.d.ts vendored Normal file
View file

@ -0,0 +1,81 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Cell extends Vue {
/**
*
*/
name?: string | number;
/**
*
*/
title?: string;
/**
*
*/
label?: string;
/**
*
*/
extra?: string;
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default false
*/
selected?: boolean;
/**
* vue-router
*/
to?: string | object;
/**
* replace history
* @default false
*/
replace?: boolean;
/**
* a target
* @default _self
*/
target?: '_blank' | '_self' | '_parent' | '_top';
/**
* slot插槽对象
*/
$slots: {
/**
* title
*/
'': VNode[];
/**
* Icon
*/
icon: VNode[];
/**
* label
*/
label: VNode[];
/**
* extra
*/
extra: VNode[];
/**
*
*/
arrow: VNode[];
}
}
export declare interface CellGroup extends Vue {
/**
*
*
*/
$emit(eventName: 'on-click', name: string): this;
}

61
dist/types/checkbox.d.ts vendored Normal file
View file

@ -0,0 +1,61 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Checkbox extends Vue {
/**
* 使使 v-model
* @default false
*/
value?: boolean;
/**
* 使 value
*/
label?: string | number | boolean;
/**
*
* @default false
*/
disabled?: boolean;
/**
* indeterminate
* @default false
*/
indeterminate?: boolean;
/**
* largesmalldefault
*/
size?: '' | 'large' | 'small' | 'default';
/**
* 使 1 0
* @default true
*/
'true-value'?: string | number | boolean;
/**
* 使 1 0
* @default false
*/
'false-value'?: string | number | boolean;
/**
* 使
*/
$emit(eventName: 'on-change', value: boolean): this;
}
export declare interface CheckboxGroup extends Vue {
/**
* 使 v-model
* @default []
*/
value?: string[] | number[] | boolean[];
/**
* largesmalldefault
*/
size?: '' | 'large' | 'small' | 'default';
/**
*
*/
$emit(eventName: 'on-change', values: Array<string | number | boolean>): this;
}

57
dist/types/circle.d.ts vendored Normal file
View file

@ -0,0 +1,57 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Circle extends Vue {
/**
*
* @default 0
*/
percent?: number;
/**
* px
* @default 120
*/
size?: number;
/**
* squareround
* @default round
*/
'stroke-linecap'?: 'square' | 'round';
/**
* 线 px
* @default 6
*/
'stroke-width'?: number;
/**
*
* @default #2db7f5
*/
'stroke-color'?: string
/**
* 线 px
* @default 5
*/
'trail-width'?: number;
/**
*
* @default #eaeef2
*/
'trail-color'?: string;
/**
*
* @default false
*/
dashboard?: boolean;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
};
}

53
dist/types/collapse.d.ts vendored Normal file
View file

@ -0,0 +1,53 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Collapse extends Vue {
/**
* name使 v-model
*/
value?: string[] | string;
/**
*
* @default false
*/
accordion?: boolean;
/**
*
* @default false
*/
simple?: boolean;
/**
* key
* @default []
*/
$emit(eventName: 'on-change', []): this;
}
export declare interface CollapsePanel extends Vue {
/**
* name Collapse的value对应
* @default index的值
*/
name?: string;
/**
*
* @default false
*/
'hide-arrow'?: boolean;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
/**
*
*/
content: VNode[];
};
}

64
dist/types/color-picker.d.ts vendored Normal file
View file

@ -0,0 +1,64 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface ColorPicker extends Vue {
/**
* 使 v-model
*/
value?: string;
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default false
*/
editable?: boolean;
/**
*
* @default false
*/
alpha?: boolean;
/**
*
* @default true
*/
hue?: boolean;
/**
*
* @default false
*/
recommend?: boolean;
/**
*
*/
colors?: string[];
/**
* hslhsvhexrgb
* @default alpha rgb hex
*/
format?: 'hsl' | 'hsv' | 'hex' | 'rgb';
/**
* largesmalldefault或者不设置
*/
size?: '' | 'large' | 'small' | 'default';
/**
*
* @default
*/
$emit(eventName: 'on-change', value: string): this;
/**
*
* @default
*/
$emit(eventName: 'on-active-change', value: string): this;
/**
*
*/
$emit(eventName: 'on-open-change', value: boolean): this;
}

8
dist/types/content.d.ts vendored Normal file
View file

@ -0,0 +1,8 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Content extends Vue {
}

153
dist/types/date-picker.d.ts vendored Normal file
View file

@ -0,0 +1,153 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface DatePicker extends Vue {
/**
* datedaterangedatetimedatetimerangeyearmonth'|'date
*/
type?: 'date' | 'daterange' | 'datetime' | 'datetimerange' | 'year' | 'month';
/**
* JavaScript Date new Date()
* value 使 v-model Date @on-change 使
*/
value?: Date;
/**
*
* date | daterange?: yyyy-MM-dd
* datetime | datetimerangeyyyy-MM-dd HH:mm:ss
* yearyyyy
* monthyyyy-MM
*/
format?: string;
/**
*
* top,top-start,top-end,
* bottom,bottom-start,bottom-end,
* left,left-start,left-end,
* right,right-start,right-end
* 2.12.0
* @default bottom-start
*/
placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'
/**
*
* @default
*/
placeholder?: string;
/**
*
*/
options?: DatePickerOptions;
/**
* daterange datetimerange
* @default false
*/
'split-panels'?: boolean;
/**
* date
* @default false
*/
multiple?: boolean;
/**
*
* @default false
*/
'show-week-numbers': boolean;
/**
*
*/
'start-date'?: Date;
/**
* ,
* @default false
*/
confirm?: boolean;
/**
* true false 使
* slot confirm 使
* @default null
*/
open?: boolean;
/**
* largesmalldefault或者不设置
*/
size?: '' | 'large' | 'small' | 'default';
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default true
*/
clearable?: boolean;
/**
* open
* @default false
*/
readonly?: boolean;
/**
* 使 slot
* @default true
*/
editable?: boolean;
/**
* body Tabs fixed Table 使
* ,
* @default false
*/
transfer?: boolean;
/**
* id Form
*/
'element-id'?: string;
/**
* type datetime datetimerange TimePicker
* steps:time-picker-options="{steps: [1, 10, 10]}"
* @default {}
*/
'time-picker-options'?: object;
/**
* 2016-01-01
*/
$emit(eventName: 'on-change', value: string): this;
/**
*
*/
$emit(eventName: 'on-open-change', value: boolean): this;
/**
* confirm
*/
$emit(eventName: 'on-ok'): this;
/**
* confirm clearable = true
*/
$emit(eventName: 'on-clear'): this;
/**
* slot插槽对象
*/
$slots: {
/**
* open 使
*/
'': VNode[];
};
}
export declare interface DatePickerOptions {
/**
*
* text
* value?: 返回指定的日期使 onClick
* onClick?: 点击时的回调 Vue 使
*/
shortcuts?: { text?: string, value?: () => void, onClick?: () => void }[];
/**
* Boolean
*/
disabledDate(): boolean;
}

23
dist/types/divider.d.ts vendored Normal file
View file

@ -0,0 +1,23 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Divider extends Vue {
/**
* horizontal vertical
* @default horizontal
*/
type?: 'horizontal' | 'vertical';
/**
* 线 leftright center
* @default center
*/
orientation?: 'left' | 'right' | 'center';
/**
* 线
* @default false
*/
dashed?: boolean;
}

95
dist/types/drawer.d.ts vendored Normal file
View file

@ -0,0 +1,95 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Drawer extends Vue {
/**
* 使 v-model
* @default false
*/
value?: boolean;
/**
* 使 slot title
* @default center
*/
title?: string;
/**
* 100 100
* @default 256
*/
width?: number | string;
/**
*
* @default true
*/
closable?: boolean;
/**
*
* @default true
*/
'mask-closable'?: boolean;
/**
*
* @default true
*/
mask?: boolean;
/**
*
*/
'mask-style'?: object;
/**
*
*/
styles?: object;
/**
*
* @default false
*/
scrollable?: boolean;
/**
* left right
* @default right
*/
placement?: 'left' | 'right';
/**
*
* @default true
*/
transfer?: boolean;
/**
*
*/
'class-name'?: string;
/**
* transfer
* @default false
*/
'inner'?: boolean;
/**
*
*/
$emit(eventName: 'on-close'): this;
/**
*
*/
$emit(eventName: 'on-visible-change', value: boolean): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
/**
*
*/
header: VNode[];
/**
*
*/
close: VNode[];
};
}

82
dist/types/dropdown.d.ts vendored Normal file
View file

@ -0,0 +1,82 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Dropdown extends Vue {
/**
* hoverclickcontextMenucustom使 custom visible 使
* @default hover
*/
trigger?: 'hover'|'click'|'custom'|'contextMenu';
/**
* trigger = 'custom' 使
* @default false
*/
visible?: boolean;
/**
*
* toptop-starttop-endbottombottom-startbottom-end
* leftleft-startleft-endrightright-startright-end
* 2.12.0
* @default bottom
*/
placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
/**
* body Tabs fixed Table 使
* @default false
*/
transfer?: boolean;
/**
*
*
*/
$emit(eventName: 'on-click', value: string): this;
/**
*
*/
$emit(eventName: 'on-visible-change', value: boolean): this;
/**
*
*/
$emit(eventName: 'on-clickoutside', event: object): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
/**
* DropdownMenu
*/
list: VNode[];
};
}
export declare interface DropdownMenu extends Vue {
}
export declare interface DropdownItem extends Vue {
/**
*
*/
name?: string;
/**
*
* @default false
*/
disabled?: boolean;
/**
* 线
* @default false
*/
divided?: boolean;
/**
*
* @default false
*/
selected?: boolean;
}

8
dist/types/footer.d.ts vendored Normal file
View file

@ -0,0 +1,8 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Footer extends Vue {
}

100
dist/types/form.d.ts vendored Normal file
View file

@ -0,0 +1,100 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Form extends Vue {
/**
*
*/
model?: object;
/**
* async-validator
*/
rules?: object;
/**
*
* @default false
*/
inline?: boolean;
/**
* leftrighttop
* @default right
*/
'label-position'?: 'left'|'right'|'top';
/**
* FormItem Form label-width
*/
'label-width'?: number;
/**
*
* @default true
*/
'show-message'?: boolean;
/**
* Boolean
*/
validate(callback?: (valid?: boolean) => void): void;
/**
* 1 prop2
*/
validateField(prop?: string, callback?: (valid?: boolean) => void): void;
/**
*
*/
resetFields(): void;
}
export declare interface FormItem extends Vue {
/**
* model
*/
prop?: string;
/**
*
*/
label?: string;
/**
*
*/
'label-width'?: number;
/**
* label for element-id label
*/
'label-for'?: string;
/**
*
*/
required?: boolean;
/**
*
*/
rules?: object | Array<any>;
/**
* , 使error
*/
error?: string;
/**
*
* @default true
*/
'show-message'?: boolean;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
/**
* label
*/
label: VNode[];
};
}

72
dist/types/grid.d.ts vendored Normal file
View file

@ -0,0 +1,72 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Row extends Vue {
/**
* px
* @default 0
*/
gutter?: number;
/**
* flex或不选
*/
type?: string;
/**
* lex topmiddlebottom
*/
align?: 'top'|'middle'|'bottom';
/**
* flex startendcenterspace-aroundspace-between
*/
justify?: 'start'|'end'|'center'|'space-around'|'space-between';
/**
* class名称
*/
'class-name'?: string;
}
export declare interface Col extends Vue {
/**
* 0~24 0 相当于display:none
*/
span?: number | string;
/**
* flex布局模式下有效
*/
order?: number | string;
/**
*
*/
offset?: number | string;
/**
*
*/
push?: number | string;
/**
*
*/
pull?: number | string;
/**
* class名称
*/
'class-name'?: string;
/**
* <768px 响应式栅格可为栅格数或一个包含其他属性的对象
*/
xs?: number | object;
/**
* 768px
*/
sm?: number | object;
/**
* 992px
*/
md?: number | object;
/**
* 1200px
*/
lg?: number | object;
}

8
dist/types/header.d.ts vendored Normal file
View file

@ -0,0 +1,8 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Header extends Vue {
}

20
dist/types/icon.d.ts vendored Normal file
View file

@ -0,0 +1,20 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Icon extends Vue {
/**
*
*/
type?: string;
/**
* px
*/
size?: number | string;
/**
*
*/
color?: string;
}

10
dist/types/index.d.ts vendored Normal file
View file

@ -0,0 +1,10 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import iView from './iview';
export default iView;
export as namespace iView;
export * from './iview.components';

80
dist/types/input-number.d.ts vendored Normal file
View file

@ -0,0 +1,80 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface InputNumber extends Vue {
/**
* Infinity
*/
max?: number;
/**
* -Infinity
*/
min?: number;
/**
* 使 v-model 1
*/
value?: number;
/**
* 1
*/
step?: number;
/**
* largesmalldefault或者不填
*/
size?: '' | 'large' | 'small' | 'default';
/**
* false
*/
disabled?: boolean;
/**
*
* @default
*/
placeholder?: string;
/**
*
*/
formatter?: () => void;
/**
* formatter formatter 使
*/
parser?: () => void;
/**
*
* @default false
*/
readonly?: boolean;
/**
*
* @default true
*/
editable?: boolean;
/**
*
*/
precision?: number;
/**
* id Form
*/
'element-id'?: string;
/**
* false
* @default true
*/
'active-change'?: boolean;
/**
*
*/
$emit(eventName: 'on-change', value: number): this;
/**
*
*/
$emit(eventName: 'on-focus', event: KeyboardEvent): this;
/**
*
*/
$emit(eventName: 'on-blur', event: KeyboardEvent): this;
}

168
dist/types/input.d.ts vendored Normal file
View file

@ -0,0 +1,168 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Input extends Vue {
/**
* textpasswordtextareaurlemaildate
* @default text
*/
type?: 'text' | 'password' | 'textarea' | 'url' | 'email' | 'date';
/**
* 使 v-model
* @default
*/
value?: string | number;
/**
* largesmalldefault或者不设置
*/
size?: '' | 'large' | 'small' | 'default';
/**
*
*/
placeholder?: string;
/**
*
* @default false
*/
clearable?: boolean;
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default false
*/
readonly?: boolean;
/**
*
*/
maxlength?: number;
/**
* text
*/
icon?: string;
/**
*
* @default false
*/
prefix?: string;
/**
*
* @default false
*/
suffix?: String;
/**
*
* @default false
*/
search?: boolean;
/**
* search
* @default false
*/
'enter-button'?: boolean | string;
/**
* textarea
* @default 2
*/
rows?: number;
/**
* textarea { minRows: 2, maxRows: 6 }
* @default false
*/
autosize?: boolean | { minRows?: number, maxRows?: number };
/**
* number
* @default false
*/
number?: boolean;
/**
*
* @default false
*/
autofocus?: boolean;
/**
* off on,off
*/
autocomplete?: string;
/**
* id Form
*/
'element-id'?: string;
/**
* spellcheck
* @default false
*/
spellcheck?: boolean;
/**
* wrap hard soft textarea
* @default soft
*/
wrap?: 'hard' | 'soft';
/**
*
*/
$emit(eventName: 'on-enter'): this;
/**
* icon
*/
$emit(eventName: 'on-click'): this;
/**
*
*/
$emit(eventName: 'on-change', event: string): this;
/**
*
*/
$emit(eventName: 'on-focus'): this;
/**
*
*/
$emit(eventName: 'on-blur'): this;
/**
* keyup
*/
$emit(eventName: 'on-keyup', event: KeyboardEvent): this;
/**
* keydown
*/
$emit(eventName: 'on-keydown', event: KeyboardEvent): this;
/**
* keypress
*/
$emit(eventName: 'on-keypress', event: KeyboardEvent): this;
/**
* search
*/
$emit(eventName: 'on-search', value: string): this;
/**
*
*/
focus(): void;
/**
* slot插槽对象
*/
$slots: {
/**
* text
*/
prepend: VNode[];
/**
* text
*/
append: VNode[];
/**
*
*/
prefix: VNode[];
/**
*
*/
suffix: VNode[];
};
}

91
dist/types/iview.components.d.ts vendored Normal file
View file

@ -0,0 +1,91 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export { Affix } from './affix';
export { Alert } from './alert';
export { Anchor, AnchorLink } from './anchor';
export { AutoComplete } from './auto-complete';
export { Avatar } from './avatar';
export { BackTop } from './back-top';
export { Badge } from './badge';
export { Breadcrumb, BreadcrumbItem } from './breadcrumb';
export { Button, ButtonGroup } from './button';
export { Card } from './card';
export { Carousel, CarouselItem } from './carousel';
export { Cascader } from './cascader';
export { Cell, CellGroup } from './cell';
export { Checkbox, CheckboxGroup } from './checkbox';
export { Circle, Circle as ICircle } from './circle';
export { Collapse, CollapsePanel } from './collapse';
export { ColorPicker } from './color-picker';
export { Content } from './content';
export { DatePicker, DatePickerOptions } from './date-picker';
export { Divider } from './divider';
export { Drawer } from './drawer';
export { Dropdown, DropdownMenu, DropdownItem } from './dropdown';
export { Footer } from './footer';
export { Form, FormItem } from './form';
export { Row, Col } from './grid';
export { Header } from './header';
export { Icon } from './icon';
export { Input } from './input';
export { InputNumber } from './input-number';
export { Scroll } from './scroll';
export { Split } from './split';
export { Layout } from './layout';
export { LoadingBar, LoadingBarConfig } from './loading-bar';
export { Menu, MenuGroup, MenuItem, MenuSub } from './menu';
export { Message, MessageConfig } from './message';
export { Modal, ModalInstance, ModalConfig } from './modal';
export { Notice, NoticeConfig, NoticeGlobalConfig } from './notice';
export { Page } from './page';
export { Poptip } from './poptip';
export { Progress } from './progress';
export { Radio, RadioGroup } from './radio';
export { Rate } from './rate';
export { Select, Option, OptionGroup } from './select';
export { Sider } from './sider';
export { Slider } from './slider';
export { Spin } from './spin';
export { Steps, StepsStep } from './steps';
export { Switch, Switch as ISwitch } from './switch';
export { Table, TableColumn, TableRenderCreateElementData, TableColumnRenderParams, TableRenderCreateElementResult, TableColumnRenderHeadParams, TableExportCsvParams } from './table';
export { Tabs, TabsPane } from './tabs';
export { Tag } from './tag';
export { Time } from './time';
export { Timeline, TimelineItem } from './timeline';
export { TimePicker } from './time-picker';
export { Tooltip } from './tooltip';
export { Transfer } from './transfer';
export { Tree, TreeChild } from './tree';
export { Upload } from './upload';
declare const API: {
version: string;
locale: (l) => void;
i18n: (fn) => void;
install: (
Vue: Vue,
opts: {
locale?: any;
i18n?: any;
size?: any;
transfer?: any;
}
) => void;
lang: (code: string) => void;
};
export default API;
declare module 'vue/types/vue' {
interface Vue {
$IVIEW: {
size?: string;
transfer?: string;
};
}
}

6
dist/types/iview.d.ts vendored Normal file
View file

@ -0,0 +1,6 @@
import { PluginFunction } from 'vue';
interface IView extends PluginFunction<any> {}
declare const iView: IView;
export default iView;

72
dist/types/layout.d.ts vendored Normal file
View file

@ -0,0 +1,72 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Layout extends Vue {
/**
* xs,sm,md,lg,xl或xxl
* {
* xs?: '480px',
* sm?: '768px',
* md?: '992px',
* lg?: '1200px',
* xl?: '1600px'
* }
*/
breakpoint?: string;
/**
* 使 v-model
* @default false
*/
value?: boolean;
/**
*
* @default 200
*/
width?: number;
/**
* false后
* @default false
*/
collapsible?: boolean;
/**
* 0 trigger
* @default 64
*/
'collapsed-width'?: number;
/**
*
* @default false
*/
'hide-trigger'?: boolean;
/**
* collapsible后设置此属性侧边栏仍会收起
* @default false
*/
'default-collapsed'?: boolean;
/**
* Sider在右边时可以使用
* @default false
*/
'reverse-arrow'?: boolean;
/**
* -true/false
*/
$emit(eventName: 'on-collapse', []): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
* @default
*/
trigger: VNode[];
};
/**
* methods, Sider展开-
*/
toggleCollapse(): void;
}

61
dist/types/loading-bar.d.ts vendored Normal file
View file

@ -0,0 +1,61 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface LoadingBar {
/**
* 0
*/
start(): void;
/**
*
*/
finish(): void;
/**
*
*/
error(): void;
/**
*
* @param percent
*/
update(percent?: number): void;
/**
*
* @param options
*/
config(options?: LoadingBarConfig): void;
/**
*
*/
destroy(): void;
}
export declare interface LoadingBarConfig {
/**
* iView
* @default primary
*/
color?: string;
/**
* iView
* @default error
*/
failedColor?: string;
/**
* px
* @default 2
*/
height?: number;
}
declare module 'vue/types/vue' {
interface Vue {
/**
*
*/
$Loading: LoadingBar;
}
}

102
dist/types/menu.d.ts vendored Normal file
View file

@ -0,0 +1,102 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Menu extends Vue {
/**
* horizontal vertical
* @default vertical
*/
mode?: 'horizontal' | 'vertical';
/**
* lightdarkprimary primary mode="horizontal"
* @default light
*/
theme?: 'light' | 'dark' | 'primary';
/**
* name
*/
'active-name'?: string | number;
/**
* Submenu name
*/
'open-names'?: string[] | number[];
/**
*
* @default false
*/
accordion?: boolean;
/**
* mode="vertical" 使 Col auto
* @default 240px
*/
width?: string;
/**
* MenuItem
*/
$emit(eventName: 'on-select', name?: string | number): this;
/**
* /
* @default Submenu name
*/
$emit(eventName: 'on-open-change', names: string[] | number[]): this;
/**
* $nextTick
*/
updateOpened(): void;
/**
* $nextTick
*/
updateActiveName(): void;
}
export declare interface MenuItem extends Vue {
/**
*
*/
name?: string | number;
/**
* vue-router
*/
to?: string | object;
/**
* replace history
* @default false
*/
replace?: boolean;
/**
* a target
* @default _self
*/
target?: '_blank' | '_self' | '_parent' | '_top';
}
export declare interface MenuSub extends Vue {
/**
*
*/
name?: string | number;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
/**
*
*/
title: VNode[];
};
}
export declare interface MenuGroup extends Vue {
/**
*
* @default
*/
title?: string;
}

84
dist/types/message.d.ts vendored Normal file
View file

@ -0,0 +1,84 @@
// Type definitions for iview 3.1.0
// 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 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;
}
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;
}
}

223
dist/types/modal.d.ts vendored Normal file
View file

@ -0,0 +1,223 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } 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: {
/**
*
*/
'': 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;
}
export declare interface ModalConfig {
/**
* Element选择器字符串
*/
title?: string;
/**
* Element选择器字符串
*/
content?: string;
/**
* 使 content
*/
render?: () => 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;
}
}

92
dist/types/notice.d.ts vendored Normal file
View file

@ -0,0 +1,92 @@
// Type definitions for iview 3.1.0
// 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 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;
}
export declare interface NoticeConfig {
/**
*
*/
title?: string;
/**
*
*/
desc?: string;
/**
* 使 Vue 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;
}
declare module 'vue/types/vue' {
interface Vue {
/**
*
*/
$Notice: Notice;
}
}

99
dist/types/page.d.ts vendored Normal file
View file

@ -0,0 +1,99 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Page extends Vue {
/**
* .sync
* @default 1
*/
current?: number;
/**
*
* @default 0
*/
total?: number;
/**
*
* @default 10
*/
'page-size'?: number;
/**
*
* @default [10, 20, 30, 40]
*/
'page-size-opts'?: number[];
/**
* bottom top
* @default bottom
*/
placement?: string;
/**
* small
*/
size?: string;
/**
*
* @default false
*/
simple?: boolean;
/**
*
* @default false
*/
'show-total'?: boolean;
/**
*
* @default false
*/
'show-elevator'?: boolean;
/**
* page-size
* @default false
*/
'show-sizer'?: boolean;
/**
* class
*/
'class-name'?: string;
/**
* style
*/
styles?: object;
/**
* body
* Tabs fixed Table 使
*
* @default false
*/
transfer?: boolean;
/**
*
*/
'prev-text'?: string;
/**
*
*/
'next-text'?: string;
/**
*
* @param pageNum
*/
$emit(eventName: 'on-change', pageNum: number): this;
/**
*
* @param pageSize
*/
$emit(eventName: 'on-page-size-change', pageSize: number): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
};
}

123
dist/types/poptip.d.ts vendored Normal file
View file

@ -0,0 +1,123 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Poptip extends Vue {
/**
* hoverclickfocus,
* confirm click
* @default click
*/
trigger?: string;
/**
*
*/
title?: string | number;
/**
* confirm \
* @default
*/
content?: string | number;
/**
*
* toptop-starttop-endbottombottom-startbottom-end
* leftleft-startleft-endrightright-startright-end
* 2.12.0
* @default top
*/
placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
/**
* 150px confirm 300px
*/
width?: string | number;
/**
*
* @default false
*/
confirm?: boolean;
/**
* confirm
* @default
*/
'ok-text'?: string;
/**
* confirm
* @default
*/
'cancel-text'?: string;
/**
* body Tabs fixed Table 使
*
* @default false
*/
transfer?: boolean;
/**
* Poptip class-name使 transfer
* @default false
*/
'popper-class'?: string;
/**
*
* @default false
*/
'word-wrap'?: boolean;
/**
*
* @default 8px 16px
*/
padding?: string;
/**
*
* @default false
*/
offset?: string;
/**
* popper.js popper.js
* @default {
modifiers: {
computeStyle:{
gpuAcceleration: false,
},
preventOverflow :{
boundariesElement: 'window'
}
}
}
*/
options?: object;
/**
*
*/
$emit(eventName: 'on-popper-show'): this;
/**
*
*/
$emit(eventName: 'on-popper-hide'): this;
/**
* confirm
*/
$emit(eventName: 'on-ok'): this;
/**
* confirm
*/
$emit(eventName: 'on-cancel'): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
/**
* slot props title
*/
title: VNode[];
/**
* slot props content confirm
*/
content: VNode[];
}
}

47
dist/types/progress.d.ts vendored Normal file
View file

@ -0,0 +1,47 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Progress extends Vue {
/**
*
* @default 0
*/
percent?: number;
/**
* normalactivewrongsuccess
* @default normal
*/
status?: 'normal'|'active'|'wrong'|'success';
/**
* 线 px
* @default 10
*/
'stroke-width'?: number;
/**
*
* @default false
*/
'hide-info'?: boolean;
/**
*
* @default false
*/
vertical?: boolean;
/**
*
* @default 0
*/
'success-percent'?: number;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
};
}

64
dist/types/radio.d.ts vendored Normal file
View file

@ -0,0 +1,64 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Radio extends Vue {
/**
* 使使 v-model
* @default false
*/
value?: boolean;
/**
* 使 value
*/
label?: string | number;
/**
*
* @default false
*/
disabled?: boolean;
/**
* largesmalldefault
*/
size?: '' | 'large' | 'small' | 'default';
/**
* 使 1 0
* @default true
*/
'true-value'?: string | number | boolean;
/**
* 使 1 0
* @default false
*/
'false-value'?: string | number | boolean;
/**
*
*/
$emit(eventName: 'on-change', arg: string | number | boolean): this;
}
export declare interface RadioGroup extends Vue {
/**
* 使 v-model
*/
value?: string | number;
/**
* button button 使
*/
type?: string;
/**
* largesmalldefault或者不设置
*/
size?: '' | 'large' | 'small' | 'default';
/**
*
* @default false
*/
vertical?: boolean;
/**
*
*/
$emit(eventName: 'on-change', ...args: Array<string | number | boolean>): this;
}

54
dist/types/rate.d.ts vendored Normal file
View file

@ -0,0 +1,54 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Rate extends Vue {
/**
* star总数
* @default 5
*/
count?: number;
/**
* star 使 v-model
* @default 0
*/
value?: number;
/**
*
* @default false
*/
'allow-half'?: boolean;
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default false
*/
'show-text'?: boolean;
/**
*
* @default false
*/
clearable?: boolean;
/**
*
*/
character?: string;
/**
* 使
*/
icon?: string;
/**
* 使
*/
'custom-icon'?: string;
/**
*
*/
$emit(eventName: 'on-change', value: number): this;
}

35
dist/types/scroll.d.ts vendored Normal file
View file

@ -0,0 +1,35 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Scroll extends Vue {
/**
*
* @default 300
*/
height?: string | number;
/**
*
* @default
*/
'loading-text'?: string;
/**
* Promise
*/
'on-reach-top'?: () => void;
/**
* Promise
*/
'on-reach-bottom'?: () => void;
/**
* Promise
*/
'on-reach-edge'?: () => void;
/**
* 24
* @default [20, 20]
*/
'distance-to-edge'?: number | number[];
}

141
dist/types/select.d.ts vendored Normal file
View file

@ -0,0 +1,141 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Select extends Vue {
/**
* value 使 v-model
* String Number Array
* @default
*/
value?: string | number | string[] | number[];
/**
*
* @default false
*/
multiple?: boolean;
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default false
*/
clearable?: boolean;
/**
*
* @default false
*/
filterable?: boolean;
/**
* 使
* @default false
*/
remote?: boolean;
/**
*
*/
'remote-method'?: () => void;
/**
*
* @default false
*/
loading?: boolean;
/**
*
* @default
*/
'loading-text'?: string;
/**
* remote 使 value label
*/
label?: string | number | string[] | number[];
/**
* largesmalldefault或者不填
*/
size?: '' | 'large' | 'small' | 'default';
/**
*
* @default
*/
placeholder?: string;
/**
*
* @default
*/
'not-found-text'?: string;
/**
* label value
* @default false
*/
'label-in-value'?: boolean;
/**
* topbottomtop-startbottom-starttop-endbottom-end
* @default bottom-start
*/
placement?: 'bottom' | 'top' | 'top-start' | 'bottom-start' | 'top-end' | 'bottom-end';
/**
* body Tabs fixed Table 使
*
* @default false
*/
transfer?: boolean;
/**
* id Form
*/
'element-id'?: string;
/**
* Option变化时触发 value label label-in-value
*/
$emit(eventName: 'on-change'): this;
/**
* ,query
*/
$emit(eventName: 'on-query-change', query: string): this;
/**
* ,query
*/
$emit(eventName: 'on-clear'): this;
/**
* ,query
*/
$emit(eventName: 'on-open-change', params: boolean): this;
/**
* filterable="true"
*/
setQuery(query: string): void;
/**
* clearable="true"
*/
clearSingleSelect(): void;
}
export declare interface Option extends Vue {
/**
*
*/
value?: string | number;
/**
* slot slot label
* label value label
* slot
*/
label?: string;
/**
*
* @default false
*/
disabled?: boolean;
}
export declare interface OptionGroup extends Vue {
/**
*
* @default
*/
label?: string;
}

8
dist/types/sider.d.ts vendored Normal file
View file

@ -0,0 +1,8 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Sider extends Vue {
}

70
dist/types/slider.d.ts vendored Normal file
View file

@ -0,0 +1,70 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Slider extends Vue {
/**
* 使 v-model
* 2,
* @default 0
*/
value?: number | number[];
/**
*
* @default 0
*/
min?: number;
/**
*
* @default 100
*/
max?: number;
/**
* max - min
* @default 1
*/
step?: number;
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default false
*/
range?: boolean;
/**
*
* @default false
*/
'show-input'?: boolean;
/**
* step 使
* @default false
*/
'show-stops'?: boolean;
/**
* hoveralwaysnever
* @default false
*/
'show-tip'?: boolean;
/**
* tip-format Tooltip tip-format null Tooltip
*/
'tip-format'?: (value?: number | number[]) => void;
/**
* largesmalldefault或者不填 show-input
*/
'input-size'?: '' | 'large' | 'small' | 'default';
/**
*
*/
$emit(eventName: 'on-change', value: number | number[]): this;
/**
*
*/
$emit(eventName: 'on-input', value: number | number[]): this;
}

35
dist/types/spin.d.ts vendored Normal file
View file

@ -0,0 +1,35 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Spin extends Vue {
/**
* Spin尺寸large和small或者不设置
*/
size?: 'large' | 'small';
/**
* relative或absolute
* @default false
*/
fix?: boolean;
/**
* slot插槽对象
*/
$slots: {
/**
* Spin slot后
*/
'': VNode[];
};
}
declare module 'vue/types/vue' {
interface Vue {
/**
*
*/
$Spin: Spin;
}
}

68
dist/types/split.d.ts vendored Normal file
View file

@ -0,0 +1,68 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Split extends Vue {
/**
* 0~1 v-model
* @default 0.5
*/
value?: number | string;
/**
* horizontal vertical
* @default horizontal
*/
mode?: 'horizontal' | 'vertical';
/**
*
* @default 40px
*/
min?: number | string;
/**
*
* @default 40px
*/
max?: number | string;
/**
* -
* @default false
*/
$emit(eventName: 'on-move-start', []): this;
/**
*
*/
$emit(eventName: 'on-moving', []): this;
/**
*
* @default false
*/
$emit(eventName: 'on-move-end', []): this;
/**
* slot插槽对象
*/
$slots: {
/**
* mode horizontal
* @default false
*/
left: VNode[];
/**
* mode horizontal
*/
right: VNode[];
/**
* mode vertical
*/
top: VNode[];
/**
* mode vertical
*/
bottom: VNode[];
/**
*
*/
trigger: VNode[];
}
}

48
dist/types/steps.d.ts vendored Normal file
View file

@ -0,0 +1,48 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Steps extends Vue {
/**
* 0
* @default 0
*/
current?: number;
/**
* waitprocessfinisherror
* @default process
*/
status?: 'wait' | 'process' | 'finish' | 'error';
/**
* small或者不写
*/
size?: '' | 'small';
/**
* horizontalvertical
* @default horizontal
*/
direction?: 'horizontal' | 'vertical';
}
export declare interface StepsStep extends Vue {
/**
* waitprocessfinisherror
* @default process
*/
status?: 'wait' | 'process' | 'finish' | 'error';
/**
*
* @default
*/
title?: string;
/**
*
*/
content?: string;
/**
*
*/
icon?: string;
}

54
dist/types/switch.d.ts vendored Normal file
View file

@ -0,0 +1,54 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Switch extends Vue {
/**
* 使 v-model
* @default false
*/
value?: boolean;
/**
* largesmalldefault或者不写使2使 large
*/
size?: '' | 'large' | 'small' | 'default';
/**
*
* @default false
*/
disabled?: boolean;
/**
* 使 1 0
* @default true
*/
'true-value'?: string | number | boolean;
/**
* 使 1 0
* @default false
*/
'false-value'?: string | number | boolean;
/**
*
* @default false
*/
loading?: boolean;
/**
*
*/
$emit(eventName: 'on-change', value: boolean): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
open: VNode[];
/**
*
*/
close: VNode[];
};
}

419
dist/types/table.d.ts vendored Normal file
View file

@ -0,0 +1,419 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } 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: {
/**
*
*/
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;
/**
* 使 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 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;
}
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?: () => void;
/**
* (,)
* @default ,
*/
separator?: string;
/**
*
* @default false
*/
quoted?: boolean;
}

85
dist/types/tabs.d.ts vendored Normal file
View file

@ -0,0 +1,85 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Tabs extends Vue {
/**
* tab name使 v-model
* @default name
*/
value?: string;
/**
* line card
* @default line
*/
type?: 'line' | 'card';
/**
* default small type="line"
* @default default
*/
size?: 'default' | 'small';
/**
* type="card"
* @default false
*/
closable?: boolean;
/**
* 使 CSS3
* @default true
*/
animated?: boolean;
/**
* Tabs
* @default false
*/
'capture-focus'?: boolean;
/**
* Promise
*/
'before-remove'?: (index: number) => {};
/**
* tab
*/
$emit(eventName: 'on-click', name: string): this;
/**
* tab
*/
$emit(eventName: 'on-tab-remove', name: string): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
extra: VNode[];
};
}
export declare interface TabsPane extends Vue {
/**
* value
*/
name?: string | number;
/**
* Render
* @default
*/
label?: string | (() => void);
/**
*
*/
icon?: string;
/**
*
* @default false
*/
disabled?: boolean;
/**
* type="card"
* @default null
*/
closable?: boolean;
}

48
dist/types/tag.d.ts vendored Normal file
View file

@ -0,0 +1,48 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Tag extends Vue {
/**
*
* @default false
*/
closable?: boolean
/**
*
* @default false
*/
checkable?: boolean;
/**
*
* @default true
*/
checked?: boolean;
/**
* borderdot或不填
*/
type?: '' | 'border' | 'dot';
/**
*
* defaultprimarysuccesswarningerrorbluegreen
* redyellowpinkmagentavolcanoorangegold
* limecyangeekbluepurple
*
*/
color?: 'default' | 'primary' | 'success' | 'warning' | 'error' | 'blue' | 'green' | 'red' | 'yellow' | 'pink' | 'magenta' | 'volcano' | 'orange' | 'gold' | 'lime' | 'cyan' | 'geekblue' | 'purple';
/**
* 使 v-for
*/
name?: string | number;
/**
* 使
* @default true
*/
fade?: boolean;
/**
*
*/
$emit(eventName: 'on-close', event: object, name: string): this;
}

169
dist/types/time-picker.d.ts vendored Normal file
View file

@ -0,0 +1,169 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface TimePicker extends Vue {
/**
* timetimerange
* @default time
*/
type?: 'time' | 'timerange';
/**
* JavaScript Date new Date()
* value 使 v-model Date @on-change 使
*
* yyyy 2016
* yy 16
* MM 01
* M 1
* MMMM January
* MMM Jan
* dd 01
* d 1
* Do 1st
* DD 00
* D 0
* dddd Monday
* ddd Mon
* HH 24 01
* H 24 1
* hh 12 01
* h 12 1
* mm 01
* m 1
* ss 01
* s 1
* SSS 019
* SS 01
* S 1
* A AM/PM
* a am/pm
* ZZ +0800
*/
value?: Date;
/**
*
* @default HH:mm:ss
*
* yyyy 2016
* yy 16
* MM 01
* M 1
* MMMM January
* MMM Jan
* dd 01
* d 1
* Do 1st
* DD 00
* D 0
* dddd Monday
* ddd Mon
* HH 24 01
* H 24 1
* hh 12 01
* h 12 1
* mm 01
* m 1
* ss 01
* s 1
* SSS 019
* SS 01
* S 1
* A AM/PM
* a am/pm
* ZZ +0800
*/
format?: string;
/**
*
* [1, 15] 00153045
* @default []
*/
steps?: any[];
/**
*
* top,top-start,top-end
* bottom,bottom-start,bottom-end
* left,left-start,left-end
* right,right-start,right-end
* @default bottom-start
*/
placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
/**
*
* @default
*/
placeholder?: string;
/**
*
* @default false
*/
confirm?: boolean;
/**
* true false
* 使 slot confirm 使,
* @default null
*/
open?: boolean;
/**
* largesmalldefault或者不设置
*/
size?: '' | 'large' | 'small' | 'default';
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default true
*/
clearable?: boolean;
/**
* open
* @default false
*/
readonly?: boolean;
/**
* 使 slot
* @default true
*/
editable?: boolean;
/**
* body Tabs fixed Table 使
* @default false
*/
transfer?: boolean;
/**
* id Form
*/
'element-id'?: boolean;
/**
* 09:41:00
*/
$emit(eventName: 'on-change', value: string): this;
/**
*
*/
$emit(eventName: 'on-open-change', value: boolean): this;
/**
*
*/
$emit(eventName: 'on-ok'): this;
/**
*
*/
$emit(eventName: 'on-clear'): this;
/**
* slot插槽对象
*/
$slots: {
/**
* open 使
*/
'': VNode[];
};
}

27
dist/types/time.ts vendored Normal file
View file

@ -0,0 +1,27 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Time extends Vue {
/**
* Date
*/
time?: number |Date |string;
/**
* relativedate datetime
* @default relative
*/
type?: 'relative'|'date'|'datetime';
/**
*
* @default 60
*/
interval?: number;
/**
*
* @default false
*/
hash?: string;
}

34
dist/types/timeline.d.ts vendored Normal file
View file

@ -0,0 +1,34 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Timeline extends Vue {
/**
*
* @default false
*/
pending?: boolean;
}
export declare interface TimelineItem extends Vue {
/**
* blueredgreen
* @default blue
*/
color?: 'blue' | 'red' | 'green' | string;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
/**
*
*/
dot: VNode[];
};
}

91
dist/types/tooltip.d.ts vendored Normal file
View file

@ -0,0 +1,91 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Tooltip extends Vue {
/**
*
* @default
*/
content?: string | number;
/**
*
* toptop-starttop-endbottombottom-startbottom-end
* leftleft-startleft-endrightright-startright-end
* 2.12.0
* @default bottom
*/
placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
/**
*
* @default false
*/
disabled?: boolean;
/**
*
* @default 0
*/
delay?: number;
/**
*
* @default false
*/
always?: boolean;
/**
* dark light
* @default dark
*/
theme?: string;
/**
*
*/
'max-width'?: string|number;
/**
*
* @default 0
*/
offset?: number;
/**
* body Tabs fixed Table 使
*
* @default false
*/
transfer?: boolean;
/**
*
* @default {
modifiers: {
computeStyle:{
gpuAcceleration: false,
},
preventOverflow :{
boundariesElement: 'window'
}
}
}
*/
options?: object;
/**
*
*/
$emit(eventName: 'on-popper-show'): this;
/**
*
*/
$emit(eventName: 'on-popper-hide'): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
/**
* slot props content
*/
content: VNode[];
};
}

80
dist/types/transfer.d.ts vendored Normal file
View file

@ -0,0 +1,80 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Transfer extends Vue {
/**
* targetKeys
* @default []
*/
data?: object[];
/**
* key集合
* @default []
*/
targetKeys?: string[];
/**
* data
* value?: 默认显示labelkey
*/
'render-format'?: (value?: string) => void;
/**
*
* @default []
*/
'selected-keys'?: string[];
/**
* 穿
* @default {}
*/
'list-style'?: object;
/**
* Array
* @default ['源列表', '目的列表']
*/
titles?: string[];
/**
*
* @default []
*/
operations?: object[];
/**
*
* @default false
*/
filterable?: object[];
/**
*
* @default
*/
'filter-placeholder'?: string;
/**
* data querydata query
* label
*/
'filter-method'?: (value?: string) => void;
/**
*
* @default
*/
'not-found-text'?: string;
/**
*
*/
$emit(eventName: 'on-change', targetKeys: string[], direction: string, moveKeys: string[]): this;
/**
*
*/
$emit(eventName: 'on-selected-change', sourceSelectedKeys: string[], targetSelectedKeys: string[]): this;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
};
}

103
dist/types/tree.d.ts vendored Normal file
View file

@ -0,0 +1,103 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } 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;
}
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;
}

130
dist/types/upload.d.ts vendored Normal file
View file

@ -0,0 +1,130 @@
// Type definitions for iview 3.1.0
// Project: https://github.com/iview/iview
// Definitions by: yangdan
// Definitions: https://github.com/yangdan8/iview.git
import Vue, { VNode } from 'vue';
export declare interface Upload extends Vue {
/**
*
*/
action?: string;
/**
*
* @default {}
*/
headers?: object;
/**
*
* @default false
*/
multiple?: boolean;
/**
*
* @default false
*/
paste?: boolean;
/**
*
*/
data?: object;
/**
*
* @default file
*/
name?: string;
/**
* cookie
* @default false
*/
'with-credentials'?: boolean;
/**
*
* @default true
*/
'show-upload-list'?: boolean;
/**
* selectdrag
* @default select
*/
type?: 'select' | 'drag';
/**
*
*/
accept?: string;
/**
* accept
* format
* accept input accept
* 使
* @default []
*/
format?: string[];
/**
* kb
*/
'max-size'?: number;
/**
* false Promise
*/
'before-upload'?: Function;
/**
* event, file, fileList
*/
'on-progress'?: Function;
/**
* response, file, fileList
*/
'on-success'?: Function;
/**
* error, file, fileList
*/
'on-error'?: Function;
/**
* file file.response
*/
'on-preview'?: Function;
/**
* file, fileList
*/
'on-remove'?: Function;
/**
* file, fileList
*/
'on-format-error'?: Function;
/**
* file, fileList
*/
'on-exceeded-size'?: Function;
/**
*
* [
* {
* name?: 'img1.jpg',
* url?: 'http://www.xxx.com/img1.jpg'
* },
* {
* name?: 'img2.jpg',
* url?: 'http://www.xxx.com/img2.jpg'
* }
* ]
*/
'default-file-list'?: string[];
/**
*
*/
'clearFiles'(): void;
/**
* slot插槽对象
*/
$slots: {
/**
*
*/
'': VNode[];
/**
*
*/
tip: VNode[];
};
}

View file

@ -67,6 +67,7 @@ nav {
<li><router-link to="/divider">Divider</router-link></li>
<li><router-link to="/time">Time</router-link></li>
<li><router-link to="/cell">Cell</router-link></li>
<li><router-link to="/drawer">Drawer</router-link></li>
</ul>
</nav>
<router-view></router-view>

View file

@ -225,6 +225,10 @@ const router = new VueRouter({
{
path: '/cell',
component: (resolve) => require(['./routers/cell.vue'], resolve)
},
{
path: '/drawer',
component: (resolve) => require(['./routers/drawer.vue'], resolve)
}
]
});

View file

@ -1,152 +1,17 @@
<template>
<div style="margin: 100px;">
{{color}}
<!--<Input placeholder="请输入..." size="large" style="width: 50px;"></Input>-->
<color-picker
v-model="color"
placement="bottom-start"
@on-change="c1"
@on-active-change="c2"></color-picker>
<Input value="hello" style="display: inline-block" />
<Date-picker
type="date"
placeholder="选择日期"
style="width: 200px"></Date-picker>
<color-picker
ref="xxx"
v-model="color"
:recommend="true"
format="rgb"
alpha
@on-change="onChange"
@on-active-change="onActiveChange"></color-picker>
<color-picker
v-model="color2"
:alpha="true"
:recommend="false"
format="hsv"></color-picker>
<!--<Date-picker type="date" placeholder="选择日期" style="width: 200px"></Date-picker>-->
<color-picker
v-model="color"
placement="bottom-start"
></color-picker>
<Date-picker
type="date"
placeholder="选择日期"
style="width: 200px"></Date-picker>
<color-picker
ref="yyy"
:colors="colors"
v-model="color"
format="rgb"
alpha></color-picker>
<Button @click="setColor">set color</Button>
<br><br><br><br>
{{openState}}
<ColorPicker
v-model="color7"
:hue="false"
@on-open-change="onOpenChange"></ColorPicker>
<ColorPicker
v-model="color7"
:hue="false"
:hide-drop-down="hideDropDown"
@on-open-change="onOpenChange"></ColorPicker>
<br><br><br><br>
<ColorPicker
v-model="color7"
disabled></ColorPicker>
{{ color1 }}
<ColorPicker v-model="color1" />
<ColorPicker v-model="color2" :editable="false"/>
</div>
</template>
<script>
export default {
props: {},
data() {
export default {
data () {
return {
color: 'rgba(12,34,255,.85)',
color2: '',
color7: '#19be6b',
openState: false,
colors: [
'#2d8cf0',
'#19be6b',
'#ff9900',
'#ed3f14',
'#00b5ff',
'#19c919',
'#f9e31c',
'#ea1a1a',
'#9b1dea',
'#00c2b1',
'#ac7a33',
'#1d35ea',
'#8bc34a',
'#f16b62',
'#ea4ca3',
'#0d94aa',
'#febd79',
'#5d4037',
'#00bcd4',
'#f06292',
'#cddc39',
'#607d8b',
'#000000',
'#ffffff',
'#2d8cf0',
'#19be6b',
'#ff9900',
'#ed3f14',
'#00b5ff',
'#19c919',
'#f9e31c',
'#ea1a1a',
'#9b1dea',
'#00c2b1',
'#ac7a33',
'#1d35ea',
'#8bc34a',
'#f16b62',
'#ea4ca3',
'#0d94aa',
'#febd79',
'#5d4037',
],
hideDropDown: false,
color1: '#19be6b',
color2: ''
};
}
};
},
computed: {},
mounted() {
setInterval(this.toggleShowHide, 2000);
},
methods: {
setColor() {
this.color = '#26bc77';
},
c1(d) {
console.log(d);
},
c2(d) {
console.log(d);
},
onOpenChange(state) {
this.openState = state;
},
onChange(d) {
console.log(d);
},
onActiveChange(d) {
console.log(d);
},
toggleShowHide() {
this.hideDropDown = !this.hideDropDown;
},
},
};
</script>

219
examples/routers/drawer.vue Normal file
View file

@ -0,0 +1,219 @@
<template>
<div>
<Button @click="visible = true">show1</Button>
<Button @click="visible2 = true">show2</Button>
<Button @click="visible3 = true">show3</Button>
<div style="width: 500px;height:500px;background: green;position: relative;">
</div>
<Drawer v-model="visible" width="70" title="抽屉标题" :styles="styles" @on-close="handleClose">
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<Button @click="visible2 = true">show2</Button>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
</Drawer>
<Drawer v-model="visible2" title="抽屉标题" placement="right">
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容22</p>
</Drawer>
<Drawer v-model="visible3" placement="left">
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容</p>
<p>一些内容22</p>
</Drawer>
</div>
</template>
<script>
export default {
data () {
return {
visible: false,
visible2: false,
visible3: false,
styles: {
height: 'calc(100% - 55px)',
paddingBottom: '53px',
},
ms: {
backgroundColor: 'rgba(255,0,255,0.5)'
}
};
},
methods: {
handleClose () {
this.$Message.info('关闭了');
}
}
};
</script>
<style>
body{
height: 2000px;
}
</style>

View file

@ -54,7 +54,24 @@
<InputNumber v-model="value3" style="width: 200px" placeholder="Enter something..."></InputNumber> -->
<InputNumber v-model="valueNull" style="width: 200px" :min='0' :max='10000' :precision='2' ></InputNumber>
<InputNumber v-model="valueNull" style="width: 200px" :min='1' :max='10000' :precision='2' ></InputNumber>
<InputNumber v-model="valueNull" style="width: 200px" ></InputNumber>
<div style="margin:10px 0px">
<InputNumber :activeChange="false" v-model="valueNull" style="width: 200px" :min='1' :max='10000' :precision='2' ></InputNumber>
<InputNumber :activeChange="false" v-model="valueNull" style="width: 200px" ></InputNumber>
</div>
<div style="margin:10px 0px">
<InputNumber
:max="10000"
v-model="value9"
:formatter="value => `$ ${value}`.replace(/B(?=(d{3})+(?!d))/g, ',')"
:parser="value => value.replace(/\$s?|(,*)/g, '')"></InputNumber>
<InputNumber
:max="100"
v-model="value10"
:formatter="value => `${value}%`"
:parser="value => value.replace('%', '')"></InputNumber>
</div>
</div>
</template>
<script>
@ -68,16 +85,18 @@
formatter: (value) => `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ','),
parser: (value) => value.replace(/\$\s?|(,*)/g, ''),
formatter2: (value) => `${value}%`,
parser2: (value) => value.replace('%', '')
}
parser2: (value) => value.replace('%', ''),
value9: 1000,
value10: 100
};
},
methods: {
focus (e) {
e.target.select()
e.target.select();
},
change (v) {
console.log(v)
}
console.log(v);
}
}
};
</script>

View file

@ -1,46 +1,45 @@
<template>
<Menu active-name="1-2" :open-names="['1']">
<Submenu name="1">
<template slot="title">
<Icon type="ios-analytics"></Icon>
Navigation One
</template>
<MenuGroup title="Item 1">
<MenuItem name="1-1">我是菜单一</MenuItem>
<MenuItem name="1-2">我是菜单二</MenuItem>
</MenuGroup>
<MenuGroup title="Item 2">
<MenuItem name="1-3">我是菜单三</MenuItem>
<MenuItem name="1-4">我是菜单四</MenuItem>
</MenuGroup>
</Submenu>
<Submenu name="2">
<template slot="title">
<Icon type="ios-filing"></Icon>
Navigation Two
</template>
<MenuItem name="2-1">我是菜单五</MenuItem>
<MenuItem name="2-2">我是菜单六</MenuItem>
<Menu mode="horizontal" :theme="theme1" active-name="3-4" @on-select="hs">
<MenuItem name="1" to="/button" target="_blank">
<Icon type="ios-paper" />
内容管理
</MenuItem>
<MenuItem name="2">
<Icon type="ios-people" />
用户管理
</MenuItem>
<Submenu name="3">
<template slot="title">Submenu</template>
<MenuItem name="3-1">我是菜单七</MenuItem>
<MenuItem name="3-2">我是菜单八</MenuItem>
</Submenu>
</Submenu>
<Submenu name="4">
<template slot="title">
<Icon type="ios-gear"></Icon>
Navigation Three
<Icon type="ios-stats" />
统计分析
</template>
<MenuItem name="4-1">Option 9</MenuItem>
<MenuItem name="4-2">Option 10</MenuItem>
<MenuItem name="4-3">Option 11</MenuItem>
<MenuItem name="4-4">Option 12</MenuItem>
<MenuGroup title="使用">
<MenuItem name="3-1">新增和启动</MenuItem>
<MenuItem name="3-2">活跃分析</MenuItem>
<MenuItem name="3-3">时段分析</MenuItem>
</MenuGroup>
<MenuGroup title="留存">
<MenuItem name="3-4">用户留存</MenuItem>
<MenuItem name="3-5">流失用户</MenuItem>
</MenuGroup>
</Submenu>
<MenuItem name="4">
<Icon type="ios-construct" />
综合设置
</MenuItem>
</Menu>
</template>
<script>
export default {
data () {
return {
theme1: 'light'
}
},
methods: {
hs (n) {
console.log(n);
}
}
}
</script>

View file

@ -1,44 +1,150 @@
<template>
<div>
<Button @click="instance('info')">Info</Button>
<Button @click="instance('success')">Success</Button>
<Button @click="instance('warning')">Warning</Button>
<Button @click="instance('error')">Error</Button>
<Button type="primary" @click="modal1 = true">Display dialog box</Button>
<Modal
v-model="modal1"
title="Common Modal dialog box title"
@on-ok="ok"
@on-cancel="cancel">
<p>Content of dialog</p>
<p>Content of dialog</p>
<p>Content of dialog</p>
<Button @click="openMessage">Message</Button>
<Select v-model="model1" style="width:200px" :transfer="false">
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
<Select v-model="model1" style="width:200px" :transfer="true">
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
<Dropdown transfer>
<a href="javascript:void(0)">
下拉菜单
<Icon type="ios-arrow-down"></Icon>
</a>
<DropdownMenu slot="list">
<DropdownItem>驴打滚</DropdownItem>
<DropdownItem>炸酱面</DropdownItem>
<DropdownItem disabled>豆汁儿</DropdownItem>
<DropdownItem>冰糖葫芦</DropdownItem>
<DropdownItem divided>北京烤鸭</DropdownItem>
</DropdownMenu>
</Dropdown>
<DatePicker type="date" placeholder="Select date" style="width: 200px" transfer></DatePicker>
<Cascader :data="data" v-model="value1" transfer></Cascader>
<Tooltip content="Here is the prompt text" transfer>
A balloon appears when the mouse passes over this text
</Tooltip>
<Poptip trigger="hover" title="Title" content="content" transfer>
<Button>Hover</Button>
</Poptip>
<Button type="primary" @click="handleSpinShow">整页显示3秒后关闭</Button>
</Modal>
<Select v-model="model1" style="width:200px" :transfer="false">
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
<Select v-model="model1" style="width:200px" :transfer="true">
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</div>
</template>
<script>
export default {
data () {
return {
modal1: false,
cityList: [
{
value: 'New York',
label: 'New York'
},
{
value: 'London',
label: 'London'
},
{
value: 'Sydney',
label: 'Sydney'
},
{
value: 'Ottawa',
label: 'Ottawa'
},
{
value: 'Paris',
label: 'Paris'
},
{
value: 'Canberra',
label: 'Canberra'
}
],
model1: '',
value1: [],
data: [{
value: 'beijing',
label: '北京',
children: [
{
value: 'gugong',
label: '故宫'
},
{
value: 'tiantan',
label: '天坛'
},
{
value: 'wangfujing',
label: '王府井'
}
]
}, {
value: 'jiangsu',
label: '江苏',
children: [
{
value: 'nanjing',
label: '南京',
children: [
{
value: 'fuzimiao',
label: '夫子庙',
}
]
},
{
value: 'suzhou',
label: '苏州',
children: [
{
value: 'zhuozhengyuan',
label: '拙政园',
},
{
value: 'shizilin',
label: '狮子林',
}
]
}
],
}]
}
},
methods: {
instance (type) {
const title = 'Title';
const content = '<p>Content of dialog</p><p>Content of dialog</p>';
switch (type) {
case 'info':
this.$Modal.info({
title: title,
content: content
ok () {
// this.$Message.info('Clicked ok');
},
cancel () {
// this.$Message.info('Clicked cancel');
},
openMessage () {
this.$Message.info({
content: 'hello world',
duration: 2
});
break;
case 'success':
this.$Modal.success({
title: title,
content: content
});
break;
case 'warning':
this.$Modal.warning({
title: title,
content: content
});
break;
case 'error':
this.$Modal.error({
title: title,
content: content
});
break;
}
}
},
handleSpinShow () {
this.$Spin.show();
},
}
}
</script>

View file

@ -1,77 +1,5 @@
<!--<template>-->
<!--<Tabs value="name1" :animated="false">-->
<!--<Tab-pane label="test" name="test">-->
<!--<Tabs type="card" v-bind:animated="true">-->
<!--<Tab-pane label="标签2一">标签2一的内容</Tab-pane>-->
<!--<Tab-pane label="标签2二">标签2二的内容</Tab-pane>-->
<!--<Tab-pane label="标签2三">标签2三的内容</Tab-pane>-->
<!--</Tabs>-->
<!--</Tab-pane>-->
<!--<Tab-pane :label="label1" name="name1">-->
<!--<Table :columns="columns1" :data="data1"></Table>-->
<!--</Tab-pane>-->
<!--<Tab-pane label="标签二" name="name2">-->
<!--<Table :columns="columns1" :data="data1"></Table>-->
<!--</Tab-pane>-->
<!--<Tab-pane label="标签三" name="name3">-->
<!--<Table :columns="columns1" :data="data1"></Table>-->
<!--</Tab-pane>-->
<!--</Tabs>-->
<!--</template>-->
<!--<script>-->
<!--export default {-->
<!--data () {-->
<!--return {-->
<!--label1: (h) => {-->
<!--return h('div', [-->
<!--h('span', '标签一'),-->
<!--h('Button', 'button')-->
<!--]);-->
<!--},-->
<!--columns1: [-->
<!--{-->
<!--title: '姓名',-->
<!--key: 'name'-->
<!--},-->
<!--{-->
<!--title: '年龄',-->
<!--key: 'age'-->
<!--},-->
<!--{-->
<!--title: '地址',-->
<!--key: 'address'-->
<!--}-->
<!--],-->
<!--data1: [-->
<!--{-->
<!--name: '王小明',-->
<!--age: 18,-->
<!--address: '北京市朝阳区芍药居'-->
<!--},-->
<!--{-->
<!--name: '张小刚',-->
<!--age: 25,-->
<!--address: '北京市海淀区西二旗'-->
<!--},-->
<!--{-->
<!--name: '李小红',-->
<!--age: 30,-->
<!--address: '上海市浦东新区世纪大道'-->
<!--},-->
<!--{-->
<!--name: '周小伟',-->
<!--age: 26,-->
<!--address: '深圳市南山区深南大道'-->
<!--}-->
<!--]-->
<!--}-->
<!--}-->
<!--}-->
<!--</script>-->
<!-- <template>
<Tabs type="card" closable @on-tab-remove="handleTabRemove">
<template>
<Tabs type="card" closable @on-tab-remove="handleTabRemove" :beforeRemove="handleBeforeRemove">
<TabPane label="标签一" v-if="tab0">标签一的内容</TabPane>
<TabPane label="标签二" v-if="tab1">标签二的内容</TabPane>
<TabPane label="标签三" v-if="tab2">标签三的内容</TabPane>
@ -89,129 +17,23 @@
methods: {
handleTabRemove (name) {
this['tab' + name] = false;
}
}
}
</script> -->
<!--<template>-->
<!--<div>-->
<!--<Button type="ghost" @click="toFirst" size="small">to first</Button>-->
<!--<Button type="ghost" @click="toLast" size="small">to last</Button>-->
<!--<Tabs type="card" :animated="animated" v-model="activeTab">-->
<!--<TabPane v-for="tab in tabs" :key="tab" :label="'标签' + tab" :name="tab+''" closable>标签{{ tab }}</TabPane>-->
<!--<div slot="extra">-->
<!--<Button type="ghost" @click="handleTabsAdd" size="small">增加</Button>-->
<!--</div>-->
<!--</Tabs>-->
<!--</div>-->
<!--</template>-->
<!--<script>-->
<!--export default {-->
<!--data () {-->
<!--return {-->
<!--tabs: 2,-->
<!--activeTab:"2",-->
<!--animated:true-->
<!--}-->
<!--},-->
<!--methods: {-->
<!--handleTabsAdd () {-->
<!--this.tabs ++;-->
<!--this.activeTab = this.tabs + '';-->
<!--},-->
<!--toFirst () {-->
<!--this.activeTab = '1';-->
<!--},-->
<!--toLast () {-->
<!--this.activeTab = this.tabs+'';-->
<!--}-->
<!--}-->
<!--}-->
<!--</script>-->
<!--<template>-->
<!--<div>-->
<!--<Tabs type="card">-->
<!--<TabPane v-for="tab in tabs" :key="tab" :label="'标签' + tab">标签{{ tab }}</TabPane>-->
<!--</Tabs>-->
<!--<Button type="ghost" @click="handleTabsAdd" size="small">增加</Button>-->
<!--<Button type="ghost" @click="handleTabsMin" size="small">减少</Button>-->
<!--</div>-->
<!--</template>-->
<!--<script>-->
<!--export default {-->
<!--data () {-->
<!--return {-->
<!--tabs: 2-->
<!--}-->
<!--},-->
<!--methods: {-->
<!--handleTabsAdd () {-->
<!--this.tabs ++;-->
<!--},-->
<!--handleTabsMin () {-->
<!--this.tabs &#45;&#45;;-->
<!--}-->
<!--}-->
<!--}-->
<!--</script>-->
<template>
<div>
<i-input></i-input>
<Button type="ghost" @click="handleTabsAdd" size="small" slot="extra">增加</Button>
<hr style="margin: 10px 0;">
<Tabs type="card">
<TabPane v-for="tab in tabs" :key="tab" :label="'Tab' + tab">
<div>
<h3>Some text...</h3>
<i-button>Some focusable content...{{ tab }}</i-button>
</div>
</TabPane>
</Tabs>
<Tabs type="card">
<TabPane label="标签一">标签一的内容</TabPane>
<TabPane label="标签二" disabled>标签二的内容</TabPane>
<TabPane label="标签三">标签三的内容</TabPane>
</Tabs>
<tabs v-model="name" type="card" @on-click="handleClick">
<tab-pane name="a" label="标签一">
<div>1</div>
</tab-pane>
<tab-pane name="b" label="标签二">
<div>2</div>
</tab-pane>
<tab-pane name="c" label="标签三">
<div>3</div>
</tab-pane>
<tab-pane name="d" label="标签四">
<div>4</div>
</tab-pane>
<tab-pane name="e" label="标签五">
<div>5</div>
</tab-pane>
</tabs>
</div>
</template>
<script>
export default {
data () {
return {
tabs: 2,
name: 'b',
}
},
methods: {
handleTabsAdd () {
this.tabs ++;
handleBeforeRemove (index) {
console.log(index);
return new Promise((resolve, reject) => {
this.$Modal.confirm({
title: 'Title',
content: '<p>Content of dialog</p><p>Content of dialog</p>',
onOk: () => {
resolve();
},
handleClick (name) {
console.log(name);
onCancel: () => {
reject();
}
});
});
}
}
}
</script>

81
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "iview",
"version": "2.14.1",
"version": "3.0.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -2451,6 +2451,64 @@
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
"dev": true
},
"copy-webpack-plugin": {
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz",
"integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==",
"dev": true,
"requires": {
"cacache": "10.0.4",
"find-cache-dir": "1.0.0",
"globby": "7.1.1",
"is-glob": "4.0.0",
"loader-utils": "1.1.0",
"minimatch": "3.0.4",
"p-limit": "1.2.0",
"serialize-javascript": "1.5.0"
},
"dependencies": {
"globby": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
"integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
"dev": true,
"requires": {
"array-union": "1.0.2",
"dir-glob": "2.0.0",
"glob": "7.1.2",
"ignore": "3.3.8",
"pify": "3.0.0",
"slash": "1.0.0"
}
},
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true
},
"is-glob": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
"integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
"dev": true,
"requires": {
"is-extglob": "2.1.1"
}
},
"loader-utils": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
"integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
"dev": true,
"requires": {
"big.js": "3.2.0",
"emojis-list": "2.1.0",
"json5": "0.5.1"
}
}
}
},
"core-js": {
"version": "2.5.7",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
@ -3041,6 +3099,27 @@
"randombytes": "2.0.6"
}
},
"dir-glob": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
"integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
"dev": true,
"requires": {
"arrify": "1.0.1",
"path-type": "3.0.0"
},
"dependencies": {
"path-type": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
"integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
"dev": true,
"requires": {
"pify": "3.0.0"
}
}
}
},
"dns-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",

View file

@ -1,6 +1,6 @@
{
"name": "iview",
"version": "3.0.0",
"version": "3.1.1-rc.1",
"title": "iView",
"description": "A high quality UI components Library with Vue.js",
"homepage": "http://www.iviewui.com",
@ -14,9 +14,11 @@
"framework"
],
"main": "dist/iview.js",
"typings": "dist/types/index.d.ts",
"files": [
"dist",
"src"
"src",
"types"
],
"scripts": {
"dev": "webpack-dev-server --content-base test/ --open --inline --hot --compress --history-api-fallback --port 8081 --config build/webpack.dev.config.js",
@ -111,7 +113,8 @@
"vue-template-compiler": "^2.5.16",
"webpack": "^3.11.0",
"webpack-dev-server": "^2.11.1",
"webpack-merge": "^3.0.0"
"webpack-merge": "^3.0.0",
"copy-webpack-plugin": "^4.5.2"
},
"engines": {
"node": ">=8.9.1",

View file

@ -75,7 +75,7 @@
return oneOf(value, ['small', 'large', 'default']);
},
default () {
return this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
return !this.$IVIEW || this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
}
},
icon: {

View file

@ -26,7 +26,7 @@
return oneOf(value, ['small', 'large', 'default']);
},
default () {
return this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
return !this.$IVIEW || this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
}
},
src: {

View file

@ -1,5 +1,5 @@
<template>
<div :class="classes" :style="styles">
<div :class="classes" :style="wrapStyles">
<Notice
v-for="notice in notices"
:key="notice.name"
@ -21,6 +21,8 @@
<script>
import Notice from './notice.vue';
import { transferIndex, transferIncrease } from '../../../utils/transfer-queue';
const prefixCls = 'ivu-notification';
let seed = 0;
const now = Date.now();
@ -54,7 +56,8 @@
},
data () {
return {
notices: []
notices: [],
tIndex: this.handleGetIndex()
};
},
computed: {
@ -65,6 +68,12 @@
[`${this.className}`]: !!this.className
}
];
},
wrapStyles () {
let styles = Object.assign({}, this.styles);
styles['z-index'] = 1010 + this.tIndex;
return styles;
}
},
methods: {
@ -82,6 +91,7 @@
}, notice);
this.notices.push(_notice);
this.tIndex = this.handleGetIndex();
},
close (name) {
const notices = this.notices;
@ -94,7 +104,11 @@
},
closeAll () {
this.notices = [];
}
},
handleGetIndex () {
transferIncrease();
return transferIndex;
},
}
};
</script>

View file

@ -60,6 +60,7 @@ export default {
},
visible(val) {
if (val) {
if (this.handleIndexIncrease) this.handleIndexIncrease(); // just use for Poptip
this.updatePopper();
this.$emit('on-popper-show');
} else {

View file

@ -16,7 +16,7 @@
return oneOf(value, ['small', 'large', 'default']);
},
default () {
return this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
return !this.$IVIEW || this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
}
},
shape: {

View file

@ -51,7 +51,7 @@
return oneOf(value, ['small', 'large', 'default']);
},
default () {
return this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
return !this.$IVIEW || this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
}
},
loading: Boolean,

View file

@ -26,6 +26,7 @@
:class="{ [prefixCls + '-transfer']: transfer }"
ref="drop"
:data-transfer="transfer"
:transfer="transfer"
v-transfer-dom>
<div>
<Caspanel
@ -100,7 +101,7 @@
return oneOf(value, ['small', 'large', 'default']);
},
default () {
return this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
return !this.$IVIEW || this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
}
},
trigger: {
@ -132,7 +133,7 @@
transfer: {
type: Boolean,
default () {
return this.$IVIEW.transfer === '' ? false : this.$IVIEW.transfer;
return !this.$IVIEW || this.$IVIEW.transfer === '' ? false : this.$IVIEW.transfer;
}
},
name: {

View file

@ -24,7 +24,7 @@
return oneOf(value, ['small', 'large', 'default']);
},
default () {
return this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
return !this.$IVIEW || this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
}
}
},

View file

@ -65,7 +65,7 @@
return oneOf(value, ['small', 'large', 'default']);
},
default () {
return this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
return !this.$IVIEW || this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
}
},
name: {

View file

@ -40,6 +40,7 @@
ref="drop"
:placement="placement"
:data-transfer="transfer"
:transfer="transfer"
:class="dropClasses"
>
<transition name="fade">
@ -82,7 +83,12 @@
@picker-color="handleSelectColor"></recommend-colors>
</div>
<div :class="[prefixCls + '-confirm']">
<span :class="[prefixCls + '-confirm-color']">{{formatColor}}</span>
<span :class="confirmColorClasses">
<template v-if="editable">
<i-input :value="formatColor" size="small" @on-enter="handleEditColor" @on-blur="handleEditColor"></i-input>
</template>
<template v-else>{{formatColor}}</template>
</span>
<i-button
ref="clear"
:tabindex="0"
@ -118,6 +124,8 @@ import RecommendColors from './recommend-colors.vue';
import Saturation from './saturation.vue';
import Hue from './hue.vue';
import Alpha from './alpha.vue';
import iInput from '../input/input.vue';
import iButton from '../button/button.vue';
import Locale from '../../mixins/locale';
import {oneOf} from '../../utils/assist';
import Emitter from '../../mixins/emitter';
@ -127,7 +135,7 @@ import {changeColor, toRGBAString} from './utils';
export default {
name: 'ColorPicker',
components: {Drop, RecommendColors, Saturation, Hue, Alpha},
components: {Drop, RecommendColors, Saturation, Hue, Alpha, iInput, iButton},
directives: {clickOutside, TransferDom},
@ -172,7 +180,7 @@ export default {
return oneOf(value, ['small', 'large', 'default']);
},
default () {
return this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
return !this.$IVIEW || this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
}
},
hideDropDown: {
@ -202,13 +210,17 @@ export default {
transfer: {
type: Boolean,
default () {
return this.$IVIEW.transfer === '' ? false : this.$IVIEW.transfer;
return !this.$IVIEW || this.$IVIEW.transfer === '' ? false : this.$IVIEW.transfer;
}
},
name: {
type: String,
default: undefined,
},
editable: {
type: Boolean,
default: true
},
},
data() {
@ -334,6 +346,14 @@ export default {
return saturationColors.hex;
},
confirmColorClasses () {
return [
`${this.prefixCls}-confirm-color`,
{
[`${this.prefixCls}-confirm-color-editable`]: this.editable
}
];
}
},
watch: {
@ -419,6 +439,10 @@ export default {
this.val = changeColor(color);
this.$emit('on-active-change', this.formatColor);
},
handleEditColor (event) {
const value = event.target.value;
this.handleSelectColor(value);
},
handleFirstTab(event) {
if (event.shiftKey) {
event.preventDefault();

View file

@ -74,6 +74,9 @@
const disabledTestFn = typeof this.disabledDate === 'function' && this.disabledDate;
return this.calendar(tableYear, tableMonth, (cell) => {
// normalize date offset from the dates provided by jsCalendar
if (cell.date instanceof Date) cell.date.setTime(cell.date.getTime() + cell.date.getTimezoneOffset() * 60000);
const time = cell.date && clearHours(cell.date);
const dateIsInCurrentMonth = cell.date && tableMonth === cell.date.getMonth();
return {

View file

@ -260,8 +260,8 @@
},
setPanelDates(leftPanelDate){
this.leftPanelDate = leftPanelDate;
const rightPanelDate = new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, leftPanelDate.getDate());
this.rightPanelDate = this.splitPanels ? new Date(Math.max(this.dates[1], rightPanelDate)) : rightPanelDate;
const rightPanelDate = new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, 1);
this.rightPanelDate = this.splitPanels ? new Date(Math.max(this.dates[1].getTime(), rightPanelDate.getTime())) : rightPanelDate;
},
panelLabelConfig (direction) {
const locale = this.t('i.locale');
@ -312,9 +312,18 @@
} else {
// keep the panels together
const otherPanel = panel === 'left' ? 'right' : 'left';
const otherCurrent = new Date(this[`${otherPanel}PanelDate`]);
otherCurrent[`set${type}`](otherCurrent[`get${type}`]() + increment);
this[`${otherPanel}PanelDate`] = otherCurrent;
const currentDate = this[`${otherPanel}PanelDate`];
const temp = new Date(currentDate);
if (type === 'Month') {
const nextMonthLastDate = new Date(
temp.getFullYear(), temp.getMonth() + increment + 1, 0
).getDate();
temp.setDate(Math.min(nextMonthLastDate, temp.getDate()));
}
temp[`set${type}`](temp[`get${type}`]() + increment);
this[`${otherPanel}PanelDate`] = temp;
}
},
showYearPicker (panel) {

View file

@ -150,7 +150,8 @@
watch: {
value (newVal) {
this.dates = newVal;
this.panelDate = this.startDate || (this.multiple ? this.dates[this.dates.length - 1] : this.dates[0]) || new Date();
const panelDate = this.multiple ? this.dates[this.dates.length - 1] : (this.startDate || this.dates[0]);
this.panelDate = panelDate || new Date();
},
currentView (currentView) {
this.$emit('on-selection-mode-change', currentView);
@ -170,7 +171,7 @@
const isDifferentYear = date.getFullYear() !== this.panelDate.getFullYear();
const isDifferentMonth = isDifferentYear || date.getMonth() !== this.panelDate.getMonth();
if (isDifferentYear || isDifferentMonth){
this.panelDate = date;
if (!this.multiple) this.panelDate = date;
}
}
},

View file

@ -39,6 +39,7 @@
:placement="placement"
ref="drop"
:data-transfer="transfer"
:transfer="transfer"
v-transfer-dom>
<div>
<component
@ -173,7 +174,7 @@
return oneOf(value, ['small', 'large', 'default']);
},
default () {
return this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
return !this.$IVIEW || this.$IVIEW.size === '' ? 'default' : this.$IVIEW.size;
}
},
placeholder: {
@ -189,7 +190,7 @@
transfer: {
type: Boolean,
default () {
return this.$IVIEW.transfer === '' ? false : this.$IVIEW.transfer;
return !this.$IVIEW || this.$IVIEW.transfer === '' ? false : this.$IVIEW.transfer;
}
},
name: {
@ -318,7 +319,9 @@
if (this.readonly) return;
this.isFocused = true;
if (e && e.type === 'focus') return; // just focus, don't open yet
if(!this.disabled){
this.visible = true;
}
},
handleBlur (e) {
if (this.internalFocus){
@ -653,6 +656,7 @@
const timeStamps = allDates.map(date => date.getTime()).filter((ts, i, arr) => arr.indexOf(ts) === i && i !== indexOfPickedDate); // filter away duplicates
this.internalValue = timeStamps.map(ts => new Date(ts));
} else {
dates = this.parseDate(dates);
this.internalValue = Array.isArray(dates) ? dates : [dates];
}

View file

@ -174,7 +174,10 @@ const RANGE_PARSER = function(text, format) {
const range1 = array[0];
const range2 = array[1];
return [parseDate(range1, format), parseDate(range2, format)];
return [
range1 instanceof Date ? range1 : parseDate(range1, format),
range2 instanceof Date ? range2 : parseDate(range2, format),
];
}
return [];
};

View file

@ -0,0 +1,223 @@
<template>
<div v-transfer-dom :data-transfer="transfer">
<transition name="fade">
<div :class="maskClasses" :style="maskStyle" v-show="visible" v-if="mask" @click="handleMask"></div>
</transition>
<div :class="wrapClasses" @click="handleWrapClick">
<transition :name="'move-' + placement">
<div :class="classes" :style="mainStyles" v-show="visible">
<div :class="contentClasses" ref="content">
<a class="ivu-drawer-close" v-if="closable" @click="close">
<slot name="close">
<Icon type="ios-close"></Icon>
</slot>
</a>
<div :class="[prefixCls + '-header']" v-if="showHead"><slot name="header"><div :class="[prefixCls + '-header-inner']">{{ title }}</div></slot></div>
<div :class="[prefixCls + '-body']" :style="styles"><slot></slot></div>
</div>
</div>
</transition>
</div>
</div>
</template>
<script>
import Icon from '../icon';
import { oneOf } from '../../utils/assist';
import TransferDom from '../../directives/transfer-dom';
import Emitter from '../../mixins/emitter';
import ScrollbarMixins from '../modal/mixins-scrollbar';
const prefixCls = 'ivu-drawer';
export default {
name: 'Drawer',
mixins: [ Emitter, ScrollbarMixins ],
components: { Icon },
directives: { TransferDom },
props: {
value: {
type: Boolean,
default: false
},
title: {
type: String
},
width: {
type: [Number, String],
default: 256
},
closable: {
type: Boolean,
default: true
},
maskClosable: {
type: Boolean,
default: true
},
mask: {
type: Boolean,
default: true
},
maskStyle: {
type: Object
},
styles: {
type: Object
},
scrollable: {
type: Boolean,
default: false
},
placement: {
validator (value) {
return oneOf(value, ['left', 'right']);
},
default: 'right'
},
zIndex: {
type: Number,
default: 1000
},
transfer: {
type: Boolean,
default () {
return !this.$IVIEW || this.$IVIEW.transfer === '' ? true : this.$IVIEW.transfer;
}
},
className: {
type: String
},
inner: {
type: Boolean,
default: false
}
},
data () {
return {
prefixCls: prefixCls,
visible: this.value,
wrapShow: false,
showHead: true,
};
},
computed: {
wrapClasses () {
return [
`${prefixCls}-wrap`,
{
[`${prefixCls}-hidden`]: !this.wrapShow,
[`${this.className}`]: !!this.className,
[`${prefixCls}-no-mask`]: !this.mask,
[`${prefixCls}-wrap-inner`]: this.inner
}
];
},
mainStyles () {
let style = {};
const width = parseInt(this.width);
const styleWidth = {
width: width <= 100 ? `${width}%` : `${width}px`
};
Object.assign(style, styleWidth);
return style;
},
contentClasses () {
return [
`${prefixCls}-content`,
{
[`${prefixCls}-content-no-mask`]: !this.mask
}
];
},
classes () {
return [
`${prefixCls}`,
`${prefixCls}-${this.placement}`,
{
[`${prefixCls}-no-header`]: !this.showHead,
[`${prefixCls}-inner`]: this.inner
}
];
},
maskClasses () {
return [
`${prefixCls}-mask`,
{
[`${prefixCls}-mask-inner`]: this.inner
}
];
}
},
methods: {
close () {
this.visible = false;
this.$emit('input', false);
this.$emit('on-close');
},
handleMask () {
if (this.maskClosable && this.mask) {
this.close();
}
},
handleWrapClick (event) {
// use indexOf,do not use === ,because ivu-modal-wrap can have other custom className
const className = event.target.getAttribute('class');
if (className && className.indexOf(`${prefixCls}-wrap`) > -1) this.handleMask();
},
},
mounted () {
if (this.visible) {
this.wrapShow = true;
}
let showHead = true;
if (this.$slots.header === undefined && !this.title) {
showHead = false;
}
this.showHead = showHead;
},
beforeDestroy () {
this.removeScrollEffect();
},
watch: {
value (val) {
this.visible = val;
},
visible (val) {
if (val === false) {
this.timer = setTimeout(() => {
this.wrapShow = false;
this.removeScrollEffect();
}, 300);
} else {
if (this.timer) clearTimeout(this.timer);
this.wrapShow = true;
if (!this.scrollable) {
this.addScrollEffect();
}
}
this.broadcast('Table', 'on-visible-change', val);
this.broadcast('Slider', 'on-visible-change', val); // #2852
this.$emit('on-visible-change', val);
},
scrollable (val) {
if (!val) {
this.addScrollEffect();
} else {
this.removeScrollEffect();
}
},
title (val) {
if (this.$slots.header === undefined) {
this.showHead = !!val;
}
}
}
};
</script>

View file

@ -0,0 +1,3 @@
import Drawer from './drawer.vue';
export default Drawer;

View file

@ -14,6 +14,7 @@
@mouseenter.native="handleMouseenter"
@mouseleave.native="handleMouseleave"
:data-transfer="transfer"
:transfer="transfer"
v-transfer-dom><slot name="list"></slot></Drop>
</transition>
</div>
@ -50,7 +51,7 @@
transfer: {
type: Boolean,
default () {
return this.$IVIEW.transfer === '' ? false : this.$IVIEW.transfer;
return !this.$IVIEW || this.$IVIEW.transfer === '' ? false : this.$IVIEW.transfer;
}
}
},

View file

@ -90,6 +90,9 @@
},
validateStatus (val) {
this.validateState = val;
},
rules (){
this.setRules();
}
},
inject: ['form'],
@ -127,22 +130,36 @@
},
labelStyles () {
let style = {};
const labelWidth = this.labelWidth || this.form.labelWidth;
if (labelWidth) {
const labelWidth = this.labelWidth === 0 || this.labelWidth ? this.labelWidth : this.form.labelWidth;
if (labelWidth || labelWidth === 0) {
style.width = `${labelWidth}px`;
}
return style;
},
contentStyles () {
let style = {};
const labelWidth = this.labelWidth || this.form.labelWidth;
if (labelWidth) {
const labelWidth = this.labelWidth === 0 || this.labelWidth ? this.labelWidth : this.form.labelWidth;
if (labelWidth || labelWidth === 0) {
style.marginLeft = `${labelWidth}px`;
}
return style;
}
},
methods: {
setRules() {
let rules = this.getRules();
if (rules.length) {
rules.every((rule) => {
this.isRequired = rule.required;
});
this.$off('on-form-blur', this.onFieldBlur);
this.$off('on-form-change', this.onFieldChange);
this.$on('on-form-blur', this.onFieldBlur);
this.$on('on-form-change', this.onFieldChange);
}
},
getRules () {
let formRules = this.form.rules;
const selfRules = this.rules;
@ -229,18 +246,7 @@
value: this.fieldValue
});
let rules = this.getRules();
if (rules.length) {
rules.every(rule => {
if (rule.required) {
this.isRequired = true;
return false;
}
});
this.$on('on-form-blur', this.onFieldBlur);
this.$on('on-form-change', this.onFieldChange);
}
this.setRules();
}
},
beforeDestroy () {

Some files were not shown because too many files have changed in this diff Show more