Я создал пользовательский компонент Vue для ввода пин-кода для сенсорного экрана, который не имеет реального ввода, кроме кнопок.У меня есть настраиваемая раскладка клавиш в моем коде, и для использования на рабочем столе, я бы хотел иметь возможность использовать обычную клавиатуру для ввода.
Однако, когда у меня несколько вводов с помощью пин-кода, например, на странице и в верхней части окна.это, нажатия клавиш, конечно, ударить в каждый компонент, потому что у меня есть все эти смонтированные.
Так что я пытаюсь найти способ, чтобы только в настоящее время сфокусированный компонент взял ввод с клавиатуры.Собственные кнопки компонентов на сенсорном экране работают правильно, никаких проблем нет.
...
data() {
return {
value: '',
keys: [
{ name: '9', code: 'Digit9'},
{ name: '8', code: 'Digit8'},
{ name: '7', code: 'Digit7'},
{ name: '6', code: 'Digit6'},
{ name: '5', code: 'Digit5'},
{ name: '4', code: 'Digit4'},
{ name: '3', code: 'Digit3'},
{ name: '2', code: 'Digit2'},
{ name: '1', code: 'Digit1'},
{ name: '0', code: 'Digit0'},
]
};
},
mounted() {
window.addEventListener("keypress", e => {
let result = _.find(this.keys, ['code', e.code]); // Lodash
if (result) this.value = "" + this.value + result.name;
});
}
...
![PIN code input](https://i.stack.imgur.com/kZhWJ.png)
Заранее спасибо.