2018-12-18 18:51:25 +08:00
|
|
|
<template>
|
|
|
|
<li
|
|
|
|
v-if="noTouch"
|
|
|
|
v-text="value"
|
|
|
|
:class="[active ? 'active' : '']"
|
2018-12-26 11:24:43 +08:00
|
|
|
@click="$_onFocus"
|
2018-12-18 18:51:25 +08:00
|
|
|
></li>
|
|
|
|
<li
|
|
|
|
v-else
|
|
|
|
v-text="value"
|
|
|
|
:class="[active ? 'active' : '']"
|
2018-12-26 11:24:43 +08:00
|
|
|
@touchstart="$_onFocus"
|
2018-12-18 18:51:25 +08:00
|
|
|
@touchmove="$_onBlur"
|
|
|
|
@touchend="$_onBlur"
|
|
|
|
@touchcancel="$_onBlur"
|
2018-12-26 11:24:43 +08:00
|
|
|
@click="$_onFocus"
|
2018-12-18 18:51:25 +08:00
|
|
|
></li>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
export default {
|
|
|
|
name: 'md-number-key',
|
|
|
|
|
|
|
|
props: {
|
|
|
|
value: {
|
|
|
|
type: [String, Number],
|
|
|
|
default: '',
|
|
|
|
},
|
|
|
|
noTouch: {
|
|
|
|
type: Boolean,
|
|
|
|
default: false,
|
|
|
|
},
|
2018-12-26 11:24:43 +08:00
|
|
|
noPrevent: {
|
|
|
|
type: Boolean,
|
|
|
|
default: false,
|
|
|
|
},
|
2018-12-18 18:51:25 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
active: false,
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
2018-12-26 11:24:43 +08:00
|
|
|
$_onFocus(event) {
|
|
|
|
if (!this.noPrevent) {
|
|
|
|
event.preventDefault()
|
|
|
|
event.stopImmediatePropagation()
|
|
|
|
}
|
2018-12-18 18:51:25 +08:00
|
|
|
if (!this.noTouch) {
|
|
|
|
this.active = true
|
|
|
|
}
|
|
|
|
this.$emit('press', this.value)
|
|
|
|
},
|
|
|
|
$_onBlur() {
|
|
|
|
this.active = false
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
</script>
|