| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | // #ifdef H5export default {  name: 'Keypress',  props: {    disable: {      type: Boolean,      default: false    }  },  mounted () {    const keyNames = {      esc: ['Esc', 'Escape'],      tab: 'Tab',      enter: 'Enter',      space: [' ', 'Spacebar'],      up: ['Up', 'ArrowUp'],      left: ['Left', 'ArrowLeft'],      right: ['Right', 'ArrowRight'],      down: ['Down', 'ArrowDown'],      delete: ['Backspace', 'Delete', 'Del']    }    const listener = ($event) => {      if (this.disable) {        return      }      const keyName = Object.keys(keyNames).find(key => {        const keyName = $event.key        const value = keyNames[key]        return value === keyName || (Array.isArray(value) && value.includes(keyName))      })      if (keyName) {        // 避免和其他按键事件冲突        setTimeout(() => {          this.$emit(keyName, {})        }, 0)      }    }    document.addEventListener('keyup', listener)    this.$once('hook:beforeDestroy', () => {      document.removeEventListener('keyup', listener)    })  },	render: () => {}}// #endif
 |