mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-19 17:24:26 +08:00
support number pad keys in pin code input and amount input
This commit is contained in:
@@ -163,45 +163,45 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
onKeydown(index, event) {
|
onKeydown(index, event) {
|
||||||
if (event.altKey || (event.code.indexOf('F') === 0 && (event.code.length === 2 || event.code.length === 3))) {
|
if (event.altKey || (event.key.indexOf('F') === 0 && (event.key.length === 2 || event.key.length === 3))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.code === 'Enter' && this.finalPinCode.length === this.length) {
|
if (event.key === 'Enter' && this.finalPinCode.length === this.length) {
|
||||||
this.$emit('pincode:confirm', this.finalPinCode);
|
this.$emit('pincode:confirm', this.finalPinCode);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.code === 'ArrowLeft' || (event.shiftKey && event.code === 'Tab')) {
|
if (event.key === 'ArrowLeft' || (event.shiftKey && event.key === 'Tab')) {
|
||||||
this.setPreviousFocus(index);
|
this.setPreviousFocus(index);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.code === 'ArrowRight' || (!event.shiftKey && event.code === 'Tab')) {
|
if (event.key === 'ArrowRight' || (!event.shiftKey && event.key === 'Tab')) {
|
||||||
this.setNextFocus(index);
|
this.setNextFocus(index);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.code === 'Home') {
|
if (event.key === 'Home') {
|
||||||
this.setFocus(0);
|
this.setFocus(0);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.code === 'End') {
|
if (event.key === 'End') {
|
||||||
this.setFocus(this.length - 1);
|
this.setFocus(this.length - 1);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((event.ctrlKey || event.metaKey) && event.code === 'KeyV') {
|
if (((event.ctrlKey || event.metaKey) && event.key === 'v') || event.key === 'Paste') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.code === 'Backspace' || event.code === 'Delete' || event.code === 'Del') {
|
if (event.key === 'Backspace' || event.key === 'Delete' || event.key === 'Del') {
|
||||||
for (let i = index; i < this.codes.length; i++) {
|
for (let i = index; i < this.codes.length; i++) {
|
||||||
this.codes[i].value = '';
|
this.codes[i].value = '';
|
||||||
this.setInputType(i);
|
this.setInputType(i);
|
||||||
@@ -215,7 +215,7 @@ export default {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.code.indexOf('Digit') === 0 && event.code.length === 6) {
|
if (event.key.length === 1 && '0' <= event.key && event.key <= '9') {
|
||||||
this.codes[index].value = event.key;
|
this.codes[index].value = event.key;
|
||||||
this.setInputType(index);
|
this.setInputType(index);
|
||||||
this.setNextFocus(index);
|
this.setNextFocus(index);
|
||||||
|
|||||||
@@ -142,17 +142,17 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onKeyUpDown(e) {
|
onKeyUpDown(e) {
|
||||||
if (e.altKey || e.ctrlKey || e.metaKey || (e.code.indexOf('F') === 0 && (e.code.length === 2 || e.code.length === 3))
|
if (e.altKey || e.ctrlKey || e.metaKey || (e.key.indexOf('F') === 0 && (e.key.length === 2 || e.key.length === 3))
|
||||||
|| e.code === 'ArrowLeft' || e.code === 'ArrowRight'
|
|| e.key === 'ArrowLeft' || e.key === 'ArrowRight'
|
||||||
|| e.code === 'Home' || e.code === 'End' || e.code === 'Tab'
|
|| e.key === 'Home' || e.key === 'End' || e.key === 'Tab'
|
||||||
|| e.code === 'Backspace' || e.code === 'Delete' || e.code === 'Del') {
|
|| e.key === 'Backspace' || e.key === 'Delete' || e.key === 'Del') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const digitGroupingSymbol = this.$locale.getCurrentDigitGroupingSymbol(this.userStore);
|
const digitGroupingSymbol = this.$locale.getCurrentDigitGroupingSymbol(this.userStore);
|
||||||
const decimalSeparator = this.$locale.getCurrentDecimalSeparator(this.userStore);
|
const decimalSeparator = this.$locale.getCurrentDecimalSeparator(this.userStore);
|
||||||
|
|
||||||
if (e.code.indexOf('Digit') !== 0 && e.code !== 'Minus' && e.key !== decimalSeparator) {
|
if (!('0' <= e.key && e.key <= '9') && e.key !== '-' && e.key !== decimalSeparator) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -163,7 +163,7 @@ export default {
|
|||||||
str = removeAll(str, digitGroupingSymbol);
|
str = removeAll(str, digitGroupingSymbol);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.code === 'Minus' && str.lastIndexOf('-') > 0) {
|
if (e.key === '-' && str.lastIndexOf('-') > 0) {
|
||||||
const lastMinusPos = str.lastIndexOf('-');
|
const lastMinusPos = str.lastIndexOf('-');
|
||||||
e.target.value = str.substring(0, lastMinusPos) + str.substring(lastMinusPos + 1, str.length);
|
e.target.value = str.substring(0, lastMinusPos) + str.substring(lastMinusPos + 1, str.length);
|
||||||
this.currentValue = e.target.value;
|
this.currentValue = e.target.value;
|
||||||
@@ -205,7 +205,7 @@ export default {
|
|||||||
str = str.substring(1);
|
str = str.substring(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (str.charAt(0) === '0' && (str.length >= 2 || e.code !== 'Digit0')) {
|
while (str.charAt(0) === '0' && (str.length >= 2 || e.key !== '0')) {
|
||||||
str = str.substring(1);
|
str = str.substring(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user