feat: 对接完接口

This commit is contained in:
anonymous
2025-01-09 15:47:16 +08:00
parent e70ca852d8
commit ffb887f3bf
12 changed files with 416 additions and 255 deletions
+72 -44
View File
@@ -13,7 +13,12 @@ import NavBar from '@/components/NavBar.vue'
import VueQrcode from '@chenfengyuan/vue-qrcode'
import { useUserStore } from '@/store'
import Avatar from '@/components/Avatar.vue'
import { getCommunityMyInviteAPI } from '@/service'
import {
getCommunityInviteFirstAPI,
getCommunityInviteRewardAPI,
getCommunityMyInviteAPI,
} from '@/service'
import { showModal } from '@/utils'
const userStore = useUserStore()
@@ -37,6 +42,61 @@ const { list } = useListPageRequest((params) => {
return res.data
})
})
const inviteInfo = ref<any>(null)
const loadInviteInfo = async () => {
const { data } = await getCommunityInviteFirstAPI()
inviteInfo.value = data
// inviteInfo.value = {
// num: 10,
// isuserauth: 1,
// realrewards: '200',
// jianglitiaojian: {
// '10': '3000',
// '20': '5000',
// '30': '15000',
// '40': '30000',
// '50': '50000',
// },
// open: 1,
// }
}
onShow(async () => {
await loadInviteInfo()
})
const taskList = computed(() => {
if (!inviteInfo.value) return []
const inviteTask = Object.keys(inviteInfo.value.jianglitiaojian)
const inviteTaskList = inviteTask.map((key) => ({
title: `邀请${key}人(${inviteInfo.value.num}/${key})`,
desc: `每月额外领取${inviteInfo.value.jianglitiaojian[key]}元数济金`,
level: key,
status: Number(inviteInfo.value.num) >= Number(key),
open: false,
}))
// 查找最后一个完成的任务,并设置open为true
const lastCompletedTask = inviteTaskList.findLast((item) => item.status)
if (lastCompletedTask) {
lastCompletedTask.open = inviteInfo.value.open
}
return [
{
title: '注册实名',
desc: `领取${inviteInfo.value.realrewards}元救济金`,
status: inviteInfo.value.isuserauth,
open: false,
},
...inviteTaskList,
]
})
async function onGetReward(level) {
await getCommunityInviteRewardAPI({ level })
showModal('领取成功')
await loadInviteInfo()
}
</script>
<template>
@@ -72,56 +132,24 @@ const { list } = useListPageRequest((params) => {
<view class="mt-70 w-345 mx-auto">
<view
class="bg-#F3F8FF rounded-10 border-#3B81F3 border-2 border-solid p-15 flex items-start"
v-for="item of taskList"
:key="item.title"
>
<view class="flex-1">
<view class="text-15 text-#333 font-500">注册实名</view>
<view class="text-12 text-#333 mt-8">领取20000元救济金</view>
</view>
<view class="bg-#C4F7C4 rounded-4 px-10 py-4 leading-12 text-#62C162 text-12">已完成</view>
</view>
<view
class="mt-2 bg-#F3F8FF rounded-10 border-#3B81F3 border-2 border-solid p-15 flex items-start"
>
<view class="flex-1">
<view class="text-15 text-#333 font-500">
邀请10人
<text class="text-#50D0FF">({{ inviteData.num }}</text>
<text class="text-#50D0FF">/10)</text>
</view>
<view class="text-12 text-#333 mt-8">每月额外领取3000元数济金</view>
</view>
<view>
<view
class="w-fit ml-auto mr-0 bg-#C4F7C4 rounded-4 px-10 py-4 leading-12 text-#62C162 text-12 mb-8"
>
已完成
</view>
<view
class="w-fit ml-auto mr-0 bg-#F3CB3B33 rounded-4 px-10 py-4 leading-12 text-#FFA600 text-12"
>
领取救济金
</view>
</view>
</view>
<view
class="mt-2 bg-#F3F8FF rounded-10 border-#3B81F3 border-2 border-solid p-15 flex items-start"
>
<view class="flex-1">
<view class="text-15 text-#333 font-500">
邀请10人
<text class="text-#50D0FF">(10</text>
<text class="text-#">/20)</text>
</view>
<view class="text-12 text-#333 mt-8">每月额外领取3000元数济金</view>
<view class="text-15 text-#333 font-500">{{ item.title }}</view>
<view class="text-12 text-#333 mt-8">{{ item.desc }}</view>
</view>
<view>
<view
class="w-fit ml-auto mr-0 bg-#C4F7C4 rounded-4 px-10 py-4 leading-12 text-#62C162 text-12 mb-8"
v-if="item.status"
>
已完成
</view>
<view
class="w-fit ml-auto mr-0 bg-#F3CB3B33 rounded-4 px-10 py-4 leading-12 text-#FFA600 text-12"
v-if="item.open"
@click="onGetReward(item.level)"
>
领取救济金
</view>
@@ -131,17 +159,17 @@ const { list } = useListPageRequest((params) => {
<view class="bg-#FFFFFFE5 rounded-20 mt-30 w-345 mx-auto p-15 flex">
<view class="flex-1 text-center">
<view class="text-18 text-#333">团队人数</view>
<view class="text-gradient text-18 mt-8">3000</view>
<view class="text-gradient text-18 mt-8">{{ inviteData.num }}</view>
<view class="font-500 text-14 mt-4">直推人数</view>
</view>
<view class="flex-1 text-center">
<view class="text-18 text-#333">团队人数</view>
<view class="text-gradient text-18 mt-8">3000</view>
<view class="text-18 text-#333">我的佣金</view>
<view class="text-gradient text-18 mt-8">{{ inviteData.performance }}</view>
<view class="font-500 text-14 mt-4">直推业绩</view>
</view>
</view>
<view class="mt-15 w-345 mx-auto">
<view class="ml-15 text-18 text-white">团队成员3/</view>
<view class="ml-15 text-18 text-white">团队成员{{ inviteData.num }}/</view>
<view class="mt-15 bg-white px-15 pt-15 pb-4 rounded-10" v-for="item of list" :key="item.id">
<view class="flex items-center">
<Avatar :src="item.avatar" class="w-50 h-50" mode="aspectFill" />