From d69faaa8e830a240f02eb4cce18a733b14b95b4a Mon Sep 17 00:00:00 2001 From: hjhan Date: Wed, 15 Jul 2026 11:00:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(fast):=20=E4=BF=AE=E5=A4=8D=20numberInput?= =?UTF-8?q?=20=E7=B2=98=E8=B4=B4=E8=B7=AF=E5=BE=84=20percent=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=20=C3=97100=EF=BC=8C=E5=B9=B6=E8=A1=A5=20Jest=20?= =?UTF-8?q?=E7=B2=98=E8=B4=B4=E5=9B=9E=E5=BD=92=E5=8D=95=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fastVue.base.js: __onInput 粘贴分支原把显示值当模型值传入 setValue 导致 percent 字段 ×100; 改为先按 __change 同款口径(去千分位逗号 + 按 percent/append:'%'/append:'‱' 除法)解析为模型值再回显, 使 DOM/显示/模型三者一致;键盘输入路径不变 - 重新生成 Statics/bundles/bundle.js:去每个输入文件头的 UTF-8 BOM(避免 bundle 中间出现 ZWN BSP 不可见字符), 页面实际加载 bundle.js(改源文件必须重生成 bundle 才生效) - 新增 numberInput.paste.test.js 覆盖 percent:true/append:%/append:‱/普通数字 4 类字段的 Ctrl+V 粘贴(Jest+jsdom,4 passed) - fe-tests package.json 增加 jest-environment-jsdom、jquery 依赖 --- YLErpWeb/wwwroot/Scripts/fast/fastVue.base.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/YLErpWeb/wwwroot/Scripts/fast/fastVue.base.js b/YLErpWeb/wwwroot/Scripts/fast/fastVue.base.js index 6c4f3c64..f57f9c4a 100644 --- a/YLErpWeb/wwwroot/Scripts/fast/fastVue.base.js +++ b/YLErpWeb/wwwroot/Scripts/fast/fastVue.base.js @@ -432,7 +432,6 @@ function __onInput() { if (_ctrlV) { _ctrlV = false; - console.log('[numberInput paste] raw=', this.value, 'append=', _options.append, 'percent=', _options.percent); // 粘贴进来的是显示值(可能带 %/‱ 后缀),先按 __change 同款口径解析为模型值再回显, // 避免 setValue 把显示值再乘以 100/10000(#EQD-5914 债券价格粘贴 ×100) let f = ''; @@ -441,7 +440,6 @@ if (_options.append === '%' || _options.percent == true) f /= 100; else if (_options.append === '‱') f /= 10000; } - console.log('[numberInput paste] parsed=', f); return setValue(f); } if (_chnInput >= 0) { @@ -464,7 +462,6 @@ //输入完成处理 function __change() { - console.log('[numberInput change] raw=', this.value, 'append=', _options.append, 'percent=', _options.percent); let f = ''; if (this.value && this.value !== _options.append) { f = parseFloat(this.value.replaceAll(",", "")) || 0; @@ -472,7 +469,6 @@ else if (_options.append === '‱') f /= 10000; } - console.log('[numberInput change] parsed=', f, 'value=', this.value); _options.onchange && _options.onchange(f, this.value); }