feat: 对接完接口
This commit is contained in:
+72
-44
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user