feat: 对接完接口
This commit is contained in:
@@ -1,11 +1,15 @@
|
||||
const baseUrl = import.meta.env.VITE_SERVER_BASEURL
|
||||
export const useCaptcha = () => {
|
||||
const codeUrl = ref('')
|
||||
const t = ref(Date.now())
|
||||
|
||||
const codeUrl = computed(() => {
|
||||
return baseUrl + '/captcha.html?t=' + t.value
|
||||
})
|
||||
const refreshCode = () => {
|
||||
const baseUrl = import.meta.env.VITE_SERVER_BASEURL
|
||||
codeUrl.value = baseUrl + '/captcha.html?t=' + Date.now()
|
||||
t.value = Date.now()
|
||||
}
|
||||
onMounted(() => {
|
||||
refreshCode()
|
||||
})
|
||||
return { codeUrl, refreshCode }
|
||||
return { codeUrl, t, refreshCode }
|
||||
}
|
||||
|
||||
@@ -13,30 +13,40 @@ import { useUserStore } from '@/store'
|
||||
|
||||
const userStore = useUserStore()
|
||||
|
||||
const tabList = [
|
||||
{ label: '我的余额', value: 0 },
|
||||
{ label: '救济金余额', value: 1 },
|
||||
{ label: '养老金余额', value: 2 },
|
||||
{ label: '佣金余额', value: 3 },
|
||||
]
|
||||
const tabList = computed(() => {
|
||||
return [
|
||||
{ label: '我的余额', value: 1, money: userStore.userInfo.money },
|
||||
{ label: '救济金余额', value: 2, money: userStore.userInfo.moneyjiu },
|
||||
{ label: '养老金余额', value: 3, money: userStore.userInfo.moneyold },
|
||||
{ label: '团队佣金余额', value: 4, money: userStore.userInfo.moneyyong },
|
||||
]
|
||||
})
|
||||
const tabIndex = ref(0)
|
||||
|
||||
const detailInfo = ref({
|
||||
point: 1,
|
||||
score: 1000,
|
||||
suminvest: '10000',
|
||||
})
|
||||
const { list: assetList } = useListPageRequest((params) =>
|
||||
const { list: assetList, onReload } = useListPageRequest(
|
||||
(params) =>
|
||||
getMyAssetAPI(params).then((res) => {
|
||||
detailInfo.value = res.data
|
||||
res.data.data = res.data.list
|
||||
return res.data
|
||||
return res
|
||||
}),
|
||||
{
|
||||
autoRequest: false,
|
||||
},
|
||||
)
|
||||
|
||||
onLoad((options) => {
|
||||
tabIndex.value = Number(options.tabIndex ?? 0)
|
||||
})
|
||||
watch(
|
||||
() => tabIndex.value,
|
||||
(index) => {
|
||||
onReload({
|
||||
type: unref(tabList)[index].value,
|
||||
})
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
},
|
||||
)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -44,18 +54,18 @@ onLoad((options) => {
|
||||
<view class="absolute top-130 -left-55 btn-gradient text-white rounded-full w-172 h-172"></view>
|
||||
<view class="flex justify-around">
|
||||
<view
|
||||
v-for="tabItem in tabList"
|
||||
@click="tabIndex = tabItem.value"
|
||||
v-for="(tabItem, index) in tabList"
|
||||
@click="tabIndex = index"
|
||||
:key="tabItem.value"
|
||||
class="flex items-center bg-#DEEBFF text-#3B81F3 rounded-full justify-center py-4 px-10"
|
||||
:class="{ 'btn-gradient text-white': tabIndex === tabItem.value }"
|
||||
:class="{ 'btn-gradient text-white': tabIndex === index }"
|
||||
>
|
||||
<view class="text-14">{{ tabItem.label }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="p-15">
|
||||
<view class="text-17">{{ tabList[tabIndex].label }}</view>
|
||||
<view class="text-30">¥{{ detailInfo.suminvest }}</view>
|
||||
<view class="text-30">¥{{ tabList[tabIndex].money }}</view>
|
||||
</view>
|
||||
<view class="relative z-1 main-content pt-40 pb-30 rounded-t-15">
|
||||
<view class="mb-15 px-25">【{{ tabList[tabIndex].label }}】明细</view>
|
||||
|
||||
@@ -21,7 +21,9 @@
|
||||
class="m-15 text-white flex rounded-tl-10 rounded-br-10 justify-between items-center p-15 bg-[linear-gradient(90deg,rgba(59,129,243,0.5),#3B81F3)]"
|
||||
>
|
||||
<view class="text-14">{{ type === 0 ? '养老金' : '团队佣金' }}余额</view>
|
||||
<view class="text-17 font-bold">{{ userStore.userInfo.money }}</view>
|
||||
<view class="text-17 font-bold">
|
||||
{{ type === 0 ? userStore.userInfo.moneyold : userStore.userInfo.moneyyong }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="p-15 bg-white shadow-[0_-2px_3px_rgba(10,68,245,0.1)] rounded-10">
|
||||
<view class="mt-15">
|
||||
@@ -34,7 +36,12 @@
|
||||
placeholder="转出金额"
|
||||
class="text-14 text-#333 flex-1"
|
||||
/>
|
||||
<view class="text-12 text-gradient" @click="convertNum = userStore.userInfo.score">
|
||||
<view
|
||||
class="text-12 text-gradient"
|
||||
@click="
|
||||
convertNum = type === 0 ? userStore.userInfo.moneyold : userStore.userInfo.moneyyong
|
||||
"
|
||||
>
|
||||
全部
|
||||
</view>
|
||||
</view>
|
||||
@@ -62,7 +69,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import { convertScoreAPI } from '@/service'
|
||||
import { convertScoreAPI, getOldMoneyTransferAPI, getYongMoneyTransferAPI } from '@/service'
|
||||
import { useUserStore } from '@/store'
|
||||
import { mergeStep, showModal } from '@/utils'
|
||||
|
||||
@@ -78,8 +85,9 @@ const onWithdrawalDetail = () => {
|
||||
|
||||
const onSubmit = mergeStep(async () => {
|
||||
await showModal('确认转换?')
|
||||
await convertScoreAPI({
|
||||
score: convertNum.value,
|
||||
const request = type.value === 0 ? getOldMoneyTransferAPI : getYongMoneyTransferAPI
|
||||
await request({
|
||||
money: convertNum.value,
|
||||
})
|
||||
await showModal('转换成功')
|
||||
userStore.loadUserInfo()
|
||||
|
||||
@@ -66,7 +66,7 @@ const onLottery = () => {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.invite-page {
|
||||
background-image: url('@/static/images/page-sub/invite-bg.png');
|
||||
background-image: url('@/static/images/page-sub/invite-bg.jpg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: top;
|
||||
background-size: 100%;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
</route>
|
||||
<template>
|
||||
<view class="min-h-screen pb-100">
|
||||
<template v-if="list.length > 0">
|
||||
<view
|
||||
class="flex px-15 py-8 border-b border-#E5E5E5 border-b-solid"
|
||||
v-for="item in list"
|
||||
@@ -57,6 +58,10 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<template v-else>
|
||||
<wd-status-tip image="content" tip="暂无内容" />
|
||||
</template>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -71,8 +71,6 @@ const userStore = useUserStore()
|
||||
|
||||
const form = ref({
|
||||
money: '',
|
||||
bankid: '6',
|
||||
tpassword: '',
|
||||
})
|
||||
|
||||
const onWithdrawalDetail = () => {
|
||||
@@ -81,22 +79,6 @@ const onWithdrawalDetail = () => {
|
||||
})
|
||||
}
|
||||
|
||||
const typeName = computed(() => {
|
||||
return ['支付宝', '微信', '银行卡'][Number(unref(currentBank)?.typedata) - 1]
|
||||
})
|
||||
|
||||
const currentBank = ref<any>(null)
|
||||
const onSelectPayType = () => {
|
||||
uni.$once('withdrawal-type', (data: any) => {
|
||||
form.value.bankid = data.id
|
||||
console.log(data)
|
||||
currentBank.value = data
|
||||
})
|
||||
uni.navigateTo({
|
||||
url: '/pages-sub/withdrawal-type/index?type=select',
|
||||
})
|
||||
}
|
||||
|
||||
const onSubmit = async () => {
|
||||
if (!form.value.money) {
|
||||
return uni.showToast({
|
||||
@@ -104,18 +86,7 @@ const onSubmit = async () => {
|
||||
icon: 'none',
|
||||
})
|
||||
}
|
||||
if (!form.value.bankid) {
|
||||
return uni.showToast({
|
||||
title: '请选择收款方式',
|
||||
icon: 'none',
|
||||
})
|
||||
}
|
||||
if (!form.value.tpassword) {
|
||||
return uni.showToast({
|
||||
title: '请输入交易密码',
|
||||
icon: 'none',
|
||||
})
|
||||
}
|
||||
|
||||
await showModal('确认提现?')
|
||||
await submitWithdrawalAPI(form.value)
|
||||
await showModal('提交成功')
|
||||
|
||||
@@ -10,6 +10,18 @@
|
||||
<template>
|
||||
<view class="home-page">
|
||||
<NavBar />
|
||||
<template v-if="userStore.userInfo.banknum">
|
||||
<view class="main-container w-345 h-185 mx-auto rounded-14 px-20 pt-70 text-12">
|
||||
<view>姓名:{{ userStore.userInfo.nickname }}</view>
|
||||
<view class="mt-10">社会xx号码:{{ userStore.userInfo.banknum.substring(0, 4) }}</view>
|
||||
<view class="mt-15">中国工商银行卡号</view>
|
||||
<view class="mt-5 text-14 text-#333">
|
||||
<!-- 每四位数字插入空格 -->
|
||||
{{ userStore.userInfo.banknum.replace(/(\d{4})(?=\d)/g, '$1 ') }}
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<template v-else>
|
||||
<view class="main-container w-345 h-185 mx-auto rounded-14 px-20 pt-70 text-12">
|
||||
<view>姓名:***</view>
|
||||
<view class="mt-15">社会xx号码:***</view>
|
||||
@@ -21,6 +33,7 @@
|
||||
>
|
||||
开通个人养老账号
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<view class="bg-white pt-15 px-15 rounded-10 m-15">
|
||||
<view class="flex justify-between items-center">
|
||||
@@ -90,7 +103,13 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import { downloadAppAPI, getIntroductionAPI, getRealNameAuthAPI } from '@/service'
|
||||
import {
|
||||
downloadAppAPI,
|
||||
getIntroductionAPI,
|
||||
getOpenPersonalAccountAPI,
|
||||
getRealNameAuthAPI,
|
||||
} from '@/service'
|
||||
import { useUserStore } from '@/store'
|
||||
import { showModal } from '@/utils'
|
||||
|
||||
defineOptions({
|
||||
@@ -161,8 +180,12 @@ watch(
|
||||
},
|
||||
)
|
||||
|
||||
const handleOpenAccount = () => {
|
||||
showModal('开通个人养老账户时,需邀请一名用户')
|
||||
const userStore = useUserStore()
|
||||
const handleOpenAccount = async () => {
|
||||
await getOpenPersonalAccountAPI()
|
||||
await showModal('开通个人养老账户成功')
|
||||
userStore.loadUserInfo()
|
||||
// showModal('开通个人养老账户时,需邀请一名用户')
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
+107
-43
@@ -15,25 +15,37 @@
|
||||
<view class="flex mt-30">
|
||||
<view class="flex-1 text-center">
|
||||
<view class="text-14">全部</view>
|
||||
<view class="text-16 font-bold mt-15">2份</view>
|
||||
<view class="text-16 font-bold mt-15">
|
||||
{{ userStore.userInfo.yanglao + userStore.userInfo.yiliao }}份
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-1 text-center">
|
||||
<view class="text-14">养老</view>
|
||||
<view class="text-16 font-bold mt-15">1份</view>
|
||||
<view class="text-16 font-bold mt-15">{{ userStore.userInfo.yanglao }}份</view>
|
||||
</view>
|
||||
<view class="flex-1 text-center">
|
||||
<view class="text-14">医疗</view>
|
||||
<view class="text-16 font-bold mt-15">未保障</view>
|
||||
<view class="text-16 font-bold mt-15">
|
||||
{{ userStore.userInfo.yiliao ? '保障中' : '未保障' }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="flex p-15 mt-15">
|
||||
<view class="px-24 py-4 rounded-full btn-gradient text-white text-14">养老</view>
|
||||
<view class="ml-15 px-24 py-4 rounded-full bg-#DEEBFF text-#3B81F3 text-14">医疗</view>
|
||||
<view
|
||||
v-for="item in tabList"
|
||||
:key="item.value"
|
||||
class="px-24 mr-15 bg-#DEEBFF text-#3B81F3 py-4 rounded-full text-14"
|
||||
:class="{ 'btn-gradient text-white': item.value === tabValue }"
|
||||
@click="tabValue = item.value"
|
||||
>
|
||||
{{ item.title }}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view>
|
||||
<template v-if="tabValue === 1">
|
||||
<view
|
||||
v-for="item in investmentList"
|
||||
:key="item.id"
|
||||
@@ -43,60 +55,89 @@
|
||||
<image
|
||||
class="rounded-10 w-100 h-100"
|
||||
mode="aspectFill"
|
||||
src="https://picsum.photos/100/100"
|
||||
:src="getImageUrl(item.rightimage)"
|
||||
/>
|
||||
<view class="flex-1 ml-15">
|
||||
<view class="text-15 text-#333 font-bold">{{ item.name }}</view>
|
||||
<view class="flex items-center mt-10">
|
||||
<view class="px-14 py-2 text-12 text-#D6A165 rounded-2 bg-#FFEBD4">商业型</view>
|
||||
<view class="ml-8 px-14 py-2 text-12 text-#3B81F3 rounded-2 bg-#D4E8FF">低风险</view>
|
||||
<view class="w-200 flex items-center mt-10 overflow-x-auto">
|
||||
<view
|
||||
class="px-14 mr-15 py-2 whitespace-nowrap text-12 text-#D6A165 rounded-2 bg-#FFEBD4"
|
||||
v-for="(tag, index) in item.labeltag.split(',')"
|
||||
:key="tag"
|
||||
:class="{
|
||||
'!text-#3B81F3 !bg-#D4E8FF': index % 2 === 1,
|
||||
}"
|
||||
>
|
||||
{{ tag }}
|
||||
</view>
|
||||
<view class="text-12 mt-15 text-#999">
|
||||
此处是产品简介,此处是产品简介,此处是产品简介,此处是产
|
||||
</view>
|
||||
<view class="text-12 mt-15 text-#999" v-html="item.content"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex items-center mt-15">
|
||||
<view class="flex-1 text-center">
|
||||
<view class="text-15 text-#FF3B30">1.99(%)</view>
|
||||
<view class="text-15 text-#FF3B30">{{ item.dividend }}(%)</view>
|
||||
<view class="text-14 text-#999">日收益</view>
|
||||
</view>
|
||||
<view class="text-#D9D9D9">|</view>
|
||||
<view class="flex-1 text-center">
|
||||
<view class="text-15 text-#FF3B30">365(天)</view>
|
||||
<view class="text-15 text-#FF3B30">{{ item.days }}(天)</view>
|
||||
<view class="text-14 text-#999">周期</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="text-center text-15 text-white rounded-full py-8 btn-gradient mt-15">
|
||||
<view
|
||||
class="text-center text-15 text-white rounded-full py-8 btn-gradient mt-15"
|
||||
@click="onInvest(item)"
|
||||
>
|
||||
购买
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<view class="p-15 bg-white rounded-20 mx-auto w-345 relative mb-15">
|
||||
<template v-else>
|
||||
<view
|
||||
v-for="item in investmentList"
|
||||
:key="item.id"
|
||||
class="p-15 bg-white rounded-20 mx-auto w-345 relative mb-15"
|
||||
>
|
||||
<view class="flex">
|
||||
<image
|
||||
class="rounded-10 w-100 h-100"
|
||||
mode="aspectFill"
|
||||
src="https://picsum.photos/100/100"
|
||||
:src="getImageUrl(item.leftimage)"
|
||||
/>
|
||||
<view class="flex-1 ml-15">
|
||||
<view class="text-15 text-#333 font-bold">好医保·长期医保(旗舰版)</view>
|
||||
<view class="text-12 mt-15 text-#999">
|
||||
此处是产品简介,此处是产品简介,此处是产品简介,此处是产
|
||||
</view>
|
||||
<view class="text-15 text-#333 font-bold">{{ item.name }}</view>
|
||||
<view class="text-12 mt-15 text-#999" v-html="item.content" />
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
class="text-center text-15 text-white rounded-full py-8 border-#3B81F3 border-1 border-solid mt-15"
|
||||
>
|
||||
<text class="text-gradient">查看权益</text>
|
||||
<text class="text-gradient" @click="onShowRights(item)">查看权益</text>
|
||||
</view>
|
||||
<view class="text-center text-15 text-white rounded-full py-8 btn-gradient mt-15">
|
||||
<view
|
||||
class="text-center text-15 text-white rounded-full py-8 btn-gradient mt-15"
|
||||
@click="onInvest(item)"
|
||||
>
|
||||
我要投保
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
<wd-action-sheet v-model="showPayType" :panels="panels" @select="onSelectPayType" />
|
||||
<wd-popup
|
||||
v-model="showRightConfig.show"
|
||||
:title="`${showRightConfig.data?.name}权益`"
|
||||
custom-style="border-radius: 15px"
|
||||
>
|
||||
<view>
|
||||
<image
|
||||
class="w-345 h-345"
|
||||
:src="getImageUrl(showRightConfig.data?.rightimage)"
|
||||
mode="widthFix"
|
||||
/>
|
||||
</view>
|
||||
</wd-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -107,28 +148,37 @@ import WechatIcon from '@/static/images/invest/wechat-icon.png'
|
||||
import UnionpayIcon from '@/static/images/invest/unionpay-icon.png'
|
||||
import { getInvestmentListAPI, submitInvestAPI } from '@/service'
|
||||
import { useUserStore } from '@/store'
|
||||
import { mergeStep, showModal } from '@/utils'
|
||||
import { getImageUrl, mergeStep, showModal } from '@/utils'
|
||||
|
||||
defineOptions({
|
||||
name: 'Home',
|
||||
})
|
||||
const showPayType = ref(false)
|
||||
const panels = ref([
|
||||
{
|
||||
iconUrl: WechatIcon,
|
||||
title: '微信支付',
|
||||
},
|
||||
{
|
||||
iconUrl: AlipayIcon,
|
||||
title: '支付宝支付',
|
||||
},
|
||||
{
|
||||
iconUrl: UnionpayIcon,
|
||||
title: '银联支付',
|
||||
},
|
||||
])
|
||||
|
||||
const { list: investmentList } = useListPageRequest(getInvestmentListAPI)
|
||||
const tabList = [
|
||||
{
|
||||
value: 1,
|
||||
title: '养老',
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
title: '医疗',
|
||||
},
|
||||
]
|
||||
const tabValue = ref(1)
|
||||
|
||||
const { list: investmentList, onReload } = useListPageRequest((params) =>
|
||||
getInvestmentListAPI({
|
||||
...params,
|
||||
type: tabValue.value,
|
||||
}),
|
||||
)
|
||||
|
||||
watch(
|
||||
() => tabValue.value,
|
||||
() => {
|
||||
onReload()
|
||||
},
|
||||
)
|
||||
|
||||
const userStore = useUserStore()
|
||||
|
||||
@@ -138,9 +188,23 @@ const onGoInvestDetail = () => {
|
||||
})
|
||||
}
|
||||
|
||||
const onSelectPayType = ({ item, index }: any) => {
|
||||
console.log(item, index)
|
||||
alert(item.title)
|
||||
const showRightConfig = ref({
|
||||
show: false,
|
||||
data: null,
|
||||
})
|
||||
watch(
|
||||
() => showRightConfig.value.show,
|
||||
(val) => {
|
||||
if (!val) {
|
||||
showRightConfig.value.data = null
|
||||
}
|
||||
},
|
||||
)
|
||||
const onShowRights = (item: any) => {
|
||||
showRightConfig.value = {
|
||||
show: true,
|
||||
data: item,
|
||||
}
|
||||
}
|
||||
|
||||
const onInvest = mergeStep(async (item: any) => {
|
||||
|
||||
+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" />
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
class="text-right flex-1 text-14"
|
||||
placeholder="请输入验证码"
|
||||
/>
|
||||
<image
|
||||
<img
|
||||
:src="codeUrl"
|
||||
class="w-100 h-30 ml-15 bg-gray-400"
|
||||
mode="widthFix"
|
||||
@@ -84,7 +84,7 @@ const formData = ref({
|
||||
captcha: '',
|
||||
})
|
||||
|
||||
const { codeUrl, refreshCode } = useCaptcha()
|
||||
const { codeUrl, t: captchaT, refreshCode } = useCaptcha()
|
||||
|
||||
let redirect = '/'
|
||||
onLoad((options) => {
|
||||
@@ -110,7 +110,7 @@ const handleLogin = async () => {
|
||||
data: {
|
||||
userinfo: { token },
|
||||
},
|
||||
} = await loginUserAPI(formData.value)
|
||||
} = await loginUserAPI({ ...formData.value, t: captchaT.value })
|
||||
userStore.setToken(token)
|
||||
uni.reLaunch({
|
||||
url: redirect,
|
||||
|
||||
+14
-4
@@ -96,9 +96,9 @@
|
||||
import Avatar from '@/components/Avatar.vue'
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import { loginRoute } from '@/interceptors/route'
|
||||
import { downloadAppAPI } from '@/service'
|
||||
import { downloadAppAPI, getSignInAPI } from '@/service'
|
||||
import { useUserStore } from '@/store/user'
|
||||
import { getImageUrl } from '@/utils'
|
||||
import { getImageUrl, showModal } from '@/utils'
|
||||
|
||||
import CommonIcon1 from '@/static/images/my/common-icon-1.png'
|
||||
import CommonIcon2 from '@/static/images/my/common-icon-2.png'
|
||||
@@ -166,7 +166,11 @@ const handleConvert = (type) => {
|
||||
})
|
||||
}
|
||||
|
||||
const handleSignIn = () => {}
|
||||
const handleSignIn = async () => {
|
||||
await getSignInAPI()
|
||||
showModal('签到成功')
|
||||
userStore.loadUserInfo()
|
||||
}
|
||||
|
||||
const handleKefu = () => {
|
||||
uni.navigateTo({
|
||||
@@ -174,11 +178,17 @@ const handleKefu = () => {
|
||||
})
|
||||
}
|
||||
|
||||
const handleInvestDetail = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages-sub/invest-detail/index',
|
||||
})
|
||||
}
|
||||
|
||||
const commonList = [
|
||||
{
|
||||
title: '投保记录',
|
||||
icon: CommonIcon5,
|
||||
handle: handleTeam,
|
||||
handle: handleInvestDetail,
|
||||
},
|
||||
{
|
||||
title: '资金明细',
|
||||
|
||||
+39
-1
@@ -96,7 +96,7 @@ export const getMyTeamAPI = (data) =>
|
||||
// 我的资产
|
||||
export const getMyAssetAPI = (data) =>
|
||||
http({
|
||||
url: '/api/user/myassets',
|
||||
url: '/api/user/moneyloglist',
|
||||
method: 'POST',
|
||||
data,
|
||||
})
|
||||
@@ -169,3 +169,41 @@ export const getCommunityInviteFirstAPI = (data) =>
|
||||
method: 'POST',
|
||||
data,
|
||||
})
|
||||
|
||||
// 领取救济金
|
||||
export const getCommunityInviteRewardAPI = (data) =>
|
||||
http({
|
||||
url: '/api/user/rewardtwo',
|
||||
method: 'POST',
|
||||
data,
|
||||
})
|
||||
|
||||
// 签到功能
|
||||
export const getSignInAPI = () =>
|
||||
http({
|
||||
url: '/api/user/signin',
|
||||
method: 'POST',
|
||||
})
|
||||
|
||||
// 开通个人养老账户
|
||||
export const getOpenPersonalAccountAPI = () =>
|
||||
http({
|
||||
url: '/api/user/activateold',
|
||||
method: 'POST',
|
||||
})
|
||||
|
||||
// 养老金转入余额
|
||||
export const getOldMoneyTransferAPI = (data) =>
|
||||
http({
|
||||
url: '/api/user/yangout',
|
||||
method: 'POST',
|
||||
data,
|
||||
})
|
||||
|
||||
// 佣金转入养老金
|
||||
export const getYongMoneyTransferAPI = (data) =>
|
||||
http({
|
||||
url: '/api/user/tuanduiout',
|
||||
method: 'POST',
|
||||
data,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user