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;