From 4715bfa08927dd057908b6a6912d96d681cd032f Mon Sep 17 00:00:00 2001 From: hzj <1304805162@qq.com> Date: Fri, 24 Oct 2025 16:30:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=8A=BD=E5=A5=96=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E9=A1=B5):=20=E5=AF=B9=E6=8E=A5=E8=BD=AC=E8=B4=A6=E5=92=8C?= =?UTF-8?q?=E5=85=91=E6=8D=A2=E9=87=91=E5=B8=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Activities/Lottery/Lottery.vue | 57 ++++++++++++++++-------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/src/views/Activities/Lottery/Lottery.vue b/src/views/Activities/Lottery/Lottery.vue index 772b32a..e1f70a3 100644 --- a/src/views/Activities/Lottery/Lottery.vue +++ b/src/views/Activities/Lottery/Lottery.vue @@ -289,7 +289,7 @@ v-for="coin in coinOptions" :key="coin.id" @click="selectCoin(coin)" - :class="['coin-item', { selected: selectedCoin.id === coin.id }]" + :class="['coin-item', { selected: selectedCoin?.id === coin.id }]" >
${{ coin.price }}
@@ -310,7 +310,7 @@ font-weight: 590; " @click="transfer" - :disabled="!selectedCoin || !selectedPayee.value.id" + :disabled="!selectedCoin || !selectedPayee.value?.id" > Transfer @@ -349,7 +349,7 @@ v-for="coin in coinOptions" :key="coin.id" @click="selectCoin(coin)" - :class="['coin-item', { selected: selectedCoin.id == coin.id }]" + :class="['coin-item', { selected: selectedCoin?.id == coin.id }]" >
{{ coin.amount }} coins x1
@@ -370,7 +370,8 @@ background: linear-gradient(135deg, #bb92ff 2.82%, #8b45ff 99.15%); font-weight: 590; " - :disabled="!selectedCoin.id || !selectedPayee.value?.id" + :disabled="!selectedCoin || !selectedPayee.value?.id" + @click="exchangeCoinBt" > Exchange @@ -988,7 +989,7 @@ const coinOptions = ref([ //选择金币 const selectCoin = (coin) => { // 单选逻辑:如果已经选中相同的金币,则取消选择;否则选中新的金币 - if (selectedCoin.value.id === coin.id) { + if (selectedCoin.value?.id == coin.id) { selectedCoin.value = null } else { selectedCoin.value = coin @@ -1011,37 +1012,55 @@ const transfer = async () => { const transferData = { amount: selectedCoin.value.price, acceptUserId: selectedPayee.value?.id, - acceptMethod: 'BANK_TRANSFER', - // password: password } try { // 调用转账接口 - const response = await userBankTransfer(transferData) + const response = await transferActivityDollar(transferData) if (response.status) { showSuccess( - `Successfully transferred $${selectedCoinData.price} to ${selectedPayee.value?.name}` + `Successfully transferred $${selectedCoin.value.price} to ${selectedPayee.value?.name}` ) } else { - showError(`Failed to transfer $${selectedCoinData.price}`) + showError(`Failed to transfer $${selectedCoin.value.price}`) } // 重置选择 selectedCoin.value = null - // 刷新银行余额 - await fetchBankBalance() + getDrawableAmount() //刷新可提现金额 } catch (error) { - // 错误处理 - console.error('Transfer failed:', error) + showError(error.errorMsg) + } +} - if (error.errorCode === 5000) { - showError('Insufficient balance') - } else if (error.errorCode === 5010 || error.errorCode === 5009) { - showError('Payment password error') +//兑换代币 +const exchangeCoinBt = async () => { + if (!selectedCoin.value) { + showError('Please select an amount first') + return + } + + // 构造请求参数 + const transferData = { + amount: selectedCoin.value.price, + } + + try { + // 调用转账接口 + const response = await exchangeCoin(transferData) + if (response.status) { + showSuccess(`Successfully exchange $${selectedCoin.value.amount} coins`) } else { - showError('Transfer failed, please try again later') + showError(`Failed to exchange $${selectedCoin.value.amount} coins`) } + + // 重置选择 + selectedCoin.value = null + + getDrawableAmount() //刷新可提现金额 + } catch (error) { + showError(error.errorMsg) } }