From 2041a44847d5afa75b10a0cc6659361b971ab370 Mon Sep 17 00:00:00 2001 From: shonen7 <145949377+shonen7@users.noreply.github.com> Date: Wed, 11 Oct 2023 15:11:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(numeric):numeric=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E8=B6=85=E5=A4=A7=E6=95=B0=E5=AD=97=E5=8F=98?= =?UTF-8?q?=E4=B8=BA=E7=A7=91=E5=AD=A6=E8=AE=A1=E6=95=B0=E6=B3=95=E6=97=B6?= =?UTF-8?q?=E5=A4=B1=E7=84=A6=E5=90=8E=E7=BB=84=E4=BB=B6=E6=B6=88=E5=A4=B1?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20(#563)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(numeric):numeric 输入超大数字变为科学计数法时失焦后组件消失的问题 * fix(numeric):numeric 修改评审意见 --- packages/renderless/src/common/bigInt.ts | 2 +- packages/renderless/src/numeric/index.ts | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/renderless/src/common/bigInt.ts b/packages/renderless/src/common/bigInt.ts index a99923c3eb..7b4795f9d0 100644 --- a/packages/renderless/src/common/bigInt.ts +++ b/packages/renderless/src/common/bigInt.ts @@ -186,7 +186,7 @@ export class BigIntDecimal { const trimRet = trimNumber(mergedValue) this.negative = trimRet.negative const numbers = trimRet.trimStr.split('.') - this.integer = BigInt(numbers[0]) + this.integer = numbers[0].indexOf('e') === -1 ? BigInt(numbers[0]) : numbers[0] const decimalStr = numbers[1] || '0' this.decimal = convertBigInt(decimalStr) this.decimalLen = decimalStr.length diff --git a/packages/renderless/src/numeric/index.ts b/packages/renderless/src/numeric/index.ts index f45bcaee3d..e3a62b7201 100644 --- a/packages/renderless/src/numeric/index.ts +++ b/packages/renderless/src/numeric/index.ts @@ -96,6 +96,11 @@ export const increase = } const value = (props.mouseWheel ? state.displayValue : props.modelValue) || 0 + + if (value.toString().includes('e')) { + return + } + let newVal = api.internalIncrease({ val: value, step: props.step }) if (!props.circulate || !isFinite(props.max) || !isFinite(props.min)) { @@ -116,8 +121,12 @@ export const decrease = if (state.inputDisabled || state.minDisabled) { return } - const value = (props.mouseWheel ? state.displayValue : props.modelValue) || 0 + + if (value.toString().includes('e')) { + return + } + let newVal = api.internalDecrease({ val: value, step: props.step }) if (!props.circulate || !isFinite(props.max) || !isFinite(props.min)) { @@ -269,7 +278,7 @@ export const handleInput = emitError() if (!(value === '' && props.allowEmpty)) { - value = state.lastInput + value = value.indexOf('e') === -1 ? state.lastInput : value } } else { value = value