修改应援活动的钻石实时更新
This commit is contained in:
parent
06c059ebd8
commit
6d36f308a3
@ -334,13 +334,36 @@ async function handleConfirmContribute() {
|
||||
}
|
||||
|
||||
// 调用贡献API多次
|
||||
let successCount = 0
|
||||
let lastRemainingBalance = null
|
||||
let lastErrorMessage = ''
|
||||
for (let i = 0; i < quantity.value; i++) {
|
||||
await contributeItem(item, false, true)
|
||||
const res = await contributeItem(item, true, true)
|
||||
console.log(`第${i+1}次调用返回值:`, res)
|
||||
if (res && res.success !== false) {
|
||||
successCount++
|
||||
lastRemainingBalance = res.remainingBalance
|
||||
} else {
|
||||
lastErrorMessage = res?.message || '活动不在进行中,无法购买'
|
||||
}
|
||||
}
|
||||
|
||||
// 更新本地余额(使用最后一次成功的余额)
|
||||
if (lastRemainingBalance !== null) {
|
||||
await updateLocalBalanceFromResult(lastRemainingBalance)
|
||||
}
|
||||
|
||||
// 显示自定义结果提示
|
||||
if (successCount === quantity.value) {
|
||||
showResultToast('✅', `贡献成功\n+${item.cost * successCount} 贡献值已到账`)
|
||||
} else if (successCount > 0) {
|
||||
showResultToast('⚠️', `部分成功 ${successCount}/${quantity.value}`)
|
||||
} else {
|
||||
showResultToast('❌', lastErrorMessage || '贡献失败')
|
||||
}
|
||||
} finally {
|
||||
processingItems.delete(item.type)
|
||||
isContributing.value = false
|
||||
// 注意:不清除 selectedItem,让用户可以继续赠送或选择其他道具
|
||||
}
|
||||
}
|
||||
|
||||
@ -366,11 +389,13 @@ async function contributeItem(item, isRetry = false, silent = false) {
|
||||
try {
|
||||
// 使用 activity-config.js 中的 purchaseItem 函数
|
||||
const result = await purchaseItem(props.activityId, item.type, 1)
|
||||
console.log(`[contributeItem] result:`, result, 'isRetry:', isRetry, 'silent:', silent)
|
||||
|
||||
// 检查购买结果
|
||||
if (!result.success) {
|
||||
if (!silent) showResultToast('', result.message || '活动不在进行中,无法购买')
|
||||
return false
|
||||
const msg = result.message || '活动不在进行中,无法购买'
|
||||
if (!silent) showResultToast('', msg)
|
||||
return { success: false, message: msg }
|
||||
}
|
||||
|
||||
// 成功:触发反馈动画(重试时静默,不触发)
|
||||
@ -393,7 +418,7 @@ async function contributeItem(item, isRetry = false, silent = false) {
|
||||
}
|
||||
|
||||
// 重试时返回完整结果供 syncPendingActions 汇总;正常时返回 true
|
||||
return isRetry ? { contribution: result.totalContribution, remainingBalance: result.remainingBalance } : true
|
||||
return isRetry ? { contribution: result.totalContribution, remainingBalance: result.remainingBalance, success: true } : { success: true }
|
||||
} catch (error) {
|
||||
console.error('贡献失败:', error)
|
||||
|
||||
@ -404,12 +429,12 @@ async function contributeItem(item, isRetry = false, silent = false) {
|
||||
if (!queued) {
|
||||
// 队列已满,退还刚扣除的余额
|
||||
refundLocalBalance(item.cost)
|
||||
return false
|
||||
return { success: false, message: '网络异常,已加入队列' }
|
||||
}
|
||||
showResultToast('', '网络异常,已加入队列')
|
||||
return { success: false, message: '网络异常,已加入队列' }
|
||||
}
|
||||
|
||||
return false
|
||||
return { success: false, message: error.message || '贡献失败' }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -22,11 +22,11 @@
|
||||
/>
|
||||
|
||||
<!-- 实时贡献列表 -->
|
||||
<ContributionList
|
||||
<!-- <ContributionList
|
||||
v-if="activityId && !isLoading"
|
||||
:activity-id="activityId"
|
||||
class="contribution-list-wrapper"
|
||||
/>
|
||||
/> -->
|
||||
|
||||
<!-- 舞台区域 -->
|
||||
<StageArea
|
||||
|
||||
Loading…
Reference in New Issue
Block a user