fix: allow removal of decimal places

pull/6540/head
KumJungMin 2024-10-08 20:03:59 +09:00
parent 0223158cfb
commit 0122836e02
1 changed files with 3 additions and 8 deletions

View File

@ -424,7 +424,7 @@ export default {
if (selectionStart === selectionEnd) { if (selectionStart === selectionEnd) {
const deleteChar = inputValue.charAt(selectionStart - 1); const deleteChar = inputValue.charAt(selectionStart - 1);
const { decimalCharIndex, decimalCharIndexWithoutPrefix } = this.getDecimalCharIndexes(inputValue); const { decimalCharIndexWithoutPrefix } = this.getDecimalCharIndexes(inputValue);
if (this.isNumeralChar(deleteChar)) { if (this.isNumeralChar(deleteChar)) {
const decimalLength = this.getDecimalLength(inputValue); const decimalLength = this.getDecimalLength(inputValue);
@ -440,10 +440,6 @@ export default {
} else { } else {
newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart); newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);
} }
} else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {
const insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';
newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);
} else if (decimalCharIndexWithoutPrefix === 1) { } else if (decimalCharIndexWithoutPrefix === 1) {
newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart); newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);
newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : ''; newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';
@ -771,7 +767,6 @@ export default {
newValue = this.parseValue(valueStr); newValue = this.parseValue(valueStr);
newValue = !newValue && !this.allowEmpty ? 0 : newValue; newValue = !newValue && !this.allowEmpty ? 0 : newValue;
this.updateInput(newValue, insertedValueStr, operation, valueStr); this.updateInput(newValue, insertedValueStr, operation, valueStr);
this.handleOnInput(event, currentValue, newValue); this.handleOnInput(event, currentValue, newValue);
} }
}, },
@ -891,9 +886,9 @@ export default {
this._decimal.lastIndex = 0; this._decimal.lastIndex = 0;
if (this.suffixChar) { if (this.suffixChar) {
return decimalCharIndex !== -1 ? val1.replace(this.suffixChar, '').split(this._decimal)[0] + val2.replace(this.suffixChar, '').slice(decimalCharIndex) + this.suffixChar : val1; return decimalCharIndex !== -1 ? val1.replace(this.suffixChar, '').split(this._decimal)[0] + val2.replace(this.suffixChar, '').slice(decimalCharIndex) + this.suffixChar : val2;
} else { } else {
return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val1; return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val2;
} }
} }