diff --git a/components.js b/components.js index ca5e12aef..c61f4d63a 100644 --- a/components.js +++ b/components.js @@ -51,4 +51,5 @@ module.exports = [ 'checkbox-group', 'radio', 'radio-group', + 'datetime-picker', ]; diff --git a/docs/markdown/changelog-v3.zh-CN.md b/docs/markdown/changelog-v3.zh-CN.md index 4a811ff48..1e31580db 100644 --- a/docs/markdown/changelog-v3.zh-CN.md +++ b/docs/markdown/changelog-v3.zh-CN.md @@ -36,6 +36,7 @@ Vant 遵循 [Semver](https://semver.org/lang/zh-CN/) 语义化版本规范。 - Checkbox - CheckboxGroup +- DatetimePicker - Field - Radio - RadioGroup diff --git a/src/datetime-picker/DatePicker.js b/src/datetime-picker/DatePicker.js index 6ee4ac6cd..71ef963c5 100644 --- a/src/datetime-picker/DatePicker.js +++ b/src/datetime-picker/DatePicker.js @@ -28,12 +28,14 @@ export default createComponent({ }, }, + emits: ['confirm', 'cancel', 'change', 'update:modelValue'], + watch: { filter: 'updateInnerValue', minDate: 'updateInnerValue', maxDate: 'updateInnerValue', - value(val) { + modelValue(val) { val = this.formatValue(val); if (val.valueOf() !== this.innerValue.valueOf()) { diff --git a/src/datetime-picker/TimePicker.js b/src/datetime-picker/TimePicker.js index a283ac810..25db47844 100644 --- a/src/datetime-picker/TimePicker.js +++ b/src/datetime-picker/TimePicker.js @@ -28,6 +28,8 @@ export default createComponent({ }, }, + emits: ['confirm', 'cancel', 'change', 'update:modelValue'], + computed: { ranges() { return [ diff --git a/src/datetime-picker/index.js b/src/datetime-picker/index.js index 50a0c3080..7f0b7f561 100644 --- a/src/datetime-picker/index.js +++ b/src/datetime-picker/index.js @@ -19,16 +19,6 @@ export default createComponent({ render() { const Component = this.type === 'time' ? TimePicker : DatePicker; - - return ( - - ); + return ; }, }); diff --git a/src/datetime-picker/shared.js b/src/datetime-picker/shared.js index 45ad4a273..051db9d2d 100644 --- a/src/datetime-picker/shared.js +++ b/src/datetime-picker/shared.js @@ -5,8 +5,8 @@ import Picker from '../picker'; export const sharedProps = { ...pickerProps, - value: null, filter: Function, + modelValue: null, showToolbar: { type: Boolean, default: true, @@ -21,7 +21,7 @@ export const sharedProps = { export const TimePickerMixin = { data() { return { - innerValue: this.formatValue(this.value), + innerValue: this.formatValue(this.modelValue), }; }, @@ -57,7 +57,7 @@ export const TimePickerMixin = { columns: 'updateColumnValue', innerValue(val) { - this.$emit('input', val); + this.$emit('update:modelValue', val); }, }, @@ -97,7 +97,7 @@ export const TimePickerMixin = { onChange={this.onChange} onConfirm={this.onConfirm} onCancel={this.onCancel} - {...{ props }} + {...props} /> ); }, diff --git a/vant.config.js b/vant.config.js index fff4e2bad..c82b4a057 100644 --- a/vant.config.js +++ b/vant.config.js @@ -123,10 +123,10 @@ module.exports = { path: 'checkbox', title: 'Checkbox 复选框', }, - // { - // path: 'datetime-picker', - // title: 'DatetimePicker 时间选择', - // }, + { + path: 'datetime-picker', + title: 'DatetimePicker 时间选择', + }, { path: 'field', title: 'Field 输入框', @@ -457,10 +457,10 @@ module.exports = { path: 'checkbox', title: 'Checkbox', }, - // { - // path: 'datetime-picker', - // title: 'DatetimePicker', - // }, + { + path: 'datetime-picker', + title: 'DatetimePicker', + }, { path: 'field', title: 'Field',