feat: 前端重构
@@ -40,6 +40,7 @@
|
|||||||
"commitlint",
|
"commitlint",
|
||||||
"dcloudio",
|
"dcloudio",
|
||||||
"iconfont",
|
"iconfont",
|
||||||
|
"Kefu",
|
||||||
"qrcode",
|
"qrcode",
|
||||||
"refresherrefresh",
|
"refresherrefresh",
|
||||||
"scrolltolower",
|
"scrolltolower",
|
||||||
|
|||||||
@@ -1,23 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "马尔代夫国际钱包",
|
"name": "全民参保",
|
||||||
"type": "commonjs",
|
"type": "commonjs",
|
||||||
"version": "2.5.3",
|
"version": "2.5.3",
|
||||||
"description": "unibest - 最好的 uniapp 开发模板",
|
"description": "全民参保",
|
||||||
"author": {
|
|
||||||
"name": "feige996",
|
|
||||||
"zhName": "菲鸽",
|
|
||||||
"email": "1020103647@qq.com",
|
|
||||||
"github": "https://github.com/feige996",
|
|
||||||
"gitee": "https://gitee.com/feige996"
|
|
||||||
},
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"repository": "https://github.com/feige996/unibest",
|
|
||||||
"repository-gitee": "https://gitee.com/feige996/unibest",
|
|
||||||
"repository-deprecated": "https://github.com/codercup/unibest",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/feige996/unibest/issues"
|
|
||||||
},
|
|
||||||
"homepage": "https://feige996.github.io/unibest/",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18",
|
"node": ">=18",
|
||||||
"pnpm": ">=7.30"
|
"pnpm": ">=7.30"
|
||||||
|
|||||||
@@ -32,19 +32,18 @@ export default defineUniPages({
|
|||||||
pagePath: 'pages/index/index',
|
pagePath: 'pages/index/index',
|
||||||
text: '首页',
|
text: '首页',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
iconPath: 'static/tabbar/invest.png',
|
||||||
|
selectedIconPath: 'static/tabbar/investHL.png',
|
||||||
|
pagePath: 'pages/invest/index',
|
||||||
|
text: '理财',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
iconPath: 'static/tabbar/house.png',
|
iconPath: 'static/tabbar/house.png',
|
||||||
selectedIconPath: 'static/tabbar/houseHL.png',
|
selectedIconPath: 'static/tabbar/houseHL.png',
|
||||||
pagePath: 'pages/invite/index',
|
pagePath: 'pages/invite/index',
|
||||||
text: '邀请好友',
|
text: '社区',
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// iconPath: 'static/tabbar/invest.png',
|
|
||||||
// selectedIconPath: 'static/tabbar/investHL.png',
|
|
||||||
// pagePath: 'pages/invest/index',
|
|
||||||
// text: '理财',
|
|
||||||
// },
|
|
||||||
{
|
{
|
||||||
iconPath: 'static/tabbar/personal.png',
|
iconPath: 'static/tabbar/personal.png',
|
||||||
selectedIconPath: 'static/tabbar/personalHL.png',
|
selectedIconPath: 'static/tabbar/personalHL.png',
|
||||||
|
|||||||
@@ -15,16 +15,28 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { getLastPage } from '@/utils'
|
import { getLastPage } from '@/utils'
|
||||||
const title = getLastPage().$page.meta.navigationBar.titleText
|
const props = defineProps({
|
||||||
|
titleColor: {
|
||||||
|
type: String,
|
||||||
|
default: '#fff',
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
const title = computed(() => {
|
||||||
|
return props.title || getLastPage().$page.meta.navigationBar.titleText
|
||||||
|
})
|
||||||
const showBack = getCurrentPages().length > 1
|
const showBack = getCurrentPages().length > 1
|
||||||
const handleClickLeft = () => {
|
const handleClickLeft = () => {
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
:deep(.wd-navbar) {
|
:deep(.wd-navbar) {
|
||||||
--wot-navbar-title-font-size: 32rpx;
|
--wot-navbar-title-font-size: 32rpx;
|
||||||
// --wot-navbar-title-font-weight: 400;
|
--wot-navbar-color: v-bind('titleColor');
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* 可以设置路由白名单,或者黑名单,看业务需要选哪一个
|
* 可以设置路由白名单,或者黑名单,看业务需要选哪一个
|
||||||
* 我这里应为大部分都可以随便进入,所以使用黑名单
|
* 我这里应为大部分都可以随便进入,所以使用黑名单
|
||||||
*/
|
*/
|
||||||
import { getUserInfoAPI } from '@/service'
|
import { getRealNameAuthAPI, getUserInfoAPI } from '@/service'
|
||||||
import { useUserStore } from '@/store'
|
import { useUserStore } from '@/store'
|
||||||
import {
|
import {
|
||||||
getNotNeedLoginPages as _getNotNeedLoginPages,
|
getNotNeedLoginPages as _getNotNeedLoginPages,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<route lang="json5">
|
<route lang="json5">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationBarTitleText: '我的资产',
|
navigationBarTitleText: '资金明细',
|
||||||
navigationBarBackgroundColor: '#fff',
|
navigationBarBackgroundColor: '#fff',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,14 @@ import { useUserStore } from '@/store'
|
|||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
const tabList = [
|
||||||
|
{ label: '我的余额', value: 0 },
|
||||||
|
{ label: '救济金余额', value: 1 },
|
||||||
|
{ label: '养老金余额', value: 2 },
|
||||||
|
{ label: '佣金余额', value: 3 },
|
||||||
|
]
|
||||||
|
const tabIndex = ref(0)
|
||||||
|
|
||||||
const detailInfo = ref({
|
const detailInfo = ref({
|
||||||
point: 1,
|
point: 1,
|
||||||
score: 1000,
|
score: 1000,
|
||||||
@@ -25,11 +33,49 @@ const { list: assetList } = useListPageRequest((params) =>
|
|||||||
return res.data
|
return res.data
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
onLoad((options) => {
|
||||||
|
tabIndex.value = Number(options.tabIndex ?? 0)
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="min-h-screen py-15">
|
<view class="asset-page pt-15 relative">
|
||||||
<view class="mx-15 text-16 font-bold text-#333">我的资产</view>
|
<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"
|
||||||
|
: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 }"
|
||||||
|
>
|
||||||
|
<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>
|
||||||
|
<view class="relative z-1 main-content pt-40 pb-30 rounded-t-15">
|
||||||
|
<view class="mb-15 px-25">【{{ tabList[tabIndex].label }}】明细</view>
|
||||||
|
<view
|
||||||
|
class="flex px-25 py-12 border-b items-center border-#3333331A border-b-solid"
|
||||||
|
v-for="item in assetList"
|
||||||
|
:key="item.id"
|
||||||
|
>
|
||||||
|
<image src="/static/images/page-sub/invite-icon.png" class="w-48 h-48" />
|
||||||
|
<view class="flex flex-col flex-1 ml-15">
|
||||||
|
<view class="text-14 text-#333">{{ item.memo }}</view>
|
||||||
|
<view class="text-12 mt-4 text-#333">{{ item.createtime }}</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="flex flex-col items-end">
|
||||||
|
<view class="text-17 font-bold text-gradient">{{ item.money }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="mx-15 text-16 font-bold text-#333">我的资产</view>
|
||||||
<view
|
<view
|
||||||
class="mt-15 mx-15 rounded-20 text-#476FFF main-content p-15 rounded-10 shadow-[0_5px_30px_rgba(149,195,255,0.4)]"
|
class="mt-15 mx-15 rounded-20 text-#476FFF main-content p-15 rounded-10 shadow-[0_5px_30px_rgba(149,195,255,0.4)]"
|
||||||
>
|
>
|
||||||
@@ -37,31 +83,17 @@ const { list: assetList } = useListPageRequest((params) =>
|
|||||||
<view class="text-35 mt-10 font-bold">{{ detailInfo.suminvest }}</view>
|
<view class="text-35 mt-10 font-bold">{{ detailInfo.suminvest }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="text-16 mx-15 mb-15 font-bold text-#333 mt-30">资产记录</view>
|
<view class="text-16 mx-15 mb-15 font-bold text-#333 mt-30">资产记录</view>
|
||||||
<view
|
-->
|
||||||
class="flex px-15 py-8 border-b items-center border-#E5E5E5 border-b-solid"
|
|
||||||
v-for="item in assetList"
|
|
||||||
:key="item.id"
|
|
||||||
>
|
|
||||||
<image src="/static/images/page-sub/invite-icon.png" class="w-32 h-32 self-center" />
|
|
||||||
<view class="flex flex-col flex-1 ml-15">
|
|
||||||
<view class="text-14 text-#333">{{ item.memo }}</view>
|
|
||||||
<!-- <view class="text-12 mt-10 text-#999">奖励</view> -->
|
|
||||||
<view class="text-12 mt-10 text-#999">{{ item.createtime }}</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="flex flex-col items-end">
|
|
||||||
<view class="text-14 font-bold text-#FF5F5F">{{ item.money }}</view>
|
|
||||||
<!-- <view class="text-14 mt-10 py-4 px-10 bg-#71C78A1A text-#71C78A">已到账</view> -->
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style>
|
<style scoped>
|
||||||
.main-content {
|
.asset-page {
|
||||||
background-image: url('@/static/images/page-sub/team/main-bg.png');
|
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: 100% 100%;
|
background-size: 172px 172px;
|
||||||
|
}
|
||||||
|
.main-content {
|
||||||
|
backdrop-filter: blur(60px);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
</route>
|
</route>
|
||||||
<template>
|
<template>
|
||||||
<view class="min-h-screen pb-100">
|
<view class="min-h-screen pb-100">
|
||||||
<NavBar>
|
<NavBar :title="title" title-color="#333">
|
||||||
<template #right>
|
<template #right>
|
||||||
<image
|
<image
|
||||||
@click="onWithdrawalDetail"
|
@click="onWithdrawalDetail"
|
||||||
@@ -17,26 +17,32 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</NavBar>
|
</NavBar>
|
||||||
<view class="p-15">
|
<view
|
||||||
|
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>
|
||||||
|
<view class="p-15 bg-white shadow-[0_-2px_3px_rgba(10,68,245,0.1)] rounded-10">
|
||||||
<view class="mt-15">
|
<view class="mt-15">
|
||||||
<view class="flex items-center justify-between">
|
|
||||||
<view class="text-14 text-#333">我的股数</view>
|
|
||||||
<view class="text-12 text-#999">可转换股数:{{ userStore.userInfo.score }}</view>
|
|
||||||
</view>
|
|
||||||
<view
|
<view
|
||||||
class="flex items-center text-14 mt-15 text-#333 p-16 shadow-[0_0_10px_rgba(10,68,245,0.1)] rounded-10"
|
class="flex items-center text-14 mt-15 text-#333 p-16 shadow-[0_0_10px_rgba(10,68,245,0.1)] rounded-10"
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
v-model="convertNum"
|
v-model="convertNum"
|
||||||
type="number"
|
type="number"
|
||||||
placeholder="请输入股数"
|
placeholder="转出金额"
|
||||||
class="text-14 text-#333 flex-1"
|
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 = userStore.userInfo.score">
|
||||||
全部
|
全部
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="text-12 text-#889BC6 mt-15">马尔代夫股权每股价值500元</view>
|
<view class="text-14 text-#889BC6 mt-30">提现说明(TIPS)</view>
|
||||||
|
<view class="text-12 text-#889BC6 mt-15">
|
||||||
|
<view>1、如遇到系统结算繁忙,转换将会延迟到账</view>
|
||||||
|
<view class="mt-4">2、提现将会提现至您的工商银行卡;</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
@@ -47,7 +53,7 @@
|
|||||||
class="btn-gradient flex-1 text-center text-white rounded-full text-14 px-30 py-10"
|
class="btn-gradient flex-1 text-center text-white rounded-full text-14 px-30 py-10"
|
||||||
@click="onSubmit"
|
@click="onSubmit"
|
||||||
>
|
>
|
||||||
确认转换至余额
|
确认转换至{{ type === 0 ? '余额' : '养老金' }}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -66,7 +72,7 @@ const convertNum = ref('')
|
|||||||
|
|
||||||
const onWithdrawalDetail = () => {
|
const onWithdrawalDetail = () => {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pages-sub/asset/index',
|
url: `/pages-sub/asset/index?tabIndex=${type.value ? 3 : 2}`,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,6 +85,15 @@ const onSubmit = mergeStep(async () => {
|
|||||||
userStore.loadUserInfo()
|
userStore.loadUserInfo()
|
||||||
onWithdrawalDetail()
|
onWithdrawalDetail()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const type = ref(0)
|
||||||
|
onLoad((options) => {
|
||||||
|
type.value = Number(options.type ?? 0)
|
||||||
|
})
|
||||||
|
|
||||||
|
const title = computed(() => {
|
||||||
|
return type.value === 0 ? '养老金转余额' : '团队佣金转养老金'
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<route lang="json5" type="page">
|
||||||
|
{
|
||||||
|
style: {
|
||||||
|
navigationBarTitleText: '热点新闻',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</route>
|
||||||
|
<template>
|
||||||
|
<view class="hot-news-page p-15">
|
||||||
|
<view class="bg-#fff rounded-10 px-15 py-15" v-if="newsList.length > 0">
|
||||||
|
<view
|
||||||
|
class="flex mb-15"
|
||||||
|
v-for="item in newsList"
|
||||||
|
:key="item.id"
|
||||||
|
@click="handleNewsDetail(item.id)"
|
||||||
|
>
|
||||||
|
<image class="w-85 h-85 rounded-10" :src="item.image" mode="aspectFill" />
|
||||||
|
<view class="ml-15 flex-1 flex flex-col justify-between">
|
||||||
|
<view text-14>{{ item.name }}</view>
|
||||||
|
<view class="text-12 text-#999">{{ item.source }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<wd-status-tip v-else image="content" tip="暂无内容" />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { getIntroductionAPI } from '@/service'
|
||||||
|
|
||||||
|
const { list: newsList } = useListPageRequest((params) =>
|
||||||
|
getIntroductionAPI({ type: 1, ...params }),
|
||||||
|
)
|
||||||
|
|
||||||
|
const handleNewsDetail = (id: number) => {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages-sub/news-detail/index?id=${id}`,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.hot-news-page {
|
||||||
|
background: #f7f7f7;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -118,7 +118,7 @@ const onEnd = () => {
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<style>
|
<style scoped>
|
||||||
.lottery-item {
|
.lottery-item {
|
||||||
&.mask {
|
&.mask {
|
||||||
&::after {
|
&::after {
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
<route lang="json5" type="page">
|
||||||
|
{
|
||||||
|
style: {
|
||||||
|
navigationBarTitleText: '最新时讯',
|
||||||
|
navigationStyle: 'custom',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</route>
|
||||||
|
<template>
|
||||||
|
<view class="news-page">
|
||||||
|
<NavBar />
|
||||||
|
<view class="py-15" v-if="newsList.length > 0">
|
||||||
|
<view
|
||||||
|
class="bg-white rounded-10 overflow-hidden p-15 mx-15 mb-15"
|
||||||
|
v-for="item in newsList"
|
||||||
|
:key="item.id"
|
||||||
|
@click="handleNewsDetail(item.id)"
|
||||||
|
>
|
||||||
|
<image class="rounded-10 w-full h-160" :src="item.image" mode="aspectFill" />
|
||||||
|
<view class="mt-10 flex-1 flex flex-col justify-between">
|
||||||
|
<view class="text-14">{{ item.name }}</view>
|
||||||
|
<view class="text-12 text-#999 mt-10">{{ item.source }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<wd-status-tip v-else image="content" tip="暂无内容" />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import NavBar from '@/components/NavBar.vue'
|
||||||
|
import { getIntroductionAPI } from '@/service'
|
||||||
|
|
||||||
|
const { list: newsList } = useListPageRequest((params) =>
|
||||||
|
getIntroductionAPI({ type: 1, ...params }),
|
||||||
|
)
|
||||||
|
|
||||||
|
const handleNewsDetail = (id: number) => {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages-sub/news-detail/index?id=${id}`,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.news-page {
|
||||||
|
background: linear-gradient(180deg, #3a90f2 0%, #f7f7f7 100%);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -35,7 +35,7 @@ import VueQrcode from '@chenfengyuan/vue-qrcode'
|
|||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style>
|
<style scoped>
|
||||||
.official-community-page {
|
.official-community-page {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
padding-bottom: 100rpx;
|
padding-bottom: 100rpx;
|
||||||
|
|||||||
@@ -54,8 +54,11 @@
|
|||||||
mode="aspectFit"
|
mode="aspectFit"
|
||||||
/>
|
/>
|
||||||
<view class="text-center mt-15 text-14 text-#999">您的实名认证正在审核中,请耐心等待</view>
|
<view class="text-center mt-15 text-14 text-#999">您的实名认证正在审核中,请耐心等待</view>
|
||||||
<button class="btn-gradient px-30 text-white rounded-full m-15 text-16" @click="onBack">
|
<button
|
||||||
返回
|
class="btn-gradient px-30 text-white rounded-full m-15 text-16"
|
||||||
|
@click="userStore.logout"
|
||||||
|
>
|
||||||
|
退出登录
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="Number(realnameInfo.status) === 2">
|
<template v-else-if="Number(realnameInfo.status) === 2">
|
||||||
@@ -65,7 +68,7 @@
|
|||||||
mode="aspectFit"
|
mode="aspectFit"
|
||||||
/>
|
/>
|
||||||
<view class="text-center mt-15 text-14 text-#999">恭喜您,实名认证成功</view>
|
<view class="text-center mt-15 text-14 text-#999">恭喜您,实名认证成功</view>
|
||||||
<button class="btn-gradient px-30 text-white rounded-full m-15 text-16" @click="onBack">
|
<button class="btn-gradient px-30 text-white rounded-full m-15 text-16" @click="onGoHome">
|
||||||
返回
|
返回
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
@@ -93,6 +96,8 @@ import { useUserStore } from '@/store'
|
|||||||
import { showModal } from '@/utils'
|
import { showModal } from '@/utils'
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
const form = ref({
|
const form = ref({
|
||||||
realname: '',
|
realname: '',
|
||||||
cardnum: '',
|
cardnum: '',
|
||||||
@@ -114,6 +119,12 @@ const onSubmit = async () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const onGoHome = () => {
|
||||||
|
uni.reLaunch({
|
||||||
|
url: '/',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const realnameInfo = ref(null)
|
const realnameInfo = ref(null)
|
||||||
onLoad(async () => {
|
onLoad(async () => {
|
||||||
realnameInfo.value = await getRealNameAuthAPI().then((res) => {
|
realnameInfo.value = await getRealNameAuthAPI().then((res) => {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
</route>
|
</route>
|
||||||
<template>
|
<template>
|
||||||
<view class="min-h-screen pb-100">
|
<view class="min-h-screen pb-100">
|
||||||
<NavBar>
|
<NavBar title-color="#333">
|
||||||
<template #right>
|
<template #right>
|
||||||
<image
|
<image
|
||||||
@click="onWithdrawalDetail"
|
@click="onWithdrawalDetail"
|
||||||
@@ -17,7 +17,13 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</NavBar>
|
</NavBar>
|
||||||
<view class="p-15">
|
<view
|
||||||
|
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">钱包余额</view>
|
||||||
|
<view class="text-17 font-bold">{{ userStore.userInfo.money }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="p-15 bg-white shadow-[0_-2px_3px_rgba(10,68,245,0.1)] rounded-10">
|
||||||
<view class="mt-15">
|
<view class="mt-15">
|
||||||
<view class="text-14 text-#333">提现金额</view>
|
<view class="text-14 text-#333">提现金额</view>
|
||||||
<view
|
<view
|
||||||
@@ -33,44 +39,22 @@
|
|||||||
全部
|
全部
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="text-12 text-#889BC6 mt-15">当前余额:{{ userStore.userInfo.money }}</view>
|
<view class="text-14 text-#889BC6 mt-30">提现说明(TIPS)</view>
|
||||||
</view>
|
<view class="text-12 text-#889BC6 mt-15">
|
||||||
|
<view>1、如遇到系统结算繁忙,结算将会延迟到账</view>
|
||||||
<view class="mt-50">
|
<view class="mt-4">2、提现将会提现至您的工商银行卡;</view>
|
||||||
<view class="text-14 text-#333">收款方式</view>
|
|
||||||
<view
|
|
||||||
class="flex items-center text-14 mt-15 text-#333 p-16 shadow-[0_0_10px_rgba(10,68,245,0.1)] rounded-10"
|
|
||||||
@click="onSelectPayType"
|
|
||||||
>
|
|
||||||
<view class="flex-1">
|
|
||||||
{{ typeName ? `${typeName}:${currentBank?.banknum}` : '请选择收款方式' }}
|
|
||||||
</view>
|
|
||||||
<wd-icon name="arrow-right" size="16px"></wd-icon>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="mt-50">
|
|
||||||
<view class="text-14 text-#333">交易密码</view>
|
|
||||||
<view class="text-14 mt-15 text-#333 p-16 shadow-[0_0_10px_rgba(10,68,245,0.1)] rounded-10">
|
|
||||||
<input
|
|
||||||
v-model="form.tpassword"
|
|
||||||
type="password"
|
|
||||||
placeholder="请输入交易密码"
|
|
||||||
class="text-14 text-#333"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
class="bg-white fixed bottom-0 left-0 right-0 px-15 py-10 shadow-[0_0_10px_rgba(10,68,245,0.1)]"
|
class="bg-white fixed bottom-0 left-0 right-0 px-15 py-10 shadow-[0_0_10px_rgba(10,68,245,0.1)]"
|
||||||
>
|
>
|
||||||
<view class="flex items-center pb-safe">
|
<view class="pb-safe">
|
||||||
<view class="text-gradient flex-1 text-14">到账CNY:{{ form.money ?? '0' }}</view>
|
|
||||||
<view
|
<view
|
||||||
class="btn-gradient text-center text-white rounded-full text-14 px-30 py-10"
|
class="btn-gradient text-center text-white rounded-full text-14 px-30 py-10"
|
||||||
@click="onSubmit"
|
@click="onSubmit"
|
||||||
>
|
>
|
||||||
申请提现
|
提现
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -29,11 +29,17 @@
|
|||||||
"pagePath": "pages/index/index",
|
"pagePath": "pages/index/index",
|
||||||
"text": "首页"
|
"text": "首页"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"iconPath": "static/tabbar/invest.png",
|
||||||
|
"selectedIconPath": "static/tabbar/investHL.png",
|
||||||
|
"pagePath": "pages/invest/index",
|
||||||
|
"text": "理财"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"iconPath": "static/tabbar/house.png",
|
"iconPath": "static/tabbar/house.png",
|
||||||
"selectedIconPath": "static/tabbar/houseHL.png",
|
"selectedIconPath": "static/tabbar/houseHL.png",
|
||||||
"pagePath": "pages/invite/index",
|
"pagePath": "pages/invite/index",
|
||||||
"text": "邀请好友"
|
"text": "社区"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"iconPath": "static/tabbar/personal.png",
|
"iconPath": "static/tabbar/personal.png",
|
||||||
@@ -66,14 +72,14 @@
|
|||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTitleText": "投资理财"
|
"navigationBarTitleText": "理财"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/invite/index",
|
"path": "pages/invite/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "邀请好友",
|
"navigationBarTitleText": "社区",
|
||||||
"navigationBarBackgroundColor": "#fff",
|
"navigationBarBackgroundColor": "#fff",
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
@@ -113,7 +119,7 @@
|
|||||||
"path": "asset/index",
|
"path": "asset/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "我的资产",
|
"navigationBarTitleText": "资金明细",
|
||||||
"navigationBarBackgroundColor": "#fff"
|
"navigationBarBackgroundColor": "#fff"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -132,6 +138,13 @@
|
|||||||
"navigationBarTitleText": "分包页面 标题"
|
"navigationBarTitleText": "分包页面 标题"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "hot-news/index",
|
||||||
|
"type": "page",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "热点新闻"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "introduction/index",
|
"path": "introduction/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
@@ -182,6 +195,14 @@
|
|||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "news/index",
|
||||||
|
"type": "page",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "最新时讯",
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "news-detail/index",
|
"path": "news-detail/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ onLoad(() => {
|
|||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.login-container {
|
.login-container {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
|
|||||||
@@ -10,47 +10,45 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="home-page">
|
<view class="home-page">
|
||||||
<NavBar />
|
<NavBar />
|
||||||
<image
|
<view class="main-container w-345 h-185 mx-auto rounded-14 px-20 pt-70 text-12">
|
||||||
class="mx-auto block w-345 h-170 mt-15 rounded-10 overflow-hidden"
|
<view>姓名:***</view>
|
||||||
src="@/static/images/home/main-bg.png"
|
<view class="mt-15">社会xx号码:***</view>
|
||||||
mode="aspectFill"
|
<view class="mt-15">中国工商银行卡号:**************</view>
|
||||||
/>
|
</view>
|
||||||
<view class="flex bg-#F5F9FF py-15 rounded-10 m-15 border-2 border-white border-solid">
|
<view
|
||||||
<view class="flex-1 flex flex-col items-center" @click="handleIntroduction">
|
class="mt-15 btn-gradient w-345 h-45 leading-45 mx-auto text-white rounded-full text-center"
|
||||||
<image class="w-30 h-30" src="@/static/images/home/nav-1.png" mode="aspectFill" />
|
@click="handleOpenAccount"
|
||||||
<text class="mt-8 text-14 text-#333">简介</text>
|
>
|
||||||
</view>
|
开通个人养老账号
|
||||||
<!-- <view class="flex-1 flex flex-col items-center" @click="handleInvite">
|
|
||||||
<image class="w-30 h-30" src="@/static/images/home/nav-2.png" mode="aspectFill" />
|
|
||||||
<text class="mt-8 text-14 text-#333">抽奖转盘</text>
|
|
||||||
</view> -->
|
|
||||||
<view class="flex-1 flex flex-col items-center" @click="handleReward">
|
|
||||||
<image class="w-30 h-30" src="@/static/images/home/nav-2.png" mode="aspectFill" />
|
|
||||||
<text class="mt-8 text-14 text-#333">奖励制度</text>
|
|
||||||
</view>
|
|
||||||
<view class="flex-1 flex flex-col items-center" @click="handleDownload">
|
|
||||||
<image class="w-30 h-30" src="@/static/images/home/nav-2.png" mode="aspectFill" />
|
|
||||||
<text class="mt-8 text-14 text-#333">下载APP</text>
|
|
||||||
</view>
|
|
||||||
<view class="flex-1 flex flex-col items-center" @click="handleOfficialCommunity">
|
|
||||||
<image class="w-30 h-30" src="@/static/images/home/nav-3.png" mode="aspectFill" />
|
|
||||||
<text class="mt-8 text-14 text-#333">官方社群</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="flex bg-white py-8 px-15 rounded-10 m-15 items-center">
|
<view class="bg-white pt-15 px-15 rounded-10 m-15">
|
||||||
<view class="text-14 text-#333">系统公告</view>
|
<view class="flex justify-between items-center">
|
||||||
<view class="flex-1">
|
<view class="text-14 text-#333">最新时讯</view>
|
||||||
<wd-notice-bar
|
<!-- <view class="text-12 text-#999" @click="handleNews">查看全部</view> -->
|
||||||
color="#999999"
|
|
||||||
background-color="transparent"
|
|
||||||
:text="announcementList.map((item) => item.name)"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
|
<swiper
|
||||||
|
indicator-active-color="#3B81F3"
|
||||||
|
indicator-color="rgba(0,0,0,0.1)"
|
||||||
|
indicator-dots
|
||||||
|
autoplay
|
||||||
|
circular
|
||||||
|
class="h-240 mt-10"
|
||||||
|
>
|
||||||
|
<swiper-item v-for="item in newsList" :key="item.id" @click="handleNewsDetail(item.id)">
|
||||||
|
<image class="w-full h-160" :src="item.image" mode="aspectFill" />
|
||||||
|
<view class="mt-10 flex-1 flex flex-col justify-between">
|
||||||
|
<view text-14>{{ item.name }}</view>
|
||||||
|
</view>
|
||||||
|
</swiper-item>
|
||||||
|
</swiper>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="bg-white py-15 px-15 rounded-10 m-15">
|
<view class="bg-white py-15 px-15 rounded-10 m-15">
|
||||||
<view class="text-14 text-#333">热点新闻</view>
|
<view class="flex justify-between items-center">
|
||||||
|
<view class="text-14 text-#333">热点新闻</view>
|
||||||
|
<view class="text-12 text-#999" @click="handleHotNews">查看全部</view>
|
||||||
|
</view>
|
||||||
<view
|
<view
|
||||||
class="flex mt-15"
|
class="flex mt-15"
|
||||||
v-for="item in newsList"
|
v-for="item in newsList"
|
||||||
@@ -64,14 +62,28 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<wd-popup v-model="showRealName" custom-style="border-radius:32rpx;">
|
<wd-popup :lockScroll="false" v-model="showNotice" custom-style="border-radius:40rpx;">
|
||||||
<view class="p-15 w-345">
|
<view class="px-30 py-30 w-330 h-457 notice-container rounded-20 flex flex-col">
|
||||||
<text class="custom-txt">实名立即送5000股马尔代夫股权</text>
|
<view class="text-18 font-bold py-15 text-center">系统公告</view>
|
||||||
|
<view class="py-15 flex-1">
|
||||||
|
<view
|
||||||
|
v-for="(item, index) in announcementList"
|
||||||
|
:key="item.id"
|
||||||
|
class="flex border-b-1 border-b-gray-300 border-b-solid py-15"
|
||||||
|
>
|
||||||
|
<text class="whitespace-nowrap text-14 font-bold text-gradient">
|
||||||
|
公告{{ ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十'][index] }}:
|
||||||
|
</text>
|
||||||
|
<text class="text-14 text-#333 flex-1">
|
||||||
|
{{ item.content }}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
<view
|
<view
|
||||||
@click="handleRealName"
|
@click="showNotice = false"
|
||||||
class="mt-15 btn-gradient rounded-full text-center text-14 text-white py-15 mt-15"
|
class="btn-gradient rounded-full text-center text-14 text-white py-8 mt-15"
|
||||||
>
|
>
|
||||||
去认证
|
确定
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</wd-popup>
|
</wd-popup>
|
||||||
@@ -91,11 +103,6 @@ const { list: newsList } = useListPageRequest((params) =>
|
|||||||
getIntroductionAPI({ type: 1, ...params }),
|
getIntroductionAPI({ type: 1, ...params }),
|
||||||
)
|
)
|
||||||
|
|
||||||
// 系统公告
|
|
||||||
const { list: announcementList } = useListPageRequest((params) =>
|
|
||||||
getIntroductionAPI({ type: 2, ...params }),
|
|
||||||
)
|
|
||||||
|
|
||||||
const handleIntroduction = () => {
|
const handleIntroduction = () => {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pages-sub/introduction/index',
|
url: '/pages-sub/introduction/index',
|
||||||
@@ -124,38 +131,53 @@ const handleDownload = () => {
|
|||||||
downloadAppAPI()
|
downloadAppAPI()
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleReward = () => {
|
const showNotice = ref(false)
|
||||||
showModal(
|
|
||||||
`1.注册立即送5000股马尔代夫股权;\n
|
|
||||||
2.每股马尔代夫股权价值500元;\n
|
|
||||||
3.每邀请一人可以获得20股马尔代夫股权`,
|
|
||||||
{
|
|
||||||
title: '奖励制度',
|
|
||||||
confirmText: '我知道了',
|
|
||||||
},
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const showRealName = ref(false)
|
const handleNews = () => {
|
||||||
const handleRealName = () => {
|
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pages-sub/realname/index',
|
url: '/pages-sub/news/index',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
onLoad(async () => {
|
const handleHotNews = () => {
|
||||||
const res = await getRealNameAuthAPI()
|
uni.navigateTo({
|
||||||
if (!res.data) {
|
url: '/pages-sub/hot-news/index',
|
||||||
showRealName.value = true
|
})
|
||||||
}
|
}
|
||||||
})
|
|
||||||
|
// 系统公告
|
||||||
|
const { list: announcementList } = useListPageRequest((params) =>
|
||||||
|
getIntroductionAPI({ type: 2, ...params }),
|
||||||
|
)
|
||||||
|
watch(
|
||||||
|
() => announcementList.value.length,
|
||||||
|
(newVal) => {
|
||||||
|
if (newVal > 0) {
|
||||||
|
showNotice.value = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
const handleOpenAccount = () => {
|
||||||
|
showModal('开通个人养老账户时,需邀请一名用户')
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style scoped>
|
||||||
.home-page {
|
.home-page {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
padding-bottom: 100rpx;
|
padding-bottom: 100rpx;
|
||||||
background-image: url('@/static/images/bg.png');
|
background-image: url('@/static/images/home/bg.jpg');
|
||||||
|
background-position: top;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
.main-container {
|
||||||
|
background-image: url('@/static/images/home/main-bg.jpg');
|
||||||
|
background-position: top;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
.notice-container {
|
||||||
|
background-image: url('@/static/images/home/notice-bg.jpg');
|
||||||
background-position: top;
|
background-position: top;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,51 +3,96 @@
|
|||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
navigationBarTitleText: '投资理财',
|
navigationBarTitleText: '理财',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
<template>
|
<template>
|
||||||
<view class="invest-page">
|
<view class="invest-page">
|
||||||
<NavBar>
|
<NavBar titleColor="#333" />
|
||||||
<template #right>
|
<view class="py-20 flex flex-col mx-15 rounded-20 main-content text-white">
|
||||||
<view @click="onGoInvestDetail" class="text-14 text-#486CCF">投资明细</view>
|
<view class="text-14 pl-15">保险概览</view>
|
||||||
</template>
|
<view class="flex mt-30">
|
||||||
</NavBar>
|
<view class="flex-1 text-center">
|
||||||
<view class="flex mt-30 flex-col mx-15 rounded-10 px-40 py-32 main-content">
|
<view class="text-14">全部</view>
|
||||||
<view class="text-14 text-#6784C7">我的投资金</view>
|
<view class="text-16 font-bold mt-15">2份</view>
|
||||||
<view class="text-35 leading-35 mt-10 text-#BE7143 font-bold">
|
</view>
|
||||||
{{ userStore.userInfo?.money }}
|
<view class="flex-1 text-center">
|
||||||
|
<view class="text-14">养老</view>
|
||||||
|
<view class="text-16 font-bold mt-15">1份</view>
|
||||||
|
</view>
|
||||||
|
<view class="flex-1 text-center">
|
||||||
|
<view class="text-14">医疗</view>
|
||||||
|
<view class="text-16 font-bold mt-15">未保障</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="mt-100">
|
<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>
|
||||||
|
|
||||||
|
<view>
|
||||||
<view
|
<view
|
||||||
v-for="item in investmentList"
|
v-for="item in investmentList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
class="invest-item relative flex flex-col items-center pt-15"
|
class="p-15 bg-white rounded-20 mx-auto w-345 relative mb-15"
|
||||||
>
|
>
|
||||||
<view class="text-15 text-#3F88F6">{{ item.name }}</view>
|
<view class="flex">
|
||||||
<view class="flex w-full mt-15">
|
<image
|
||||||
<view class="flex-1 text-center">
|
class="rounded-10 w-100 h-100"
|
||||||
<view class="text-22 text-#333 font-bold">{{ item.money }}</view>
|
mode="aspectFill"
|
||||||
<view class="text-12 mt-4 text-blue-red">投资金额</view>
|
src="https://picsum.photos/100/100"
|
||||||
|
/>
|
||||||
|
<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>
|
||||||
|
<view class="text-12 mt-15 text-#999">
|
||||||
|
此处是产品简介,此处是产品简介,此处是产品简介,此处是产
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="flex items-center mt-15">
|
||||||
<view class="flex-1 text-center">
|
<view class="flex-1 text-center">
|
||||||
<view class="text-22 text-#FF3B30 font-bold">{{ item.dividend }}</view>
|
<view class="text-15 text-#FF3B30">1.99(%)</view>
|
||||||
<view class="text-12 mt-4 text-blue-red">每日分红</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-14 text-#999">周期</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="text-center text-15 text-white rounded-full py-8 btn-gradient mt-15">
|
||||||
|
购买
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view 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"
|
||||||
|
/>
|
||||||
|
<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>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
class="text-center px-50 absolute bottom-0 left-0 text-12 text-#fff rounded-full py-8 bg-blue-red"
|
class="text-center text-15 text-white rounded-full py-8 border-#3B81F3 border-1 border-solid mt-15"
|
||||||
@click="onInvest(item)"
|
|
||||||
>
|
>
|
||||||
立即投资
|
<text class="text-gradient">查看权益</text>
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view class="text-center text-15 text-white rounded-full py-8 btn-gradient mt-15">
|
||||||
class="text-center px-16 absolute bottom-13 right-33 text-12 text-#fff rounded-br-10 rounded-tl-10 py-4 bg-blue-red"
|
我要投保
|
||||||
>
|
|
||||||
{{ item.label }}
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -112,31 +157,14 @@ const onInvest = mergeStep(async (item: any) => {
|
|||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style scoped>
|
||||||
.invest-page {
|
.invest-page {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
padding-bottom: 100px;
|
padding-bottom: 100px;
|
||||||
background-color: #ebbf92;
|
background: linear-gradient(180deg, #f4fbff 0%, #f7f7f7 100%);
|
||||||
background-image: url('@/static/images/invest/bg.png');
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-attachment: fixed;
|
|
||||||
background-position: top -80rpx center;
|
|
||||||
background-size: 100%;
|
|
||||||
}
|
|
||||||
.invest-item {
|
|
||||||
width: 690rpx;
|
|
||||||
height: 352rpx;
|
|
||||||
margin: 0 auto 30rpx;
|
|
||||||
background-image: url('@/static/images/invest/item-bg.png');
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center;
|
|
||||||
background-size: 100%;
|
|
||||||
}
|
}
|
||||||
.main-content {
|
.main-content {
|
||||||
background-image: url('@/static/images/invest/main-bg.png');
|
background: linear-gradient(90deg, #71a4f8 0%, #3b81f3 103.83%);
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
}
|
}
|
||||||
.bg-blue-red {
|
.bg-blue-red {
|
||||||
background-image: linear-gradient(90.02deg, #8bb9ff 0.02%, #be4343 100.27%);
|
background-image: linear-gradient(90.02deg, #8bb9ff 0.02%, #be4343 100.27%);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<route lang="json5">
|
<route lang="json5">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationBarTitleText: '邀请好友',
|
navigationBarTitleText: '社区',
|
||||||
navigationBarBackgroundColor: '#fff',
|
navigationBarBackgroundColor: '#fff',
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
},
|
},
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
import NavBar from '@/components/NavBar.vue'
|
import NavBar from '@/components/NavBar.vue'
|
||||||
import VueQrcode from '@chenfengyuan/vue-qrcode'
|
import VueQrcode from '@chenfengyuan/vue-qrcode'
|
||||||
import { useUserStore } from '@/store'
|
import { useUserStore } from '@/store'
|
||||||
|
import Avatar from '@/components/Avatar.vue'
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
||||||
@@ -33,35 +34,128 @@ const onLottery = () => {
|
|||||||
<template>
|
<template>
|
||||||
<view class="pb-100 min-h-screen invite-page">
|
<view class="pb-100 min-h-screen invite-page">
|
||||||
<NavBar />
|
<NavBar />
|
||||||
<view class="flex justify-center mt-80">
|
<view class="flex items-center mt-228 mx-auto w-345 bg-#FFFFFFE5 p-15 rounded-20">
|
||||||
<view class="text-white btn-gradient rounded-full px-30 py-10 text-14">邀请好友</view>
|
<view class="text-center">
|
||||||
<!-- <view class="ml-15 bg-white rounded-full px-30 py-10 text-14" @click="onLottery">
|
<view class="mt-15 rounded-10 overflow-hidden flex bg-#FFFFFF50 p-10 shadow">
|
||||||
<text class="text-gradient">幸运大转盘</text>
|
<VueQrcode
|
||||||
</view> -->
|
class="!w-100 !h-100 rounded-10"
|
||||||
</view>
|
:value="qrcodeValue"
|
||||||
<view class="flex flex-col items-center mt-180">
|
:options="{ size: 200 }"
|
||||||
<view
|
/>
|
||||||
class="flex items-center text-16 text-#333 bg-[rgba(255,255,255,0.8)] rounded-full px-15 py-4 text-12 mt-8"
|
</view>
|
||||||
>
|
<view class="text-10 text-#333 mt-4">分享二维码给好友</view>
|
||||||
<view>
|
</view>
|
||||||
邀请码
|
<view class="text-center p-15">
|
||||||
<text class="font-bold">{{ userStore.userInfo?.invitecode }}</text>
|
<view class="text-14 text-#333">邀请码:{{ userStore.userInfo?.invitecode }}</view>
|
||||||
|
<view
|
||||||
|
class="mt-8 btn-gradient text-white rounded-full px-15 w-160 py-8 text-14 text-center"
|
||||||
|
@click="onCopy(userStore.userInfo?.invitecode)"
|
||||||
|
>
|
||||||
|
复制邀请码
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
class="btn-gradient text-white rounded-full px-15 py-4 text-12 ml-10"
|
class="mt-8 btn-gradient text-white rounded-full px-15 w-160 py-8 text-14 text-center"
|
||||||
@click="onCopy('99999')"
|
@click="onCopy(qrcodeValue)"
|
||||||
>
|
>
|
||||||
复制
|
复制推广链接
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="mt-15 rounded-10 overflow-hidden flex">
|
</view>
|
||||||
<VueQrcode :value="qrcodeValue" :options="{ size: 200 }" />
|
<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"
|
||||||
|
>
|
||||||
|
<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>
|
||||||
<view
|
<view
|
||||||
class="btn-gradient text-white rounded-full text-14 px-30 py-8 mt-30"
|
class="mt-2 bg-#F3F8FF rounded-10 border-#3B81F3 border-2 border-solid p-15 flex items-start"
|
||||||
@click="onCopy(qrcodeValue)"
|
|
||||||
>
|
>
|
||||||
复制邀请链接
|
<view class="flex-1">
|
||||||
|
<view class="text-15 text-#333 font-500">
|
||||||
|
邀请10人
|
||||||
|
<text class="text-#50D0FF">(10</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>
|
||||||
|
<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>
|
||||||
|
<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="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="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="mt-15 bg-white px-15 pt-15 pb-4 rounded-10"
|
||||||
|
v-for="(item, index) of 3"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<view class="flex items-center">
|
||||||
|
<Avatar class="w-50 h-50" />
|
||||||
|
<view class="ml-15 flex-1">
|
||||||
|
<view class="text-15 text-#333">Aaron</view>
|
||||||
|
<view class="text-12 text-#333 mt-10">2024-03-08</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="flex mt-16 py-8">
|
||||||
|
<view class="flex-1 text-center">
|
||||||
|
<view class="text-gradient">2</view>
|
||||||
|
<view class="text-15 text-#333">医疗(份)</view>
|
||||||
|
</view>
|
||||||
|
<view class="flex-1 text-center">
|
||||||
|
<view class="text-gradient">2</view>
|
||||||
|
<view class="text-15 text-#333">养老(份)</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -69,9 +163,10 @@ const onLottery = () => {
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.invite-page {
|
.invite-page {
|
||||||
background-image: url('@/static/images/page-sub/invite-bg.png');
|
background-color: #000139;
|
||||||
|
background-image: url('@/static/images/page-sub/invite-bg.jpg');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: top;
|
background-position: top -40px center;
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -16,25 +16,37 @@
|
|||||||
<view class="pt-45">
|
<view class="pt-45">
|
||||||
<view class="mx-15 px-15 shadow-[0_0_10px_rgba(10,68,245,0.1)] rounded-10">
|
<view class="mx-15 px-15 shadow-[0_0_10px_rgba(10,68,245,0.1)] rounded-10">
|
||||||
<view class="flex items-center py-15">
|
<view class="flex items-center py-15">
|
||||||
<image class="w-24 h-24" src="@/static/images/login/phone.png" mode="aspectFit" />
|
<view class="text-gradient">手机号</view>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
v-model="formData.account"
|
v-model="formData.account"
|
||||||
placeholder-class="text-#889BC6"
|
placeholder-class="text-#889BC6"
|
||||||
class="text-right flex-1 text-14"
|
class="text-right flex-1 text-14"
|
||||||
placeholder="请输入用户名"
|
placeholder="请输入手机号"
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex items-center py-15">
|
<view class="flex items-center py-15">
|
||||||
<image class="w-24 h-24" src="@/static/images/login/password.png" mode="aspectFit" />
|
<view class="text-gradient">密码</view>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
placeholder-class="text-#889BC6"
|
placeholder-class="text-#889BC6"
|
||||||
type="password"
|
type="password"
|
||||||
v-model="formData.password"
|
v-model="formData.password"
|
||||||
class="text-right flex-1 text-14"
|
class="text-right flex-1 text-14"
|
||||||
placeholder="请输入登录密码"
|
placeholder="请输入密码"
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="flex items-center py-15">
|
||||||
|
<view class="text-gradient">验证码</view>
|
||||||
|
<input
|
||||||
|
v-model="formData.invitecode"
|
||||||
|
placeholder-class="text-#889BC6"
|
||||||
|
type="text"
|
||||||
|
class="text-right flex-1 text-14"
|
||||||
|
placeholder="请输入验证码"
|
||||||
|
/>
|
||||||
|
<image class="w-60 h-24 ml-15 bg-gray-400" mode="aspectFit" />
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="ml-auto mr-0 w-fit text-gradient text-14 p-15" @click="handleEditPassword">
|
<!-- <view class="ml-auto mr-0 w-fit text-gradient text-14 p-15" @click="handleEditPassword">
|
||||||
忘记密码
|
忘记密码
|
||||||
@@ -110,7 +122,7 @@ onLoad(() => {
|
|||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.login-container {
|
.login-container {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
|
|||||||
@@ -10,97 +10,84 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="my-page">
|
<view class="my-page">
|
||||||
<NavBar />
|
<NavBar />
|
||||||
<view class="flex flex-col items-center justify-center mt-30">
|
<view class="flex mt-50 text-white px-15 items-center">
|
||||||
<Avatar class="w-80 h-80 mx-auto" :src="getImageUrl(userStore.userInfo.avatar)" />
|
<Avatar class="w-60 h-60" :src="getImageUrl(userStore.userInfo.avatar)" />
|
||||||
<view class="text-16 mt-10">{{ userStore.userInfo.nickname }}</view>
|
<view class="ml-15 flex-1">
|
||||||
<view class="text-12 mt-8">账号:{{ userStore.userInfo.username }}</view>
|
<view class="text-16">{{ userStore.userInfo.nickname }}</view>
|
||||||
</view>
|
<view class="text-12 mt-8">账号:{{ userStore.userInfo.username }}</view>
|
||||||
<view class="flex justify-center text-center mt-15 items-center px-30">
|
|
||||||
<view class="flex-1">
|
|
||||||
<view class="text-30 font-bold">{{ Number(userStore.userInfo.money) }}</view>
|
|
||||||
<view class="text-14 mt-10 text-#3B81F3">我的余额</view>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="w-50 h-50 relative">
|
<view
|
||||||
<image
|
class="flex border-#50D0FF border-1 border-solid items-center justify-center h-32 w-100 btn-gradient rounded-full text-center text-14 text-white"
|
||||||
class="w-100 h-100 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"
|
@click="handleSignIn"
|
||||||
src="@/static/images/my/translate.png"
|
>
|
||||||
mode="aspectFit"
|
<image class="w-30 h-26 mt-5" src="@/static/images/my/sign-icon.png" mode="widthFix" />
|
||||||
/>
|
<view class="ml-5">签到</view>
|
||||||
</view>
|
|
||||||
<view class="flex-1">
|
|
||||||
<view class="text-30 font-bold">{{ Number(userStore.userInfo.score) }}</view>
|
|
||||||
<view class="text-14 mt-10 text-#3B81F3">我的股数</view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="flex px-15 mt-15">
|
<view class="grid grid-cols-2 gap-10 px-15 mt-15">
|
||||||
<view
|
<view class="px-15 py-10 rounded-10 bg-#FFFFFF33">
|
||||||
class="flex py-30 justify-center items-center rounded-tl-10 rounded-br-10 flex-1 bg-[linear-gradient(180deg,#D9EBFF,#9EDAFF)] border-1 border-#5FAEFF80 border-solid"
|
<view class="flex text-white text-12">我的余额</view>
|
||||||
@click="handleWithdrawal"
|
<view class="text-20 text-gradient font-bold">2361</view>
|
||||||
>
|
<view
|
||||||
<image class="w-40 h-40" src="@/static/images/my/withdrawal.png" mode="aspectFit" />
|
class="btn-gradient w-fit rounded-full text-center text-12 text-white py-2 px-15 mt-8"
|
||||||
<view class="text-white text-14 px-15 py-5 ml-15 rounded-full btn-gradient">提现</view>
|
@click="handleWithdrawal"
|
||||||
|
>
|
||||||
|
提现
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view class="px-15 py-10 rounded-10 bg-#FFFFFF33">
|
||||||
class="ml-10 flex py-30 justify-center items-center rounded-tl-10 rounded-br-10 flex-1 bg-[linear-gradient(180deg,#D9EBFF,#9EDAFF)] border-1 border-#5FAEFF80 border-solid"
|
<view class="flex text-white text-12">养老金余额</view>
|
||||||
@click="handleConvert"
|
<view class="text-20 text-gradient font-bold">2361</view>
|
||||||
>
|
<view
|
||||||
<image class="w-40 h-40" src="@/static/images/my/top-up.png" mode="aspectFit" />
|
class="btn-gradient w-fit rounded-full text-center text-12 text-white py-2 px-15 mt-8"
|
||||||
<view class="text-white text-14 px-15 py-5 ml-15 rounded-full btn-gradient">转换</view>
|
@click="handleConvert(0)"
|
||||||
|
>
|
||||||
|
转至我的余额
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="px-15 py-10 rounded-10 bg-#FFFFFF33">
|
||||||
|
<view class="flex text-white text-12">救济金余额</view>
|
||||||
|
<view class="text-20 text-gradient font-bold">2361</view>
|
||||||
|
</view>
|
||||||
|
<view class="px-15 py-10 rounded-10 bg-#FFFFFF33">
|
||||||
|
<view class="flex text-white text-12">团队佣金</view>
|
||||||
|
<view class="text-20 text-gradient font-bold">2361</view>
|
||||||
|
<view
|
||||||
|
class="btn-gradient w-fit rounded-full text-center text-12 text-white py-2 px-15 mt-8"
|
||||||
|
@click="handleConvert(1)"
|
||||||
|
>
|
||||||
|
转至养老金
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<image
|
<view class="mt-15 rounded-30 bg-white p-15">
|
||||||
class="w-330 h-123 mx-auto mt-15 block"
|
<image
|
||||||
src="@/static/images/my/recommend.png"
|
class="w-345 h-146 mx-auto block"
|
||||||
mode="aspectFill"
|
src="@/static/images/my/recommend.jpg"
|
||||||
@click="handleInvite"
|
mode="widthFix"
|
||||||
/>
|
@click="handleInvite"
|
||||||
|
/>
|
||||||
|
|
||||||
<view class="mt-15 grid grid-cols-2 gap-10 p-15">
|
<view class="mt-15 grid grid-cols-2 gap-10">
|
||||||
<view
|
<view
|
||||||
@click="handleTeam"
|
@click="item.handle"
|
||||||
class="flex items-center justify-center rounded-tl-10 rounded-br-10 bg-[linear-gradient(45deg,#EFF7FF,#D1E8FF)] p-15 border border-#BEDCFF border-solid"
|
class="flex items-center justify-center rounded-tl-10 rounded-br-10 bg-[linear-gradient(45deg,#EFF7FF,#D1E8FF)] p-15 border border-#BEDCFF border-solid"
|
||||||
>
|
v-for="item in commonList"
|
||||||
<image class="w-24 h-24" src="@/static/images/my/team.png" mode="aspectFit" />
|
:key="item.title"
|
||||||
<view class="text-14 text-#333 ml-10">我的邀请</view>
|
>
|
||||||
</view>
|
<image class="w-24 h-24" :src="item.icon" mode="aspectFit" />
|
||||||
<view
|
<view class="text-14 text-#333 ml-10">{{ item.title }}</view>
|
||||||
@click="handleAsset"
|
</view>
|
||||||
class="flex items-center justify-center rounded-tl-10 rounded-br-10 bg-[linear-gradient(45deg,#EFF7FF,#D1E8FF)] p-15 border border-#BEDCFF border-solid"
|
|
||||||
>
|
|
||||||
<image class="w-24 h-24" src="@/static/images/my/house.png" mode="aspectFit" />
|
|
||||||
<view class="text-14 text-#333 ml-10">我的资产</view>
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view
|
<view
|
||||||
@click="handleRealName"
|
class="mt-50 mx-auto w-294 btn-gradient rounded-full text-center text-14 text-white py-15 mt-15"
|
||||||
class="flex items-center justify-center rounded-tl-10 rounded-br-10 bg-[linear-gradient(45deg,#EFF7FF,#D1E8FF)] p-15 border border-#BEDCFF border-solid"
|
@click="handleLogout"
|
||||||
>
|
>
|
||||||
<image class="w-24 h-24" src="@/static/images/my/realname.png" mode="aspectFit" />
|
退出登录
|
||||||
<view class="text-14 text-#333 ml-10">实名认证</view>
|
|
||||||
</view>
|
</view>
|
||||||
<view
|
|
||||||
@click="handleBankCard"
|
|
||||||
class="flex items-center justify-center rounded-tl-10 rounded-br-10 bg-[linear-gradient(45deg,#EFF7FF,#D1E8FF)] p-15 border border-#BEDCFF border-solid"
|
|
||||||
>
|
|
||||||
<image class="w-24 h-24" src="@/static/images/my/card.png" mode="aspectFit" />
|
|
||||||
<view class="text-14 text-#333 ml-10">我的银行卡</view>
|
|
||||||
</view>
|
|
||||||
<view
|
|
||||||
@click="downloadAppAPI"
|
|
||||||
class="flex items-center justify-center rounded-tl-10 rounded-br-10 bg-[linear-gradient(45deg,#EFF7FF,#D1E8FF)] p-15 border border-#BEDCFF border-solid"
|
|
||||||
>
|
|
||||||
<image class="w-24 h-24" src="@/static/images/my/download.png" mode="aspectFit" />
|
|
||||||
<view class="text-14 text-#333 ml-10">下载APP</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view
|
|
||||||
class="mt-50 mx-auto w-294 btn-gradient rounded-full text-center text-14 text-white py-15 mt-15"
|
|
||||||
@click="handleLogout"
|
|
||||||
>
|
|
||||||
退出登录
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@@ -113,6 +100,16 @@ import { downloadAppAPI } from '@/service'
|
|||||||
import { useUserStore } from '@/store/user'
|
import { useUserStore } from '@/store/user'
|
||||||
import { getImageUrl } from '@/utils'
|
import { getImageUrl } from '@/utils'
|
||||||
|
|
||||||
|
import CommonIcon1 from '@/static/images/my/common-icon-1.png'
|
||||||
|
import CommonIcon2 from '@/static/images/my/common-icon-2.png'
|
||||||
|
import CommonIcon3 from '@/static/images/my/common-icon-3.png'
|
||||||
|
import CommonIcon4 from '@/static/images/my/common-icon-4.png'
|
||||||
|
import CommonIcon5 from '@/static/images/my/common-icon-5.png'
|
||||||
|
import CommonIcon6 from '@/static/images/my/common-icon-6.png'
|
||||||
|
import CommonIcon7 from '@/static/images/my/common-icon-7.png'
|
||||||
|
import CommonIcon8 from '@/static/images/my/common-icon-8.png'
|
||||||
|
import CommonIcon9 from '@/static/images/my/common-icon-9.png'
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
||||||
const handleLogout = () => {
|
const handleLogout = () => {
|
||||||
@@ -163,19 +160,64 @@ const handleInvite = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleConvert = () => {
|
const handleConvert = (type) => {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pages-sub/convert/index',
|
url: `/pages-sub/convert/index?type=${type}`,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleSignIn = () => {}
|
||||||
|
|
||||||
|
const handleKefu = () => {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages-sub/official-community/index',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const commonList = [
|
||||||
|
{
|
||||||
|
title: '投保记录',
|
||||||
|
icon: CommonIcon5,
|
||||||
|
handle: handleTeam,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '资金明细',
|
||||||
|
icon: CommonIcon6,
|
||||||
|
handle: handleAsset,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '申请理赔',
|
||||||
|
icon: CommonIcon7,
|
||||||
|
handle: handleKefu,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '我的社区',
|
||||||
|
icon: CommonIcon4,
|
||||||
|
handle: handleInvite,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '在线客服',
|
||||||
|
icon: CommonIcon9,
|
||||||
|
handle: handleKefu,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'APP下载',
|
||||||
|
icon: CommonIcon3,
|
||||||
|
handle: downloadAppAPI,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '官方群聊',
|
||||||
|
icon: CommonIcon1,
|
||||||
|
handle: handleKefu,
|
||||||
|
},
|
||||||
|
]
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.my-page {
|
.my-page {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
padding-bottom: 100rpx;
|
background-image: url('@/static/images/my/my-bg.jpg');
|
||||||
background-image: url('@/static/images/bg.png');
|
background-position: top -40px center;
|
||||||
background-position: top;
|
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ onLoad(async (options) => {
|
|||||||
<view class="pt-45">
|
<view class="pt-45">
|
||||||
<view class="mx-15 px-15 shadow-[0_0_10px_rgba(10,68,245,0.1)] rounded-10">
|
<view class="mx-15 px-15 shadow-[0_0_10px_rgba(10,68,245,0.1)] rounded-10">
|
||||||
<view class="flex items-center py-15">
|
<view class="flex items-center py-15">
|
||||||
<image class="w-24 h-24" src="@/static/images/login/phone.png" mode="aspectFit" />
|
<view class="text-gradient">手机号</view>
|
||||||
<input
|
<input
|
||||||
v-model="form.username"
|
v-model="form.username"
|
||||||
type="text"
|
type="text"
|
||||||
@@ -111,7 +111,7 @@ onLoad(async (options) => {
|
|||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex items-center py-15">
|
<view class="flex items-center py-15">
|
||||||
<image class="w-24 h-24" src="@/static/images/login/password.png" mode="aspectFit" />
|
<view class="text-gradient">登录密码</view>
|
||||||
<input
|
<input
|
||||||
v-model="form.password"
|
v-model="form.password"
|
||||||
placeholder-class="text-#889BC6"
|
placeholder-class="text-#889BC6"
|
||||||
@@ -121,37 +121,18 @@ onLoad(async (options) => {
|
|||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex items-center py-15">
|
<view class="flex items-center py-15">
|
||||||
<image class="w-24 h-24" src="@/static/images/login/password.png" mode="aspectFit" />
|
<view class="text-gradient">验证码</view>
|
||||||
<input
|
<input
|
||||||
v-model="form.retpassword"
|
v-model="form.invitecode"
|
||||||
placeholder-class="text-#889BC6"
|
placeholder-class="text-#889BC6"
|
||||||
type="password"
|
type="text"
|
||||||
class="text-right flex-1 text-14"
|
class="text-right flex-1 text-14"
|
||||||
placeholder="请再次输入登录密码"
|
placeholder="请输入验证码"
|
||||||
/>
|
/>
|
||||||
|
<image class="w-60 h-24 ml-15 bg-gray-400" mode="aspectFit" />
|
||||||
</view>
|
</view>
|
||||||
<view class="flex items-center py-15">
|
<view class="flex items-center py-15">
|
||||||
<image class="w-24 h-24" src="@/static/images/login/password.png" mode="aspectFit" />
|
<view class="text-gradient">邀请码</view>
|
||||||
<input
|
|
||||||
v-model="form.tpassword"
|
|
||||||
placeholder-class="text-#889BC6"
|
|
||||||
type="password"
|
|
||||||
class="text-right flex-1 text-14"
|
|
||||||
placeholder="请输入支付密码"
|
|
||||||
/>
|
|
||||||
</view>
|
|
||||||
<view class="flex items-center py-15">
|
|
||||||
<image class="w-24 h-24" src="@/static/images/login/password.png" mode="aspectFit" />
|
|
||||||
<input
|
|
||||||
v-model="form.rettpassword"
|
|
||||||
placeholder-class="text-#889BC6"
|
|
||||||
type="password"
|
|
||||||
class="text-right flex-1 text-14"
|
|
||||||
placeholder="请再次输入支付密码"
|
|
||||||
/>
|
|
||||||
</view>
|
|
||||||
<view class="flex items-center py-15">
|
|
||||||
<image class="w-24 h-24" src="@/static/images/login/invite.png" mode="aspectFit" />
|
|
||||||
<input
|
<input
|
||||||
v-model="form.invitecode"
|
v-model="form.invitecode"
|
||||||
placeholder-class="text-#889BC6"
|
placeholder-class="text-#889BC6"
|
||||||
@@ -171,7 +152,7 @@ onLoad(async (options) => {
|
|||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.login-container {
|
.login-container {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
|
|||||||
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 137 KiB |
|
Before Width: | Height: | Size: 201 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 951 B |
|
After Width: | Height: | Size: 867 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 734 KiB |
|
Before Width: | Height: | Size: 3.0 MiB |
@@ -1,4 +1,4 @@
|
|||||||
import { getUserInfoAPI, logoutUserAPI } from '@/service'
|
import { getRealNameAuthAPI, getUserInfoAPI, logoutUserAPI } from '@/service'
|
||||||
import { mergeStep } from '@/utils'
|
import { mergeStep } from '@/utils'
|
||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
@@ -12,6 +12,15 @@ export const useUserStore = defineStore(
|
|||||||
const loadUserInfo = mergeStep(async () => {
|
const loadUserInfo = mergeStep(async () => {
|
||||||
const res = await getUserInfoAPI()
|
const res = await getUserInfoAPI()
|
||||||
userInfo.value = res.data.userinfo
|
userInfo.value = res.data.userinfo
|
||||||
|
|
||||||
|
getRealNameAuthAPI().then((res) => {
|
||||||
|
if (Number(res.data?.status) !== 2) {
|
||||||
|
uni.reLaunch({
|
||||||
|
url: '/pages-sub/realname/index',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return res.data
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
const setUserInfo = (val: IUserInfo) => {
|
const setUserInfo = (val: IUserInfo) => {
|
||||||
|
|||||||
@@ -14,12 +14,14 @@ interface NavigateToOptions {
|
|||||||
"/pages-sub/asset/index" |
|
"/pages-sub/asset/index" |
|
||||||
"/pages-sub/convert/index" |
|
"/pages-sub/convert/index" |
|
||||||
"/pages-sub/demo/index" |
|
"/pages-sub/demo/index" |
|
||||||
|
"/pages-sub/hot-news/index" |
|
||||||
"/pages-sub/introduction/index" |
|
"/pages-sub/introduction/index" |
|
||||||
"/pages-sub/invest-detail/index" |
|
"/pages-sub/invest-detail/index" |
|
||||||
"/pages-sub/invest-immediately/index" |
|
"/pages-sub/invest-immediately/index" |
|
||||||
"/pages-sub/invest-result/index" |
|
"/pages-sub/invest-result/index" |
|
||||||
"/pages-sub/invite/index" |
|
"/pages-sub/invite/index" |
|
||||||
"/pages-sub/lottery/index" |
|
"/pages-sub/lottery/index" |
|
||||||
|
"/pages-sub/news/index" |
|
||||||
"/pages-sub/news-detail/index" |
|
"/pages-sub/news-detail/index" |
|
||||||
"/pages-sub/official-community/index" |
|
"/pages-sub/official-community/index" |
|
||||||
"/pages-sub/realname/index" |
|
"/pages-sub/realname/index" |
|
||||||
@@ -32,7 +34,7 @@ interface NavigateToOptions {
|
|||||||
interface RedirectToOptions extends NavigateToOptions {}
|
interface RedirectToOptions extends NavigateToOptions {}
|
||||||
|
|
||||||
interface SwitchTabOptions {
|
interface SwitchTabOptions {
|
||||||
url: "/pages/index/index" | "/pages/invite/index" | "/pages/my/index"
|
url: "/pages/index/index" | "/pages/invest/index" | "/pages/invite/index" | "/pages/my/index"
|
||||||
}
|
}
|
||||||
|
|
||||||
type ReLaunchOptions = NavigateToOptions | SwitchTabOptions;
|
type ReLaunchOptions = NavigateToOptions | SwitchTabOptions;
|
||||||
|
|||||||
@@ -78,11 +78,11 @@ export default defineConfig({
|
|||||||
],
|
],
|
||||||
['pt-safe', { 'padding-top': 'env(safe-area-inset-top)' }],
|
['pt-safe', { 'padding-top': 'env(safe-area-inset-top)' }],
|
||||||
['pb-safe', { 'padding-bottom': 'env(safe-area-inset-bottom)' }],
|
['pb-safe', { 'padding-bottom': 'env(safe-area-inset-bottom)' }],
|
||||||
['btn-gradient', { background: 'linear-gradient(90deg,#95C3FF,#4D72F6)' }],
|
['btn-gradient', { background: 'linear-gradient(90deg,#3B81F3,#50D0FF)' }],
|
||||||
[
|
[
|
||||||
'text-gradient',
|
'text-gradient',
|
||||||
{
|
{
|
||||||
'background-image': 'linear-gradient(90deg,#95C3FF,#4D72F6 30%)',
|
'background-image': 'linear-gradient(90deg,#3B81F3,#50D0FF)',
|
||||||
'background-clip': 'text',
|
'background-clip': 'text',
|
||||||
color: 'transparent',
|
color: 'transparent',
|
||||||
},
|
},
|
||||||
|
|||||||