Merge branch 'master' into feat-1.4.0

# Conflicts:
#	components/table/interface.js
#	components/vc-upload/demo/simple.jsx
pull/1040/head
tangjinzhou 2019-06-24 21:47:23 +08:00
commit adbd82b910
35 changed files with 139 additions and 60 deletions

View File

@ -7,3 +7,4 @@ es/
lib/ lib/
_site/ _site/
dist/ dist/
package.json

8
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,8 @@
# These are supported funding model platforms
github: [tangjinzhou]
patreon: # Replace with a single Patreon username
open_collective: ant-design-vue
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
custom: # Replace with a single custom sponsorship URL

View File

@ -10,6 +10,24 @@
--- ---
## 1.3.10
`2019-06-11`
- ๐Ÿž Remove useless `module.export` of package. [#850](https://github.com/vueComponent/ant-design-vue/issues/850)
## 1.3.9
`2019-05-26`
- ๐Ÿž Fix `TreeSelect` without `dataRef` [#712](https://github.com/vueComponent/ant-design-vue/issues/712)
- ๐ŸŒŸ `Tooltip` add `destroyTooltipOnHide` to identify whether to destroy tooltip after hiding [#727](https://github.com/vueComponent/ant-design-vue/issues/727)
- ๐Ÿž Fix `Avatar` does not update the problem when setting `src` dynamically [#731](https://github.com/vueComponent/ant-design-vue/issues/731)
- ๐Ÿž Fix `LocaleProvider` change `moment` language does not work [28b7a6](https://github.com/vueComponent/ant-design-vue/commit/28b7a68dc48a0a994e98063d462b99380e3ee547)
- ๐ŸŒŸ `Modal.confirm` add `closable` configuration [#798](https://github.com/vueComponent/ant-design-vue/pull/798)
- ๐Ÿž Fixed a problem when `Select` custom `dropdownRender` was not automatically closed [#644](https://github.com/vueComponent/ant-design-vue/issues/644)
- ๐Ÿž Fix the problem of removing Dom error under ie9, no need to introduce polyfill separately [#705](https://github.com/vueComponent/ant-design-vue/issues/705)
- ๐Ÿž Fix `Input.Search` repeat mount id problem [#726](https://github.com/vueComponent/ant-design-vue/issues/726)
- ๐Ÿž Fix `Table` does not work when customizing expandIcon using function form [#751](https://github.com/vueComponent/ant-design-vue/issues/751)
- ๐Ÿž Fix `Icon` `extraCommonProps` property does not work [#737](https://github.com/vueComponent/ant-design-vue/issues/737)
- ๐Ÿž Fix `DirectoryTree` expandAction="doubleclick" does not work [#745](https://github.com/vueComponent/ant-design-vue/issues/745)
## 1.3.8 ## 1.3.8
`2019-04-04` `2019-04-04`
- ๐Ÿž Fix `Table` unclickable problem under IE [#504](https://github.com/vueComponent/ant-design-vue/issues/504) - ๐Ÿž Fix `Table` unclickable problem under IE [#504](https://github.com/vueComponent/ant-design-vue/issues/504)

View File

@ -10,6 +10,24 @@
--- ---
## 1.3.10
`2019-06-11`
- ๐Ÿž ็งป้™คๆ‰“ๅŒ…ๅŽๅคšไฝ™็š„ `module.export` [#850](https://github.com/vueComponent/ant-design-vue/issues/850)
## 1.3.9
`2019-05-26`
- ๐Ÿž ไฟฎๅค `TreeSelect` ๆฒกๆœ‰ `dataRef` ็š„้—ฎ้ข˜ [#712](https://github.com/vueComponent/ant-design-vue/issues/712)
- ๐ŸŒŸ `Tooltip` ๆทปๅŠ  `destroyTooltipOnHide` ็”จไบŽๆ ‡่ฏ†้š่—ๅŽๆ˜ฏๅฆ้”€ๆฏtooltip [#727](https://github.com/vueComponent/ant-design-vue/issues/727)
- ๐Ÿž ไฟฎๅค `Avatar` ๅŠจๆ€่ฎพ็ฝฎ src ๆ—ถไธๆ›ดๆ–ฐ้—ฎ้ข˜ [#731](https://github.com/vueComponent/ant-design-vue/issues/731)
- ๐Ÿž ไฟฎๅค `LocaleProvider` ๆ›ดๆ”น `moment` ่ฏญ่จ€ไธ็”Ÿๆ•ˆ้—ฎ้ข˜ [28b7a6](https://github.com/vueComponent/ant-design-vue/commit/28b7a68dc48a0a994e98063d462b99380e3ee547)
- ๐ŸŒŸ `Modal.confirm` ๆ–ฐๅขž `closable` ้…็ฝฎ [#798](https://github.com/vueComponent/ant-design-vue/pull/798)
- ๐Ÿž ไฟฎๅค `Select` ่‡ชๅฎšไน‰ `dropdownRender` ๆ—ถ๏ผŒๆฒก่ƒฝ่‡ชๅŠจๅ…ณ้—ญ็š„้—ฎ้ข˜ [#644](https://github.com/vueComponent/ant-design-vue/issues/644)
- ๐Ÿž ไฟฎๅคๅœจ ie9 ไธ‹็งป้™ค Dom ๆŠฅ้”™้—ฎ้ข˜๏ผŒๆ— ้œ€ๅ•็‹ฌๅผ•ๅ…ฅ polyfill [#705](https://github.com/vueComponent/ant-design-vue/issues/705)
- ๐Ÿž ไฟฎๅค `Input.Search` ้‡ๅคๆŒ‚่ฝฝ id ้—ฎ้ข˜ [#726](https://github.com/vueComponent/ant-design-vue/issues/726)
- ๐Ÿž ไฟฎๅค `Table` ไฝฟ็”จๅ‡ฝๆ•ฐๅฝขๅผ่‡ชๅฎšไน‰ expandIcon ๆ—ถไธ็”Ÿๆ•ˆ้—ฎ้ข˜ [#751](https://github.com/vueComponent/ant-design-vue/issues/751)
- ๐Ÿž ไฟฎๅค `Icon` extraCommonProps ๅฑžๆ€งไธ็”Ÿๆ•ˆ้—ฎ้ข˜ [#737](https://github.com/vueComponent/ant-design-vue/issues/737)
- ๐Ÿž ไฟฎๅค `DirectoryTree` expandAction="doubleclick" ไธ็”Ÿๆ•ˆ้—ฎ้ข˜ [#745](https://github.com/vueComponent/ant-design-vue/issues/745)
## 1.3.8 ## 1.3.8
`2019-04-04` `2019-04-04`
- ๐Ÿž ไฟฎๅค `Table` ๅœจ IE ไธ‹ไธๅฏ็‚นๅ‡ป้—ฎ้ข˜ [#504](https://github.com/vueComponent/ant-design-vue/issues/504) - ๐Ÿž ไฟฎๅค `Table` ๅœจ IE ไธ‹ไธๅฏ็‚นๅ‡ป้—ฎ้ข˜ [#504](https://github.com/vueComponent/ant-design-vue/issues/504)

View File

@ -74,8 +74,6 @@ function babelify(js, modules) {
delete babelConfig.cacheDirectory; delete babelConfig.cacheDirectory;
if (modules === false) { if (modules === false) {
babelConfig.plugins.push(replaceLib); babelConfig.plugins.push(replaceLib);
} else {
babelConfig.plugins.push(require.resolve('babel-plugin-add-module-exports'));
} }
let stream = js.pipe(babel(babelConfig)).pipe( let stream = js.pipe(babel(babelConfig)).pipe(
through2.obj(function z(file, encoding, next) { through2.obj(function z(file, encoding, next) {

View File

@ -2,10 +2,5 @@ const rucksack = require('rucksack-css');
const autoprefixer = require('autoprefixer'); const autoprefixer = require('autoprefixer');
module.exports = { module.exports = {
plugins: [ plugins: [rucksack(), autoprefixer()],
rucksack(),
autoprefixer({
browsers: ['last 2 versions', 'Firefox ESR', '> 1%', 'ie >= 9', 'iOS >= 8', 'Android >= 4'],
}),
],
}; };

View File

@ -26,7 +26,6 @@ Add or remove form items dynamically.
`names[${k}]`, `names[${k}]`,
{ {
validateTrigger: ['change', 'blur'], validateTrigger: ['change', 'blur'],
preserve: true,
rules: [{ rules: [{
required: true, required: true,
whitespace: true, whitespace: true,

View File

@ -151,7 +151,7 @@ validateFields(['field1', 'field2'], options, (errors, values) => {
| --- | --- | --- | --- | | --- | --- | --- | --- |
| id | ๅฟ…ๅกซ่พ“ๅ…ฅๆŽงไปถๅ”ฏไธ€ๆ ‡ๅฟ—ใ€‚ๆ”ฏๆŒๅตŒๅฅ—ๅผ็š„ๅ†™ๆณ•ใ€‚ | string | | | id | ๅฟ…ๅกซ่พ“ๅ…ฅๆŽงไปถๅ”ฏไธ€ๆ ‡ๅฟ—ใ€‚ๆ”ฏๆŒๅตŒๅฅ—ๅผ็š„ๅ†™ๆณ•ใ€‚ | string | |
| options.getValueFromEvent | ๅฏไปฅๆŠŠ onChange ็š„ๅ‚ๆ•ฐ๏ผˆๅฆ‚ event๏ผ‰่ฝฌๅŒ–ไธบๆŽงไปถ็š„ๅ€ผ | function(..args) | [reference](https://github.com/react-component/form#option-object) | | options.getValueFromEvent | ๅฏไปฅๆŠŠ onChange ็š„ๅ‚ๆ•ฐ๏ผˆๅฆ‚ event๏ผ‰่ฝฌๅŒ–ไธบๆŽงไปถ็š„ๅ€ผ | function(..args) | [reference](https://github.com/react-component/form#option-object) |
| options.initialValue | ๅญ่Š‚็‚น็š„ๅˆๅง‹ๅ€ผ๏ผŒ็ฑปๅž‹ใ€ๅฏ้€‰ๅ€ผๅ‡็”ฑๅญ่Š‚็‚นๅ†ณๅฎš(ๆณจๆ„๏ผš็”ฑไบŽๅ†…้ƒจๆ ก้ชŒๆ—ถไฝฟ็”จ `===` ๅˆคๆ–ญๆ˜ฏๅฆๅ˜ๅŒ–๏ผŒๅปบ่ฎฎไฝฟ็”จๅ˜้‡็ผ“ๅญ˜ๆ‰€้œ€่ฎพ็ฝฎ็š„ๅ€ผ่€Œ้ž็›ดๆŽฅไฝฟ็”จๅญ—้ข้‡)) | | | | options.initialValue | ๅญ่Š‚็‚น็š„ๅˆๅง‹ๅ€ผ๏ผŒ็ฑปๅž‹ใ€ๅฏ้€‰ๅ€ผๅ‡็”ฑๅญ่Š‚็‚นๅ†ณๅฎš(ๆณจๆ„๏ผš็”ฑไบŽๅ†…้ƒจๆ ก้ชŒๆ—ถไฝฟ็”จ `===` ๅˆคๆ–ญๆ˜ฏๅฆๅ˜ๅŒ–๏ผŒๅปบ่ฎฎไฝฟ็”จๅ˜้‡็ผ“ๅญ˜ๆ‰€้œ€่ฎพ็ฝฎ็š„ๅ€ผ่€Œ้ž็›ดๆŽฅไฝฟ็”จๅญ—้ข้‡) | | |
| options.normalize | ่ฝฌๆข้ป˜่ฎค็š„ value ็ป™ๆŽงไปถ๏ผŒ[ไธ€ไธช้€‰ๆ‹ฉๅ…จ้ƒจ็š„ไพ‹ๅญ](https://codesandbox.io/s/kw4l2vqqmv) | function(value, prevValue, allValues): any | - | | options.normalize | ่ฝฌๆข้ป˜่ฎค็š„ value ็ป™ๆŽงไปถ๏ผŒ[ไธ€ไธช้€‰ๆ‹ฉๅ…จ้ƒจ็š„ไพ‹ๅญ](https://codesandbox.io/s/kw4l2vqqmv) | function(value, prevValue, allValues): any | - |
| options.preserve | ๅณไพฟๅญ—ๆฎตไธๅ†ไฝฟ็”จ๏ผŒไนŸไฟ็•™่ฏฅๅญ—ๆฎต็š„ๅ€ผ | boolean | false | | options.preserve | ๅณไพฟๅญ—ๆฎตไธๅ†ไฝฟ็”จ๏ผŒไนŸไฟ็•™่ฏฅๅญ—ๆฎต็š„ๅ€ผ | boolean | false |
| options.rules | ๆ ก้ชŒ่ง„ๅˆ™๏ผŒๅ‚่€ƒไธ‹ๆ–นๆ–‡ๆกฃ | object\[] | | | options.rules | ๆ ก้ชŒ่ง„ๅˆ™๏ผŒๅ‚่€ƒไธ‹ๆ–นๆ–‡ๆกฃ | object\[] | |

View File

@ -1,9 +1,10 @@
import Icon from './index'; import Icon from './index';
import { mergeProps } from '../_util/props-util';
const customCache = new Set(); const customCache = new Set();
export default function create(options) { export default function create(options) {
const { scriptUrl } = options; const { scriptUrl, extraCommonProps = {} } = options;
/** /**
* DOM API required. * DOM API required.
@ -43,7 +44,8 @@ export default function create(options) {
if (children) { if (children) {
content = children; content = children;
} }
return <Icon {...{ ...data, props: restProps, on: listeners }}>{content}</Icon>; const iconProps = mergeProps(extraCommonProps, data, { props: restProps, on: listeners });
return <Icon {...iconProps}>{content}</Icon>;
}, },
}; };
return Iconfont; return Iconfont;

View File

@ -73,7 +73,7 @@ The following options are available:
| Property | Description | Type | Default | | Property | Description | Type | Default |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| scriptUrl | The URL generated by [iconfont.cn](http://iconfont.cn/) project. | string | - | | scriptUrl | The URL generated by [iconfont.cn](http://iconfont.cn/) project. | string | - |
| extraCommonProps | Define extra properties to the component | `{ [key: string]: any }` | {} | | extraCommonProps | Define extra properties to the component | `{ class, attrs, props, on, style }` | {} |
The property `scriptUrl` should be set to import the SVG sprite symbols. The property `scriptUrl` should be set to import the SVG sprite symbols.

View File

@ -71,7 +71,7 @@ new Vue({
| ๅ‚ๆ•ฐ | ่ฏดๆ˜Ž | ็ฑปๅž‹ | ้ป˜่ฎคๅ€ผ | | ๅ‚ๆ•ฐ | ่ฏดๆ˜Ž | ็ฑปๅž‹ | ้ป˜่ฎคๅ€ผ |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| scriptUrl | [iconfont.cn](http://iconfont.cn/) ้กน็›ฎๅœจ็บฟ็”Ÿๆˆ็š„ `js` ๅœฐๅ€ | string | - | | scriptUrl | [iconfont.cn](http://iconfont.cn/) ้กน็›ฎๅœจ็บฟ็”Ÿๆˆ็š„ `js` ๅœฐๅ€ | string | - |
| extraCommonProps | ็ป™ๆ‰€ๆœ‰็š„ `svg` ๅ›พๆ ‡ `<Icon />` ็ป„ไปถ่ฎพ็ฝฎ้ขๅค–็š„ๅฑžๆ€ง | `{ [key: string]: any }` | {} | | extraCommonProps | ็ป™ๆ‰€ๆœ‰็š„ `svg` ๅ›พๆ ‡ `<Icon />` ็ป„ไปถ่ฎพ็ฝฎ้ขๅค–็š„ๅฑžๆ€ง | `{ class, attrs, props, on, style }` | {} |
ๅœจ `scriptUrl` ้ƒฝ่ฎพ็ฝฎๆœ‰ๆ•ˆ็š„ๆƒ…ๅ†ตไธ‹๏ผŒ็ป„ไปถๅœจๆธฒๆŸ“ๅ‰ไผš่‡ชๅŠจๅผ•ๅ…ฅ [iconfont.cn](http://iconfont.cn/) ้กน็›ฎไธญ็š„ๅ›พๆ ‡็ฌฆๅท้›†๏ผŒๆ— ้œ€ๆ‰‹ๅŠจๅผ•ๅ…ฅใ€‚ ๅœจ `scriptUrl` ้ƒฝ่ฎพ็ฝฎๆœ‰ๆ•ˆ็š„ๆƒ…ๅ†ตไธ‹๏ผŒ็ป„ไปถๅœจๆธฒๆŸ“ๅ‰ไผš่‡ชๅŠจๅผ•ๅ…ฅ [iconfont.cn](http://iconfont.cn/) ้กน็›ฎไธญ็š„ๅ›พๆ ‡็ฌฆๅท้›†๏ผŒๆ— ้œ€ๆ‰‹ๅŠจๅผ•ๅ…ฅใ€‚

View File

@ -10,6 +10,7 @@ import { ConfigConsumerProps } from '../config-provider';
export default { export default {
name: 'AInputSearch', name: 'AInputSearch',
inheritAttrs: false,
model: { model: {
prop: 'value', prop: 'value',
event: 'change.value', event: 'change.value',

View File

@ -128,6 +128,7 @@ export const TableProps = {
childrenColumnName: PropTypes.oneOfType([PropTypes.array, PropTypes.string]), childrenColumnName: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),
bodyStyle: PropTypes.any, bodyStyle: PropTypes.any,
sortDirections: PropTypes.array, sortDirections: PropTypes.array,
expandIcon: PropTypes.func,
// className?: PropTypes.string, // className?: PropTypes.string,
// style?: React.CSSProperties; // style?: React.CSSProperties;
// children?: React.ReactNode; // children?: React.ReactNode;

View File

@ -97,7 +97,7 @@ describe('Upload List', () => {
it('should be uploading when upload a file', done => { it('should be uploading when upload a file', done => {
const props = { const props = {
propsData: { propsData: {
action: 'http://jsonplaceholder.typicode.com/posts/', action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',
customRequest: successRequest, customRequest: successRequest,
}, },
listeners: { listeners: {
@ -133,7 +133,7 @@ describe('Upload List', () => {
it('handle error', done => { it('handle error', done => {
const props = { const props = {
propsData: { propsData: {
action: 'http://jsonplaceholder.typicode.com/posts/', action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',
customRequest: errorRequest, customRequest: errorRequest,
}, },
listeners: { listeners: {
@ -166,7 +166,7 @@ describe('Upload List', () => {
const handleChange = jest.fn(); const handleChange = jest.fn();
const props = { const props = {
propsData: { propsData: {
action: 'http://jsonplaceholder.typicode.com/posts/', action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',
listType: 'picture', listType: 'picture',
defaultFileList: fileList, defaultFileList: fileList,
beforeUpload: () => false, beforeUpload: () => false,

View File

@ -17,7 +17,7 @@ The return value of function `beforeUpload` can be a Promise to check asynchrono
listType="picture-card" listType="picture-card"
class="avatar-uploader" class="avatar-uploader"
:showUploadList="false" :showUploadList="false"
action="//jsonplaceholder.typicode.com/posts/" action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
:beforeUpload="beforeUpload" :beforeUpload="beforeUpload"
@change="handleChange" @change="handleChange"
> >

View File

@ -10,7 +10,7 @@ Classic mode. File selection dialog pops up when upload button is clicked.
```html ```html
<template> <template>
<a-upload name="file" :multiple="true" action="//jsonplaceholder.typicode.com/posts/" :headers="headers" @change="handleChange"> <a-upload name="file" :multiple="true" action="https://www.mocky.io/v2/5cc8019d300000980a055e76" :headers="headers" @change="handleChange">
<a-button> <a-button>
<a-icon type="upload" /> Click to Upload <a-icon type="upload" /> Click to Upload
</a-button> </a-button>

View File

@ -10,7 +10,7 @@ Use `defaultFileList` for uploaded files when page init.
```html ```html
<template> <template>
<a-upload action="//jsonplaceholder.typicode.com/posts/" :defaultFileList="defaultFileList"> <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76" :defaultFileList="defaultFileList">
<a-button> <a-button>
<a-icon type="upload" /> Upload <a-icon type="upload" /> Upload
</a-button> </a-button>

View File

@ -10,7 +10,7 @@ You can select and upload a whole directory.
```html ```html
<template> <template>
<a-upload action="//jsonplaceholder.typicode.com/posts/" directory> <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76" directory>
<a-button> <a-button>
<a-icon type="upload" /> Upload Directory <a-icon type="upload" /> Upload Directory
</a-button> </a-button>

View File

@ -11,7 +11,7 @@ Classic mode. File selection dialog pops up when upload button is clicked.
```html ```html
<template> <template>
<a-upload-dragger name="file" :multiple="true" action="//jsonplaceholder.typicode.com/posts/" @change="handleChange"> <a-upload-dragger name="file" :multiple="true" action="https://www.mocky.io/v2/5cc8019d300000980a055e76" @change="handleChange">
<p class="ant-upload-drag-icon"> <p class="ant-upload-drag-icon">
<a-icon type="inbox" /> <a-icon type="inbox" />
</p> </p>

View File

@ -16,7 +16,7 @@ You can gain full control over filelist by configuring `fileList`. You can accom
```html ```html
<template> <template>
<a-upload action="//jsonplaceholder.typicode.com/posts/" :multiple="true" :fileList="fileList" @change="handleChange"> <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76" :multiple="true" :fileList="fileList" @change="handleChange">
<a-button> <a-button>
<a-icon type="upload" /> Upload <a-icon type="upload" /> Upload
</a-button> </a-button>
@ -36,7 +36,7 @@ export default {
}, },
methods: { methods: {
handleChange(info) { handleChange(info) {
let fileList = info.fileList; let fileList = [...info.fileList];
// 1. Limit the number of uploaded files // 1. Limit the number of uploaded files
// Only to show two recent uploaded files, and old ones will be replaced by the new // Only to show two recent uploaded files, and old ones will be replaced by the new
@ -51,14 +51,6 @@ export default {
return file; return file;
}); });
// 3. filter successfully uploaded files according to response from server
fileList = fileList.filter((file) => {
if (file.response) {
return file.response.status === 'success';
}
return false;
});
this.fileList = fileList this.fileList = fileList
}, },
}, },

View File

@ -12,7 +12,7 @@ After users upload picture, the thumbnail will be shown in list. The upload butt
<template> <template>
<div class="clearfix"> <div class="clearfix">
<a-upload <a-upload
action="//jsonplaceholder.typicode.com/posts/" action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
listType="picture-card" listType="picture-card"
:fileList="fileList" :fileList="fileList"
@preview="handlePreview" @preview="handlePreview"

View File

@ -12,7 +12,7 @@ If uploaded file is a picture, the thumbnail can be shown. `IE8/9` do not suppor
<template> <template>
<div> <div>
<a-upload <a-upload
action="//jsonplaceholder.typicode.com/posts/" action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
listType="picture" listType="picture"
:defaultFileList="fileList" :defaultFileList="fileList"
> >
@ -23,7 +23,7 @@ If uploaded file is a picture, the thumbnail can be shown. `IE8/9` do not suppor
<br /> <br />
<br /> <br />
<a-upload <a-upload
action="//jsonplaceholder.typicode.com/posts/" action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
listType="picture" listType="picture"
:defaultFileList="fileList" :defaultFileList="fileList"
class="upload-list-inline" class="upload-list-inline"

View File

@ -61,7 +61,7 @@ export default {
// You can use any AJAX library you like // You can use any AJAX library you like
reqwest({ reqwest({
url: '//jsonplaceholder.typicode.com/posts/', url: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',
method: 'post', method: 'post',
processData: false, processData: false,
data: formData, data: formData,

View File

@ -1486,9 +1486,7 @@ const Select = {
this.$emit('focus'); this.$emit('focus');
}, },
selectionRefBlur() { selectionRefBlur() {
this._focused = false; this.inputBlur();
this.updateFocusClassName();
this.$emit('blur');
}, },
}, },

View File

@ -435,7 +435,7 @@ const TreeNode = {
onMouseleave={this.onMouseLeave} onMouseleave={this.onMouseLeave}
onContextmenu={this.onContextMenu} onContextmenu={this.onContextMenu}
onClick={this.onSelectorClick} onClick={this.onSelectorClick}
onDoubleclick={this.onSelectorDoubleClick} onDblclick={this.onSelectorDoubleClick}
onDragstart={draggable ? this.onDragStart : noop} onDragstart={draggable ? this.onDragStart : noop}
> >
{$icon} {$icon}

View File

@ -49,7 +49,11 @@ export default {
}); });
}, },
beforeDestroy() { beforeDestroy() {
this.$el.remove(); if (this.$el.parentNode) {
this.$el.parentNode.removeChild(this.$el);
} else if (this.$el.remove) {
this.$el.remove();
}
}, },
methods: { methods: {
onAlign(popupDomNode, align) { onAlign(popupDomNode, align) {

View File

@ -7,7 +7,7 @@ export default {
action: () => { action: () => {
return new Promise(resolve => { return new Promise(resolve => {
setTimeout(() => { setTimeout(() => {
resolve('//jsonplaceholder.typicode.com/posts/'); resolve('https://www.mocky.io/v2/5cc8019d300000980a055e76');
}, 2000); }, 2000);
}); });
}, },
@ -23,7 +23,9 @@ export default {
console.log('error', err); console.log('error', err);
}, },
}, },
style: { margin: '100px' }, style: {
margin: '100px',
},
}; };
return ( return (
<Upload {...uploaderProps}> <Upload {...uploaderProps}>

View File

@ -4,7 +4,7 @@ export default {
render() { render() {
const uploaderProps = { const uploaderProps = {
props: { props: {
action: '//jsonplaceholder.typicode.com/posts/', action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',
multiple: true, multiple: true,
beforeUpload(file, fileList) { beforeUpload(file, fileList) {
console.log(file, fileList); console.log(file, fileList);

View File

@ -5,9 +5,12 @@ export default {
render() { render() {
const uploaderProps = { const uploaderProps = {
props: { props: {
action: '//jsonplaceholder.typicode.com/posts/', action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',
multiple: false, multiple: false,
data: { a: 1, b: 2 }, data: {
a: 1,
b: 2,
},
headers: { headers: {
Authorization: '$prefix $token', Authorization: '$prefix $token',
}, },
@ -36,7 +39,12 @@ export default {
withCredentials, withCredentials,
headers, headers,
onUploadProgress: ({ total, loaded }) => { onUploadProgress: ({ total, loaded }) => {
onProgress({ percent: Math.round((loaded / total) * 100).toFixed(2) }, file); onProgress(
{
percent: Math.round((loaded / total) * 100).toFixed(2),
},
file,
);
}, },
}) })
.then(({ data: response }) => { .then(({ data: response }) => {

View File

@ -4,8 +4,11 @@ export default {
render() { render() {
const uploaderProps = { const uploaderProps = {
props: { props: {
action: '//jsonplaceholder.typicode.com/posts/', action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',
data: { a: 1, b: 2 }, data: {
a: 1,
b: 2,
},
headers: { headers: {
Authorization: 'xxxxxxx', Authorization: 'xxxxxxx',
}, },
@ -28,7 +31,9 @@ export default {
console.log('error', err); console.log('error', err);
}, },
}, },
style: { margin: '100px' }, style: {
margin: '100px',
},
}; };
return ( return (
<Upload {...uploaderProps}> <Upload {...uploaderProps}>

View File

@ -4,7 +4,7 @@ export default {
render() { render() {
const uploaderProps = { const uploaderProps = {
props: { props: {
action: '//jsonplaceholder.typicode.com/posts/', action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',
type: 'drag', type: 'drag',
accept: '.png', accept: '.png',
beforeUpload(file) { beforeUpload(file) {
@ -29,7 +29,12 @@ export default {
alert('click'); alert('click');
}, },
}, },
style: { display: 'inline-block', width: '200px', height: '200px', background: '#eee' }, style: {
display: 'inline-block',
width: '200px',
height: '200px',
background: '#eee',
},
}; };
return <Upload {...uploaderProps} />; return <Upload {...uploaderProps} />;
}, },

View File

@ -2,9 +2,7 @@ import Upload from '../index';
export default { export default {
data() { data() {
return { return { destroyed: false };
destroyed: false,
};
}, },
methods: { methods: {
destroy() { destroy() {
@ -16,8 +14,11 @@ export default {
return null; return null;
} }
const propsObj = { const propsObj = {
action: '//jsonplaceholder.typicode.com/posts/', action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76',
data: { a: 1, b: 2 }, data: {
a: 1,
b: 2,
},
headers: { headers: {
Authorization: 'xxxxxxx', Authorization: 'xxxxxxx',
}, },

View File

@ -1,6 +1,6 @@
{ {
"name": "ant-design-vue", "name": "ant-design-vue",
"version": "1.3.8", "version": "1.3.10",
"title": "Ant Design Vue", "title": "Ant Design Vue",
"description": "An enterprise-class UI design language and Vue-based implementation", "description": "An enterprise-class UI design language and Vue-based implementation",
"keywords": [ "keywords": [
@ -67,7 +67,7 @@
"@vue/server-test-utils": "1.0.0-beta.16", "@vue/server-test-utils": "1.0.0-beta.16",
"@vue/test-utils": "1.0.0-beta.16", "@vue/test-utils": "1.0.0-beta.16",
"acorn": "^6.0.5", "acorn": "^6.0.5",
"autoprefixer": "^8.1.0", "autoprefixer": "^9.6.0",
"axios": "^0.18.0", "axios": "^0.18.0",
"babel-cli": "^6.26.0", "babel-cli": "^6.26.0",
"babel-core": "^6.26.0", "babel-core": "^6.26.0",
@ -75,7 +75,6 @@
"babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-jest": "^23.6.0", "babel-jest": "^23.6.0",
"babel-loader": "^7.1.2", "babel-loader": "^7.1.2",
"babel-plugin-add-module-exports": "^1.0.0",
"babel-plugin-import": "^1.1.1", "babel-plugin-import": "^1.1.1",
"babel-plugin-inline-import-data-uri": "^1.0.1", "babel-plugin-inline-import-data-uri": "^1.0.1",
"babel-plugin-istanbul": "^4.1.1", "babel-plugin-istanbul": "^4.1.1",

View File

@ -38,6 +38,23 @@
<div id="app"> <div id="app">
<router-view></router-view> <router-view></router-view>
</div> </div>
<!-- Hotjar Tracking Code for http://vue.ant.design -->
<script>
(function(h, o, t, j, a, r) {
h.hj = h.hj || function() {
(h.hj.q = h.hj.q || []).push(arguments)
};
h._hjSettings = {
hjid: 1359441,
hjsv: 6
};
a = o.getElementsByTagName('head')[0];
r = o.createElement('script');
r.async = 1;
r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv;
a.appendChild(r);
})(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv=');
</script>
</body> </body>
</html> </html>

View File

@ -95,6 +95,13 @@ export declare class TooltipCommon extends AntdComponent {
*/ */
visible: boolean; visible: boolean;
/**
* Whether to destroy tooltip on hide
* @default false
* @type boolean
*/
destroyTooltipOnHide: boolean;
/** /**
* this value will be merged into placement's config, please refer to the settings dom-align * this value will be merged into placement's config, please refer to the settings dom-align
* @type object * @type object