From b3afb31adb2d046e2a8b2adf22f995628e89dc0b Mon Sep 17 00:00:00 2001 From: zhangrenyuan <18990852002@163.com> Date: Thu, 18 Dec 2025 13:37:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=BA=A2=E5=8C=85=E5=8A=9F=E8=83=BD):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=BE=93=E5=85=A5=E9=AA=8C=E8=AF=81=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E5=85=81=E8=AE=B8=E7=BA=A2=E5=8C=85=E6=8A=B5?= =?UTF-8?q?=E6=89=A3=E5=90=8E=E9=87=91=E9=A2=9D=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/consume/gold/addCoinConsume.vue | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/views/consume/gold/addCoinConsume.vue b/src/views/consume/gold/addCoinConsume.vue index 8b63524..78ca338 100644 --- a/src/views/consume/gold/addCoinConsume.vue +++ b/src/views/consume/gold/addCoinConsume.vue @@ -77,6 +77,19 @@ const rules = reactive({ { required: true, message: t('elmessage.noEmptySumGold'), trigger: "blur" }, { validator: (rule, value, callback) => { + // 如果使用了红包,且红包总额抵扣完了原价,允许为0 + if (addConsume.value.redMoney === 1) { + const price = Number(addConsume.value.price || 0) + const redAmount = totalRedAmount.value + if (redAmount >= price) { + // 如果红包抵扣完了,允许0 + if (parseFloat(value) === 0 || value === 0) { + callback(); + return; + } + } + } + // 允许0开头的小数(如0.1)但不允许单独的0 const isValid = /^(0\.\d{1,2})|([1-9]\d*(\.\d{1,2})?)$/.test(value); @@ -561,7 +574,7 @@ watch( () => addConsume.value.sumGold, (newValue) => { const parsedNewValue = parseFloat(newValue); - if (!isNaN(parsedNewValue) && parsedNewValue > 0) { + if (!isNaN(parsedNewValue) && parsedNewValue >= 0) { const { free, permanent, task } = calculateCoins(parsedNewValue); addConsume.value.freeGold = free; addConsume.value.permanentGold = permanent;