diff --git a/CHANGELOG.md b/CHANGELOG.md index 4083c530b..bc578376a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - TableColumn 的 showTooltipWhenOverflow 更名为 showOverflowTooltip(两个属性均可用) - TableColumn 新增属性 render-header - Pagination 新增属性 pageCount +- DatePicker 修复重置 value 后默认选中日期没有重置, #878 #### 非兼容性更新 diff --git a/packages/date-picker/src/panel/date.vue b/packages/date-picker/src/panel/date.vue index 7b66c34f8..83aa7b92c 100644 --- a/packages/date-picker/src/panel/date.vue +++ b/packages/date-picker/src/panel/date.vue @@ -181,6 +181,10 @@ }, methods: { + handleClear() { + this.date = new Date(); + }, + resetDate() { this.date = new Date(this.date); }, diff --git a/packages/date-picker/src/picker.vue b/packages/date-picker/src/picker.vue index ea5a75e55..3891a61af 100644 --- a/packages/date-picker/src/picker.vue +++ b/packages/date-picker/src/picker.vue @@ -221,6 +221,9 @@ export default { val ? this.showPicker() : this.hidePicker(); }, value(val) { + if (!val && this.picker && typeof this.picker.handleClear === 'function') { + this.picker.handleClear(); + } this.dispatch('form-item', 'el.form.change'); } }, diff --git a/test/unit/specs/date-picker.spec.js b/test/unit/specs/date-picker.spec.js index f82a7e2cf..d708480c9 100644 --- a/test/unit/specs/date-picker.spec.js +++ b/test/unit/specs/date-picker.spec.js @@ -66,6 +66,35 @@ describe('DatePicker', () => { }, DELAY); }); + it('reset', done => { + vm = createVue({ + template: ` + + `, + data() { + return { value: '' }; + } + }, true); + const input = vm.$el.querySelector('input'); + + input.blur(); + input.focus(); + setTimeout(_ => { + const $el = vm.$refs.compo.picker.$el; + $el.querySelector('.el-date-picker__next-btn.el-icon-arrow-right').click(); + setTimeout(_ => { + $el.querySelector('td.available').click(); + vm.$nextTick(_ => { + vm.value = ''; + setTimeout(_ => { + expect(vm.$refs.compo.picker.date.getDate()).to.equal(new Date().getDate()); + done(); + }, DELAY); + }); + }, DELAY); + }, DELAY); + }); + describe('keydown', () => { let input; let keyDown = function(el, keyCode) {