瀏覽代碼

fix input change time (#2956)

baiyaaaaa 8 年之前
父節點
當前提交
61672ce0e2
共有 3 個文件被更改,包括 25 次插入23 次删除
  1. 4 3
      packages/input/src/input.vue
  2. 20 19
      test/unit/specs/cascader.spec.js
  3. 1 1
      test/unit/specs/input.spec.js

+ 4 - 3
packages/input/src/input.vue

@@ -170,7 +170,10 @@
         this.$emit('focus', event);
       },
       handleInput(event) {
-        this.setCurrentValue(event.target.value);
+        const value = event.target.value;
+        this.$emit('input', value);
+        this.setCurrentValue(value);
+        this.$emit('change', value);
       },
       handleIconClick(event) {
         if (this.onIconClick) {
@@ -184,8 +187,6 @@
           this.resizeTextarea();
         });
         this.currentValue = value;
-        this.$emit('input', value);
-        this.$emit('change', value);
         if (this.validateEvent) {
           this.dispatch('ElFormItem', 'el.form.change', [value]);
         }

+ 20 - 19
test/unit/specs/cascader.spec.js

@@ -498,30 +498,31 @@ describe('Cascader', () => {
       }
     }, true);
     expect(vm.$el).to.be.exist;
-    vm.$refs.cascader.inputValue = 'z';
     vm.$el.click();
+    vm.$nextTick(_ => {
+      vm.$refs.cascader.handleInputChange('z');
+      setTimeout(_ => {
+        expect(document.body.querySelector('.el-cascader-menus')).to.be.exist;
 
-    setTimeout(_ => {
-      expect(document.body.querySelector('.el-cascader-menus')).to.be.exist;
-
-      const menu = vm.$refs.cascader.menu;
-      const menuElm = menu.$el;
-      const item1 = menuElm.querySelector('.el-cascader-menu__item');
+        const menu = vm.$refs.cascader.menu;
+        const menuElm = menu.$el;
+        const item1 = menuElm.querySelector('.el-cascader-menu__item');
 
-      expect(menuElm.children.length).to.be.equal(1);
-      expect(menuElm.children[0].children.length).to.be.equal(3);
-      done();
+        expect(menuElm.children.length).to.be.equal(1);
+        expect(menuElm.children[0].children.length).to.be.equal(3);
+        done();
 
-      item1.click();
+        item1.click();
 
-      setTimeout(_ => {
-        expect(document.body.querySelector('.el-cascader-menus').style.display).to.be.equal('none');
-        expect(vm.selectedOptions[0]).to.be.equal('zhejiang');
-        expect(vm.selectedOptions[1]).to.be.equal('hangzhou');
-        expect(vm.selectedOptions[2]).to.be.equal('xihu');
-        done();
-      }, 500);
-    }, 300);
+        setTimeout(_ => {
+          expect(document.body.querySelector('.el-cascader-menus').style.display).to.be.equal('none');
+          expect(vm.selectedOptions[0]).to.be.equal('zhejiang');
+          expect(vm.selectedOptions[1]).to.be.equal('hangzhou');
+          expect(vm.selectedOptions[2]).to.be.equal('xihu');
+          done();
+        }, 500);
+      }, 300);
+    });
   });
   it('props', done => {
     vm = createVue({

+ 1 - 1
test/unit/specs/input.spec.js

@@ -214,7 +214,7 @@ describe('Input', () => {
       vm.input = 'b';
 
       vm.$nextTick(_ => {
-        expect(spy.withArgs('b').calledOnce).to.be.true;
+        expect(spy.withArgs('b').calledOnce).to.be.false;
         done();
       });
     });