|
|
|
@ -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; |
|
|
|
|