| 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
 |