diff --git a/src/number-keyboard/Key.js b/src/number-keyboard/Key.js index 588eb1ca2..79c8f5b96 100644 --- a/src/number-keyboard/Key.js +++ b/src/number-keyboard/Key.js @@ -1,9 +1,12 @@ import { createNamespace } from '../utils'; +import { TouchMixin } from '../mixins/touch'; import { BORDER } from '../utils/constant'; const [createComponent, bem] = createNamespace('key'); export default createComponent({ + mixins: [TouchMixin], + props: { type: String, text: [Number, String], @@ -36,31 +39,37 @@ export default createComponent({ }, methods: { - onFocus() { + onTouchStart(event) { + this.touchStart(event); this.active = true; }, - onBlur() { - this.active = false; + onTouchMove(event) { + this.touchMove(event); + + if (this.direction) { + this.active = false; + } }, - onClick() { - this.$emit('press', this.text, this.type); + onTouchEnd() { + if (this.active) { + this.active = false; + this.$emit('press', this.text, this.type); + } } }, render() { - const { onBlur } = this; return ( {this.slots('default') || this.text} diff --git a/src/number-keyboard/test/__snapshots__/index.spec.js.snap b/src/number-keyboard/test/__snapshots__/index.spec.js.snap index d48cb04a8..bbb1b1111 100644 --- a/src/number-keyboard/test/__snapshots__/index.spec.js.snap +++ b/src/number-keyboard/test/__snapshots__/index.spec.js.snap @@ -12,6 +12,24 @@ exports[`focus on key 2`] = ` `; +exports[`move and blur key 1`] = ` + +`; + +exports[`move and blur key 2`] = ` + +`; + +exports[`move and blur key 3`] = ` + +`; + exports[`render title 1`] = `