consumer模块完成度95%,能编译在安卓端运行,在解决数据获取和页面布局问题

This commit is contained in:
cyh666666
2026-02-27 08:20:43 +08:00
parent e606c597ca
commit b9acce6c35
1554 changed files with 23471 additions and 8551 deletions

View File

@@ -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 {