feat(抽奖活动页): 对接转账和兑换金币接口

This commit is contained in:
hzj 2025-10-24 16:30:13 +08:00
parent 62f9d8f6db
commit 4715bfa089

View File

@ -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 }]"
>
<img src="/src/assets/icon/dollar.png" alt="" style="width: 40%" />
<div style="font-weight: 500; color: #131111">${{ coin.price }}</div>
@ -310,7 +310,7 @@
font-weight: 590;
"
@click="transfer"
:disabled="!selectedCoin || !selectedPayee.value.id"
:disabled="!selectedCoin || !selectedPayee.value?.id"
>
Transfer
</div>
@ -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 }]"
>
<img src="/src/assets/icon/coin.png" alt="" style="width: 40%" />
<div style="font-size: 0.7em">{{ coin.amount }} coins x1</div>
@ -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
</div>
@ -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)
}
}