diff --git a/frontend/src/views/accounts/components/AccountResetCredits.vue b/frontend/src/views/accounts/components/AccountResetCredits.vue
index a9a1e2ba8..ba7137e89 100644
--- a/frontend/src/views/accounts/components/AccountResetCredits.vue
+++ b/frontend/src/views/accounts/components/AccountResetCredits.vue
@@ -96,6 +96,11 @@ function creditOptionClasses(creditId: string) {
function creditOptionLabel(credit: { title: string | null, expiresAt: string | null }) {
return `${credit.title || 'Codex 主动重置卡'},${expiryLabel(credit.expiresAt)}`
}
+
+async function handleConfirmConsume() {
+ if (await confirmConsume())
+ panelOpen.value = false
+}
@@ -254,7 +259,7 @@ function creditOptionLabel(credit: { title: string | null, expiresAt: string | n
返回
-
+
{{ ambiguous ? '再次确认' : '确认重置' }}
diff --git a/frontend/src/views/accounts/composables/useAccountResetCredits.ts b/frontend/src/views/accounts/composables/useAccountResetCredits.ts
index 1f00f701d..19eac54c9 100644
--- a/frontend/src/views/accounts/composables/useAccountResetCredits.ts
+++ b/frontend/src/views/accounts/composables/useAccountResetCredits.ts
@@ -160,10 +160,10 @@ export function useAccountResetCredits(options: {
pendingOperation.value = null
}
- async function confirmConsume() {
+ async function confirmConsume(): Promise {
const operation = pendingOperation.value
if (!operation || consuming.value)
- return
+ return false
consuming.value = true
try {
@@ -179,7 +179,7 @@ export function useAccountResetCredits(options: {
if (!confirmed) {
toast.error(resetResultMessage(result.code))
await loadCredits()
- return
+ return false
}
const successMessage = result.code === 'already_redeemed'
@@ -199,6 +199,7 @@ export function useAccountResetCredits(options: {
{ duration: 5000 },
)
}
+ return true
}
catch (error: unknown) {
showConfirm.value = false
@@ -214,6 +215,7 @@ export function useAccountResetCredits(options: {
toast.error(errorMessage(error, '额度重置失败'))
await loadCredits()
}
+ return false
}
finally {
consuming.value = false