consumer模块完成度95%,能编译在安卓端运行,在解决数据获取和页面布局问题
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
<text>加载中...</text>
|
||||
</view>
|
||||
|
||||
<scroll-view v-else class="packet-list" scroll-y>
|
||||
<scroll-view v-else class="packet-list" direction="vertical">
|
||||
<view v-if="filteredPackets.length === 0" class="empty-state">
|
||||
<text class="empty-text">暂无相关红包</text>
|
||||
</view>
|
||||
@@ -55,58 +55,45 @@ type RedPacket = {
|
||||
|
||||
const loading = ref(true)
|
||||
const currentTab = ref(0)
|
||||
const packets = ref<RedPacket[]>([])
|
||||
const packets = ref<Array<RedPacket>>([])
|
||||
|
||||
const filteredPackets = computed((): RedPacket[] => {
|
||||
const filteredPackets = computed((): Array<RedPacket> => {
|
||||
const result: Array<RedPacket> = []
|
||||
if (currentTab.value === 0) {
|
||||
return packets.value.filter((p:RedPacket):boolean => p.status === 0)
|
||||
for (let i: number = 0; i < packets.value.length; i++) {
|
||||
if (packets.value[i].status === 0) {
|
||||
result.push(packets.value[i])
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return packets.value.filter((p:RedPacket):boolean => p.status !== 0)
|
||||
for (let i: number = 0; i < packets.value.length; i++) {
|
||||
if (packets.value[i].status !== 0) {
|
||||
result.push(packets.value[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
loadData()
|
||||
return result
|
||||
})
|
||||
|
||||
const loadData = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const rawList = await supabaseService.getUserRedPackets()
|
||||
packets.value = rawList.map((item: any): RedPacket => {
|
||||
let id = ''
|
||||
let amount = 0
|
||||
let name = ''
|
||||
let status = 0
|
||||
let expireAt = ''
|
||||
let createdAt = ''
|
||||
|
||||
if (item instanceof UTSJSONObject) {
|
||||
id = item.getString('id') ?? ''
|
||||
amount = item.getNumber('amount') ?? 0
|
||||
name = item.getString('name') ?? ''
|
||||
status = item.getNumber('status') ?? 0
|
||||
expireAt = item.getString('expire_at') ?? ''
|
||||
createdAt = item.getString('created_at') ?? ''
|
||||
} else {
|
||||
id = (item['id'] as string) ?? ''
|
||||
amount = (item['amount'] as number) ?? 0
|
||||
name = (item['name'] as string) ?? ''
|
||||
status = (item['status'] as number) ?? 0
|
||||
expireAt = (item['expire_at'] as string) ?? ''
|
||||
createdAt = (item['created_at'] as string) ?? ''
|
||||
}
|
||||
|
||||
return {
|
||||
id: id,
|
||||
const mappedList: Array<RedPacket> = []
|
||||
for (let i: number = 0; i < rawList.length; i++) {
|
||||
const item = rawList[i] as UTSJSONObject
|
||||
const packet: RedPacket = {
|
||||
id: item.getString('id') ?? '',
|
||||
user_id: '',
|
||||
amount: amount,
|
||||
name: name,
|
||||
status: status,
|
||||
expire_at: expireAt,
|
||||
created_at: createdAt
|
||||
amount: item.getNumber('amount') ?? 0,
|
||||
name: item.getString('name') ?? '',
|
||||
status: item.getNumber('status') ?? 0,
|
||||
expire_at: item.getString('expire_at') ?? '',
|
||||
created_at: item.getString('created_at') ?? ''
|
||||
} as RedPacket
|
||||
})
|
||||
mappedList.push(packet)
|
||||
}
|
||||
packets.value = mappedList
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
} finally {
|
||||
@@ -114,6 +101,10 @@ const loadData = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
loadData()
|
||||
})
|
||||
|
||||
const usePacket = (item: RedPacket) => {
|
||||
uni.switchTab({
|
||||
url: '/pages/mall/consumer/index'
|
||||
|
||||
Reference in New Issue
Block a user