فهرست منبع

DatePicker: fix change event on clear (#9986)

Jiewei Qian 7 سال پیش
والد
کامیت
cacb0aeaec
2فایلهای تغییر یافته به همراه29 افزوده شده و 0 حذف شده
  1. 1 0
      packages/date-picker/src/picker.vue
  2. 28 0
      test/unit/specs/date-picker.spec.js

+ 1 - 0
packages/date-picker/src/picker.vue

@@ -617,6 +617,7 @@ export default {
     handleClickIcon(event) {
       if (this.readonly || this.pickerDisabled) return;
       if (this.showClose) {
+        this.valueOnOpen = this.value;
         event.stopPropagation();
         this.emitInput(null);
         this.emitChange(null);

+ 28 - 0
test/unit/specs/date-picker.spec.js

@@ -233,6 +233,34 @@ describe('DatePicker', () => {
     }, DELAY);
   });
 
+  it('change event: when clear(), without opening picker', done => {
+    vm = createVue({
+      template: `
+        <el-date-picker
+          ref="compo"
+          v-model="value"
+        />`,
+      data() {
+        return {
+          value: new Date()
+        };
+      }
+    }, true);
+
+    const spy = sinon.spy();
+    vm.$refs.compo.$on('change', spy);
+
+    setTimeout(_ => {
+      vm.$refs.compo.showClose = true;
+      vm.$refs.compo.handleClickIcon({ stopPropagation: () => null });
+      setTimeout(_ => {
+        expect(spy.calledOnce).to.equal(true);
+        expect(spy.calledWith(null)).to.equal(true);
+        done();
+      }, DELAY);
+    }, DELAY);
+  });
+
   describe('input event', () => {
     // mimic standard <select>'s behavior
     // emit input if and only if value changes