key.vue 688 Bytes
Newer Older
Nature's avatar
Nature committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
<template>
  <i
    :class="type"
    class="van-hairline key"
    @touchstart.stop.prevent="onFocus"
    @touchmove="onBlur"
    @touchend="onBlur"
    @touchcancel="onBlur"
    v-text="text"
  />
</template>

<script>
export default {
  name: 'Key',
  props: {
    text: [String, Number], // eslint-disable-line
    type: {
      type: String,
      default: () => '',
    },
  },
  data () {
    return {
      active: false,
    }
  },
  computed: {

  },
  methods: {

    onFocus (e) {
      e.target.className += ' ' + 'active'
      this.$emit('press', this.text)
    },
    onBlur (e) {
      e.target.classList.remove('active')
      this.active = false
    },
  },
}
</script>