// #ifdef H5 export 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