consumer模块完成度95%,能编译在安卓端运行,在解决数据获取和页面布局问题
This commit is contained in:
@@ -4,10 +4,10 @@
|
||||
<view class="section-title">提现至</view>
|
||||
|
||||
<view class="bank-selector" @click="openBankSelector">
|
||||
<view class="bank-info" v-if="selectedBank">
|
||||
<text class="bank-name">{{ selectedBank?.bank_name }}</text>
|
||||
<view class="bank-info" v-if="selectedBank != null">
|
||||
<text class="bank-name">{{ selectedBank.bank_name }}</text>
|
||||
<text class="card-type">储蓄卡</text>
|
||||
<text class="card-no">尾号 {{ getTailNumber(selectedBank?.card_number) }}</text>
|
||||
<text class="card-no">尾号 {{ getTailNumber(selectedBank.card_number) }}</text>
|
||||
</view>
|
||||
<view class="bank-info placeholder" v-else>
|
||||
<text>请选择到账银行卡</text>
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
<button
|
||||
class="submit-btn"
|
||||
:disabled="!isValid"
|
||||
:disabled="isValid === false"
|
||||
:loading="loading"
|
||||
@click="submitWithdraw"
|
||||
>
|
||||
@@ -60,7 +60,7 @@
|
||||
<text class="bank-name-popup">{{ item.bank_name }}</text>
|
||||
<text class="card-no-popup">({{ getTailNumber(item.card_number) }})</text>
|
||||
</view>
|
||||
<text v-if="selectedBank?.id == item.id" class="check">✓</text>
|
||||
<text v-if="selectedBank != null && selectedBank.id == item.id" class="check">✓</text>
|
||||
</view>
|
||||
<view class="add-card-btn" @click="navigateToAddCard">
|
||||
<text>+ 添加银行卡</text>
|
||||
@@ -90,26 +90,21 @@ const showBankPopup = ref(false)
|
||||
|
||||
const isValid = computed((): boolean => {
|
||||
const val = parseFloat(amount.value)
|
||||
if (isNaN(val) || val <= 0) return false
|
||||
// 检查 val 是否有效(替代 isNaN)
|
||||
if (val == null || val <= 0) return false
|
||||
if (val > balance.value) return false
|
||||
if (selectedBank.value == null) return false
|
||||
return true
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
loadData()
|
||||
})
|
||||
|
||||
const loadData = async () => {
|
||||
const loadData = async (): Promise<void> => {
|
||||
try {
|
||||
const bal = await supabaseService.getUserBalance()
|
||||
balance.value = bal
|
||||
|
||||
// 获取银行卡
|
||||
const res = await supabaseService.getUserBankCards()
|
||||
// 转换类型
|
||||
const list: BankCard[] = []
|
||||
for(let i=0; i<res.length; i++) {
|
||||
const list: Array<BankCard> = []
|
||||
for(let i: number = 0; i < res.length; i++) {
|
||||
const item = res[i]
|
||||
|
||||
let id = ''
|
||||
@@ -121,23 +116,19 @@ const loadData = async () => {
|
||||
bankName = item.getString('bank_name') ?? ''
|
||||
cardNum = item.getString('card_number') ?? ''
|
||||
} else {
|
||||
const m = item as Map<string, any>
|
||||
const idVal = m.get('id')
|
||||
id = idVal != null ? (idVal as string) : ''
|
||||
|
||||
const nameVal = m.get('bank_name')
|
||||
bankName = nameVal != null ? (nameVal as string) : ''
|
||||
|
||||
const numVal = m.get('card_number')
|
||||
cardNum = numVal != null ? (numVal as string) : ''
|
||||
const itemObj = item as UTSJSONObject
|
||||
id = itemObj.getString('id') ?? ''
|
||||
bankName = itemObj.getString('bank_name') ?? ''
|
||||
cardNum = itemObj.getString('card_number') ?? ''
|
||||
}
|
||||
|
||||
if (id != '') {
|
||||
list.push({
|
||||
const card: BankCard = {
|
||||
id: id,
|
||||
bank_name: bankName,
|
||||
card_number: cardNum
|
||||
})
|
||||
} as BankCard
|
||||
list.push(card)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,6 +141,10 @@ const loadData = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
loadData()
|
||||
})
|
||||
|
||||
const getTailNumber = (cardNo: string | null): string => {
|
||||
if (cardNo == null) return ''
|
||||
if (cardNo.length <= 4) return cardNo
|
||||
@@ -177,7 +172,7 @@ const navigateToAddCard = () => {
|
||||
}
|
||||
|
||||
const submitWithdraw = async () => {
|
||||
if (!isValid.value) return
|
||||
if (isValid.value === false) return
|
||||
loading.value = true
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user