修改应援活动的钻石实时更新

This commit is contained in:
zheng020 2026-05-16 04:31:11 +08:00
parent 06c059ebd8
commit 6d36f308a3
2 changed files with 35 additions and 10 deletions

View File

@ -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 || '贡献失败' }
}
}

View File

@ -22,11 +22,11 @@
/>
<!-- 实时贡献列表 -->
<ContributionList
<!-- <ContributionList
v-if="activityId && !isLoading"
:activity-id="activityId"
class="contribution-list-wrapper"
/>
/> -->
<!-- 舞台区域 -->
<StageArea