diff --git a/src/views/consume/gold/addCoinConsume.vue b/src/views/consume/gold/addCoinConsume.vue index 78ca338..09f897f 100644 --- a/src/views/consume/gold/addCoinConsume.vue +++ b/src/views/consume/gold/addCoinConsume.vue @@ -177,16 +177,18 @@ function validateInput() { // 验证金币总和 const totalAvailableGold = (user.value.nowSumGold) - // 如果未勾选使用红包,则只校验消耗金币数是否超过可用金币数 + // 校验消耗金币数是否超过可用金币数 if (user.value.jwcode && sumGold > totalAvailableGold) { - // 如果未勾选使用红包,直接提示金币不足 - if (addConsume.value.redMoney == 0) { + if (addConsume.value.redMoney === 1) { + ElMessage.error('红包抵扣额不足'); + // 如果红包额不足,清空已选红包 + selectedReds.value = [] + } else { ElMessage.error(t('elmessage.limitExceeded')); - // 将sumGold设置为null - addConsume.value.sumGold = null; - return false; } - // 如果勾选使用红包,且不满足原价条件,则会在validateRedLimit中提示 + // 将sumGold设置为null + addConsume.value.sumGold = null; + return false; } return true; @@ -492,6 +494,11 @@ const getUser = async function (jwcode) { console.log("请求成功", result); if (result.code === 200 && result.data) { + // 查询成功后,重置表单(保留精网号),防止上一个用户的数据干扰 + const currentJwcode = addConsume.value.jwcode; + resetForm(); + addConsume.value.jwcode = currentJwcode; + // 处理用户数据 user.value = { ...result.data, @@ -509,25 +516,15 @@ const getUser = async function (jwcode) { }; ElMessage.success(t('elmessage.searchSuccess')); - // 检查sumGold是否有值,如果有则重新计算金币分配 - if (addConsume.value.sumGold) { - const parsedSumGold = parseFloat(addConsume.value.sumGold); - if (!isNaN(parsedSumGold) && parsedSumGold > 0) { - const { free, permanent, task } = calculateCoins(parsedSumGold); - addConsume.value.freeGold = free; - addConsume.value.permanentGold = permanent; - addConsume.value.taskGold = task; - } - } - // 验证输入 - validateInput() - + // 如果当前开启了红包模式,获取红包列表 if (addConsume.value.redMoney === 1) { getRedList() } - + // 验证输入 + validateInput() + } else if (!result.data) { ElMessage.warning(t('elmessage.noUser')); user.value.jwcode = null