From ae11dd7b8d1fe12511765609bcfef7f557586289 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Wed, 17 Jun 2026 03:53:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=91=E5=B8=83=E9=A1=B5?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E5=B0=8F=E6=95=B0=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E4=B8=8E=E6=8A=BC=E9=87=91=E4=B8=8B=E9=99=90=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 哈夫币/M:移动端输入框由 type="digit" 改为 type="number", 与绝密KD 一致,iOS 可输入小数点(烽火等级保持取整不变) - 押金:新增 handleDepositBlur,输入框失焦时若低于智能推荐额度 (或为空/非法)自动补足到推荐值并提示,桌面与移动端均生效; 提交时校验保留作兜底 Co-Authored-By: Claude Opus 4.8 (1M context) --- .../features/seller/composables/usePublishForm.ts | 12 ++++++++++++ .../seller/views/MobileSellerListingCreateView.vue | 4 +++- .../seller/views/SellerListingCreateView.vue | 2 ++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/frontend/src/features/seller/composables/usePublishForm.ts b/frontend/src/features/seller/composables/usePublishForm.ts index 3cc7f05..982f18b 100644 --- a/frontend/src/features/seller/composables/usePublishForm.ts +++ b/frontend/src/features/seller/composables/usePublishForm.ts @@ -612,6 +612,17 @@ export function usePublishForm(options: UsePublishFormOptions) { } } + // 失焦时实时校正:押金低于(或低于等于无效/为空)智能推荐时自动补到推荐值并提示。 + function handleDepositBlur() { + const recommended = pricing.recommendedDepositAmount.value + if (recommended <= 0) return + const current = Number(form.depositAmountYuan) + if (form.depositAmountYuan === '' || !Number.isFinite(current) || current < recommended) { + form.depositAmountYuan = recommended + options.notifyWarning(`押金不能低于智能推荐 ¥${recommended},已自动调整`) + } + } + function clearForbiddenQuantityItems() { for (const item of pricing.quantityItems.value) { if (!pricing.isQuantityItemDisabled(item)) continue @@ -959,6 +970,7 @@ export function usePublishForm(options: UsePublishFormOptions) { handleAcceleratedSaleRatioInput, syncRecommendedDeposit, useRecommendedDeposit, + handleDepositBlur, clearForbiddenQuantityItems, setQuantityMode, clampAcceleratedSaleRatioInput, diff --git a/frontend/src/features/seller/views/MobileSellerListingCreateView.vue b/frontend/src/features/seller/views/MobileSellerListingCreateView.vue index a6263b7..522fcdc 100644 --- a/frontend/src/features/seller/views/MobileSellerListingCreateView.vue +++ b/frontend/src/features/seller/views/MobileSellerListingCreateView.vue @@ -81,6 +81,7 @@ const { handleFireLevelInput, handleAcceleratedSaleRatioInput, useRecommendedDeposit, + handleDepositBlur, setQuantityMode, clampAcceleratedSaleRatioInput, useReferenceSaleRatio, @@ -177,7 +178,7 @@ const screenshotGuides: Record = { = { type="number" inputmode="decimal" :placeholder="priceConfig.deposit_placeholder" + @blur="handleDepositBlur" /> diff --git a/frontend/src/features/seller/views/SellerListingCreateView.vue b/frontend/src/features/seller/views/SellerListingCreateView.vue index 6521672..d9dc872 100644 --- a/frontend/src/features/seller/views/SellerListingCreateView.vue +++ b/frontend/src/features/seller/views/SellerListingCreateView.vue @@ -90,6 +90,7 @@ const { handleFireLevelInput, handleAcceleratedSaleRatioInput, useRecommendedDeposit, + handleDepositBlur, setQuantityMode, clampAcceleratedSaleRatioInput, useReferenceSaleRatio, @@ -513,6 +514,7 @@ function selectDailyLoss(value: string | number) { :min="0" :controls="false" :placeholder="priceConfig.deposit_placeholder" + @blur="handleDepositBlur" />