From 1da6a30f192ba0faad5ac5be45cb63775617a904 Mon Sep 17 00:00:00 2001 From: neverland <chenjiahan@buaa.edu.cn> Date: Fri, 22 Jun 2018 15:46:51 +0800 Subject: [PATCH] [Improvement] Stepper blur (#1316) --- packages/stepper/en-US.md | 3 ++- packages/stepper/index.vue | 9 +++++++++ packages/stepper/test/index.spec.js | 22 ++++++++++++++++++++++ packages/stepper/zh-CN.md | 1 + 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/packages/stepper/en-US.md b/packages/stepper/en-US.md index b1a2d4728..f475a4708 100644 --- a/packages/stepper/en-US.md +++ b/packages/stepper/en-US.md @@ -63,4 +63,5 @@ export default { | change | Triggered when value change | value: current value | | overlimit | Triggered when click disabled button | - | | plus | Triggered when click plus button | - | -| minus | Triggered when click minus button | - | \ No newline at end of file +| minus | Triggered when click minus button | - | +| blur | Triggered when input blured | - | diff --git a/packages/stepper/index.vue b/packages/stepper/index.vue index 4a2d43641..4ac89e22a 100644 --- a/packages/stepper/index.vue +++ b/packages/stepper/index.vue @@ -11,6 +11,7 @@ :disabled="disabled || disableInput" @input="onInput" @keypress="onKeypress" + @blur="onBlur" > <button :class="b('plus', { disabled: plusDisabled })" @@ -121,6 +122,14 @@ export default create({ } }, + onBlur(event) { + if (!this.value) { + this.currentValue = +this.min; + this.emitInput(); + } + this.$emit('blur', event); + }, + emitInput() { this.$emit('input', this.currentValue); this.$emit('change', this.currentValue); diff --git a/packages/stepper/test/index.spec.js b/packages/stepper/test/index.spec.js index dd93f85f2..97d9e79a3 100644 --- a/packages/stepper/test/index.spec.js +++ b/packages/stepper/test/index.spec.js @@ -92,3 +92,25 @@ test('only allow interger', () => { expect(fn.mock.calls.length).toEqual(1); }); + +test('stepper blur', () => { + const wrapper = mount(Stepper, { + propsData: { + value: 5, + min: 3 + } + }); + + wrapper.vm.$on('input', value => { + wrapper.setProps({ value }); + }); + + const input = wrapper.find('input'); + input.trigger('blur'); + input.element.value = ''; + input.trigger('input'); + input.trigger('blur'); + + expect(wrapper.emitted('input')).toEqual([[''], [3]]); + expect(wrapper.emitted('blur')).toBeTruthy(); +}); diff --git a/packages/stepper/zh-CN.md b/packages/stepper/zh-CN.md index f22592b84..62d9da789 100644 --- a/packages/stepper/zh-CN.md +++ b/packages/stepper/zh-CN.md @@ -67,3 +67,4 @@ export default { | overlimit | 点击不可用的按钮时触发 | - | | plus | 点击增加按钮时触发 | - | | minus | 点击减少按钮时触发 | - | +| blur | 输入框失焦时触发 | - |