diff --git a/components/date-picker/RangePicker.jsx b/components/date-picker/RangePicker.jsx index 174f1d532..9f484a231 100644 --- a/components/date-picker/RangePicker.jsx +++ b/components/date-picker/RangePicker.jsx @@ -63,7 +63,10 @@ export default { allowClear: true, showToday: false, }), - + model: { + prop: 'value', + event: 'change', + }, data () { const value = this.value || this.defaultValue || [] if ( diff --git a/components/date-picker/WeekPicker.jsx b/components/date-picker/WeekPicker.jsx index 4e6288d56..ab1e8a32d 100644 --- a/components/date-picker/WeekPicker.jsx +++ b/components/date-picker/WeekPicker.jsx @@ -26,6 +26,10 @@ export default { }), name: 'AWeekPicker', mixins: [BaseMixin], + model: { + prop: 'value', + event: 'change', + }, data () { const value = this.value || this.defaultValue if (value && !interopDefault(moment).isMoment(value)) { diff --git a/components/date-picker/createPicker.js b/components/date-picker/createPicker.js index 7fe349e74..d9f3a8035 100644 --- a/components/date-picker/createPicker.js +++ b/components/date-picker/createPicker.js @@ -28,6 +28,10 @@ export default function createPicker (TheCalendar, props) { showToday: true, }), mixins: [BaseMixin], + model: { + prop: 'value', + event: 'change', + }, data () { const value = this.value || this.defaultValue if (value && !interopDefault(moment).isMoment(value)) { diff --git a/components/date-picker/demo/start-end.md b/components/date-picker/demo/start-end.md index ca1133e87..906f11f8f 100644 --- a/components/date-picker/demo/start-end.md +++ b/components/date-picker/demo/start-end.md @@ -20,18 +20,16 @@ When `RangePicker` does not satisfied your requirements, try to implement simila :disabledDate="disabledStartDate" showTime format="YYYY-MM-DD HH:mm:ss" - :value="startValue" + v-model="startValue" placeholder="Start" - @change="onStartChange" @openChange="handleStartOpenChange" /> <a-date-picker :disabledDate="disabledEndDate" showTime format="YYYY-MM-DD HH:mm:ss" - :value="endValue" placeholder="End" - @change="onEndChange" + v-model="endValue" :open="endOpen" @openChange="handleEndOpenChange" /> @@ -46,6 +44,14 @@ export default { endOpen: false, } }, + watch: { + startValue(val) { + console.log('startValue', val) + }, + endValue(val) { + console.log('endValue', val) + } + }, methods: { disabledStartDate (startValue) { const endValue = this.endValue; @@ -61,12 +67,6 @@ export default { } return startValue.valueOf() >= endValue.valueOf(); }, - onStartChange (value) { - this.startValue = value; - }, - onEndChange (value) { - this.endValue = value - }, handleStartOpenChange (open) { if (!open) { this.endOpen = true; diff --git a/components/date-picker/index.en-US.md b/components/date-picker/index.en-US.md index 6bfa577b4..a74dc01c2 100644 --- a/components/date-picker/index.en-US.md +++ b/components/date-picker/index.en-US.md @@ -27,7 +27,6 @@ The following APIs are shared by DatePicker, MonthPicker, RangePicker, WeekPicke | -------- | ----------- | ---- | ------- | | allowClear | Whether to show clear button | boolean | true | | autoFocus | get focus when component mounted | boolean | false | -| className | picker className | string | '' | | dateRender | custom rendering function for date cells by setting a scoped slot | slot="dateRender" slot-scope="current, today" | - | | disabled | determine whether the DatePicker is disabled | boolean | false | | disabledDate | specify the date that cannot be selected | (currentDate: moment) => boolean | - | @@ -62,7 +61,7 @@ The following APIs are shared by DatePicker, MonthPicker, RangePicker, WeekPicke | showTime | to provide an additional time selection | object\|boolean | [TimePicker Options](#/us/components/time-picker/API) | | showTime.defaultValue | to set default time of selected date | [moment](http://momentjs.com/) | moment() | | showToday | whether to show "Today" button | boolean | true | -| value | to set date | [moment](http://momentjs.com/) | - | +| value(v-model) | to set date | [moment](http://momentjs.com/) | - | ### DatePicker Events | Events Name | Description | Arguments | @@ -79,7 +78,7 @@ The following APIs are shared by DatePicker, MonthPicker, RangePicker, WeekPicke | format | to set the date format, refer to [moment.js](http://momentjs.com/) | string | "YYYY-MM" | | monthCellContentRender | Custom month cell content render method by setting a scoped slot | slot="monthCellContentRender" slot-scope="date, locale" | - | | renderExtraFooter | render extra footer in panel by setting a scoped slot | slot="renderExtraFooter" | - | -| value | to set date | [moment](http://momentjs.com/) | - | +| value(v-model) | to set date | [moment](http://momentjs.com/) | - | ### MonthPicker Events | Events Name | Description | Arguments | @@ -92,7 +91,7 @@ The following APIs are shared by DatePicker, MonthPicker, RangePicker, WeekPicke | -------- | ----------- | ---- | ------- | | defaultValue | to set default date | [moment](http://momentjs.com/) | - | | format | to set the date format, refer to [moment.js](http://momentjs.com/) | string | "YYYY-wo" | -| value | to set date | [moment](http://momentjs.com/) | - | +| value(v-model) | to set date | [moment](http://momentjs.com/) | - | ### WeekPicker Events | Events Name | Description | Arguments | @@ -110,7 +109,7 @@ The following APIs are shared by DatePicker, MonthPicker, RangePicker, WeekPicke | renderExtraFooter | render extra footer in panel by setting a scoped slot| slot="renderExtraFooter" | - | | showTime | to provide an additional time selection | object\|boolean | [TimePicker Options](#/us/components/time-picker/API) | | showTime.defaultValue | to set default time of selected date, [demo](https://ant.design/components/date-picker/#components-date-picker-demo-disabled-date) | [moment](http://momentjs.com/)\[] | [moment(), moment()] | -| value | to set date | \[[moment](http://momentjs.com/), [moment](http://momentjs.com/)] | - | +| value(v-model) | to set date | \[[moment](http://momentjs.com/), [moment](http://momentjs.com/)] | - | ### RangePicker Events | Events Name | Description | Arguments | diff --git a/components/date-picker/index.zh-CN.md b/components/date-picker/index.zh-CN.md index 2b9da7f98..2714170d2 100644 --- a/components/date-picker/index.zh-CN.md +++ b/components/date-picker/index.zh-CN.md @@ -27,7 +27,6 @@ | --- | --- | --- | --- | | allowClear | 是否显示清除按钮 | boolean | true | | autoFocus | 自动获取焦点 | boolean | false | -| className | 选择器 className | string | '' | | dateRender | 作用域插槽,自定义日期单元格的内容 | slot="dateRender" slot-scope="current, today" | - | | disabled | 禁用 | boolean | false | | disabledDate | 不可选择的日期 | (currentDate: moment) => boolean | 无 | @@ -63,7 +62,7 @@ | showTime | 增加时间选择功能 | Object\|boolean | [TimePicker Options](#/cn/components/time-picker/API) | | showTime.defaultValue | 设置用户选择日期时默认的时分秒 | [moment](http://momentjs.com/) | moment() | | showToday | 是否展示“今天”按钮 | boolean | true | -| value | 日期 | [moment](http://momentjs.com/) | 无 | +| value(v-model) | 日期 | [moment](http://momentjs.com/) | 无 | ### DatePicker事件 @@ -80,7 +79,7 @@ | format | 展示的日期格式,配置参考 [moment.js](http://momentjs.com/) | string | "YYYY-MM" | | monthCellContentRender | 自定义的月份内容渲染方法 | slot="monthCellContentRender" slot-scope="date, locale" | - | | renderExtraFooter | 在面板中添加额外的页脚 | slot="renderExtraFooter" | - | -| value | 日期 | [moment](http://momentjs.com/) | 无 | +| value(v-model) | 日期 | [moment](http://momentjs.com/) | 无 | ### MonthPicker事件 @@ -94,7 +93,7 @@ | --- | --- | --- | --- | | defaultValue | 默认日期 | [moment](http://momentjs.com/) | - | | format | 展示的日期格式,配置参考 [moment.js](http://momentjs.com/) | string | "YYYY-wo" | -| value | 日期 | [moment](http://momentjs.com/) | - | +| value(v-model) | 日期 | [moment](http://momentjs.com/) | - | ### WeekPicker事件 @@ -113,7 +112,7 @@ | renderExtraFooter | 在面板中添加额外的页脚 | slot="renderExtraFooter" | - | | showTime | 增加时间选择功能 | Object\|boolean | [TimePicker Options](#/cn/components/time-picker/API) | | showTime.defaultValue | 设置用户选择日期时默认的时分秒 | [moment](http://momentjs.com/)\[] | [moment(), moment()] | -| value | 日期 | [moment](http://momentjs.com/)\[] | 无 | +| value(v-model) | 日期 | [moment](http://momentjs.com/)\[] | 无 | ### RangePicker事件 diff --git a/components/date-picker/wrapPicker.js b/components/date-picker/wrapPicker.js index 668d64e12..ae59dce87 100644 --- a/components/date-picker/wrapPicker.js +++ b/components/date-picker/wrapPicker.js @@ -34,6 +34,10 @@ export default function wrapPicker (Picker, props, defaultFormat) { prefixCls: 'ant-calendar', inputPrefixCls: 'ant-input', }), + model: { + prop: 'value', + event: 'change', + }, mounted () { const { autoFocus, disabled } = this