From 486f02dcd91e4a754c57cb16025892797a7dc888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=90=8D=E9=94=90?= <1565842059@qq.com> Date: Fri, 7 Aug 2026 17:57:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(swaptrade):=20=E6=B7=BB=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E6=98=BE=E7=A4=BA=E5=B0=BE=E9=9A=8F=E9=9B=B6=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 swapPricePrecisionHelper 中实现 trimTailZeros 选项支持 - 修改 formatCommon 函数以支持尾随零去除逻辑 - 在 swapTradeView 中为数量类型添加 trimTailZeros 配置 - 添加测试用例验证数量显示的尾随零去除功能 - 确保配置精度在尾随零去除后保持不变 --- YLErpWeb/fe-tests/swapPrecisionConfig.test.js | 7 +++++++ .../Scripts/app/swaptrade/swapPricePrecisionHelper.js | 5 ++++- YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeView.js | 3 ++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/YLErpWeb/fe-tests/swapPrecisionConfig.test.js b/YLErpWeb/fe-tests/swapPrecisionConfig.test.js index 84036a43..42e7dba5 100644 --- a/YLErpWeb/fe-tests/swapPrecisionConfig.test.js +++ b/YLErpWeb/fe-tests/swapPrecisionConfig.test.js @@ -135,6 +135,13 @@ describe('swap price precision common wiring', () => { expect(helper.getCommonInputFormat('quantity', { append: '' }).grouping).toBe(false); }); + test('quantity display can trim trailing zeros without changing configured precision', () => { + const helper = loadHelper({ common: { quantity: { precision: 8, grouping: true } } }); + expect(helper.formatCommon('quantity', '10000.12345600', { trimTailZeros: true })) + .toBe('10,000.123456'); + expect(helper.formatCommon('quantity', '10000.12345600')).toBe('10,000.12345600'); + }); + test('missing or invalid asset quantity precision falls back to common quantity precision', () => { const helper = loadHelper({ common: { quantity: { precision: 3, grouping: true } }, diff --git a/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapPricePrecisionHelper.js b/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapPricePrecisionHelper.js index 3fcd3603..f3ed4f16 100644 --- a/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapPricePrecisionHelper.js +++ b/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapPricePrecisionHelper.js @@ -244,7 +244,10 @@ var swapPricePrecision = (function (global) { const formatted = formatFixed(displayValue, rule.precision); if (!formatted) return ''; const grouping = options && options.grouping !== undefined ? !!options.grouping : rule.grouping; - const text = grouping ? groupDecimal(formatted) : formatted; + const trimmed = options && options.trimTailZeros === true + ? formatted.replace(/(\.\d*?[1-9])0+$/, '$1').replace(/\.0+$/, '') + : formatted; + const text = grouping ? groupDecimal(trimmed) : trimmed; return kind === 'rate' ? text + '%' : text; } diff --git a/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeView.js b/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeView.js index c6ad4bac..0cd7bc04 100644 --- a/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeView.js +++ b/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeView.js @@ -14,7 +14,8 @@ function formatSwapCommonElements() { this.textContent = swapPricePrecision.formatCommon( this.dataset.kind, this.dataset.value, - this.dataset.instrumentType); + this.dataset.instrumentType, + this.dataset.kind === 'quantity' ? { trimTailZeros: true } : undefined); }); }