21 Commits

Author SHA1 Message Date
zzzzzak 79b6ce1136 refactor: 余额明细修复 2025-01-16 23:34:50 +08:00
anonymous 23d94407c2 fix: bug 2025-01-16 14:58:24 +08:00
anonymous 05a8cb58d7 fix: bug 2025-01-16 14:09:35 +08:00
anonymous 778d318c7e fix: 修复低端android显示异常 2025-01-16 14:05:29 +08:00
anonymous 8b6922cfbe fix: 修改身份证规则 2025-01-15 09:59:06 +08:00
anonymous ff3640b062 refactor: 修改样式 2025-01-15 08:25:02 +08:00
anonymous e5508fe898 feat: 下载地址 2025-01-15 08:18:22 +08:00
zzzzzak 9354840543 refactor: 修改样式 2025-01-14 23:28:49 +08:00
anonymous 19a8d3c20a chore: 更新app地址 2025-01-14 14:33:37 +08:00
zzzzzak 51e34e4a42 fix: 修改域名 2025-01-13 21:44:22 +08:00
zzzzzak dabaa18dfd fix: 更新公告 2025-01-13 21:32:51 +08:00
zzzzzak 6e330c698e feat: 官方联系方式修改 2025-01-13 21:16:20 +08:00
anonymous 6114c6442c refactor: 修改下载地址 2025-01-13 16:58:00 +08:00
anonymous 3e5fc69c35 refactor: 修改样式 2025-01-13 08:21:31 +08:00
zzzzzak 5c864a8c63 更新 index.vue 2025-01-12 17:12:49 +08:00
anonymous 659dc92c90 feat: 修改文本 2025-01-12 17:04:48 +08:00
zzzzzak cf1900c5ed 更新 index.vue 2025-01-12 16:54:57 +08:00
zzzzzak cf54b39ad1 更新 index.vue 2025-01-12 16:48:14 +08:00
zzzzzak 7159a3148f 更新 index.vue 2025-01-12 16:27:05 +08:00
zzzzzak 0024d0f4e1 更新 index.vue 2025-01-12 12:02:01 +08:00
zzzzzak bfeb64196d 更新 index.vue 2025-01-12 11:32:43 +08:00
23 changed files with 216 additions and 73 deletions
Vendored
+3 -3
View File
@@ -1,5 +1,5 @@
VITE_APP_TITLE = 'unibest'
VITE_APP_PORT = 9000
VITE_APP_PORT = 9001
VITE_UNI_APPID = 'H57F2ACE4'
VITE_WX_APPID = 'wxa2abb91f64032a2b'
@@ -7,8 +7,8 @@ VITE_WX_APPID = 'wxa2abb91f64032a2b'
# h5部署网站的base,配置到 manifest.config.ts 里的 h5.router.base
VITE_APP_PUBLIC_BASE=/
VITE_SERVER_BASEURL = 'https://sapi.foxmail555.cc'
VITE_UPLOAD_BASEURL = 'https://sapi.foxmail555.cc/api/common/upload'
VITE_SERVER_BASEURL = 'https://api.qmbz.cc'
VITE_UPLOAD_BASEURL = 'https://api.qmbz.cc/api/common/upload'
# h5是否需要配置代理
VITE_APP_PROXY=false
+4 -1
View File
@@ -36,7 +36,7 @@ const userStore = useUserStore()
/* 覆盖 uniapp 自带rpx效果 */
html {
font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 16px !important;
// font-size: 16px !important;
}
/* stylelint-disable-next-line selector-type-no-unknown */
#app {
@@ -131,4 +131,7 @@ uni-modal {
}
}
}
::-webkit-scrollbar {
display: none;
}
</style>
-1
View File
@@ -36,7 +36,6 @@ const handleClickLeft = () => {
<style lang="scss" scoped>
:deep(.wd-navbar) {
--wot-navbar-title-font-size: 32rpx;
--wot-navbar-color: v-bind('titleColor');
}
</style>
+79
View File
@@ -0,0 +1,79 @@
<route lang="json5">
{
style: {
navigationBarTitleText: '资金明细',
navigationBarBackgroundColor: '#fff',
navigationStyle: 'custom',
},
}
</route>
<script lang="ts" setup>
import NavBar from '@/components/NavBar.vue'
import { getMyAssetAPI } from '@/service'
import { useUserStore } from '@/store'
const { list: assetList } = useListPageRequest(getMyAssetAPI)
</script>
<template>
<view class="asset-page pt-15 relative">
<NavBar />
<!-- <view class="flex justify-around">
<view
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 === index }"
>
<view class="text-14">{{ tabItem.label }}</view>
</view>
</view> -->
<view class="relative z-1 mt-10 main-content pt-30 pb-30 rounded-t-15">
<view class="mb-15 px-25">资金明细</view>
<template v-if="assetList.length">
<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>
</template>
<template v-else>
<wd-status-tip image="content" tip="暂无数据" />
</template>
</view>
<!-- <view class="mx-15 text-16 font-bold text-#333">我的资产</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)]"
>
<view class="text-14 text-#6784C7">总投资金</view>
<view class="text-35 mt-10 font-bold">{{ detailInfo.suminvest }}</view>
</view>
<view class="text-16 mx-15 mb-15 font-bold text-#333 mt-30">资产记录</view>
-->
</view>
</template>
<style scoped>
.asset-page {
background-image: url('@/static/images/assets-bg.jpg');
background-repeat: no-repeat;
background-position: top center;
background-size: 100%;
}
.main-content {
background-color: #ffffff;
/* backdrop-filter: blur(60px); */
}
</style>
+12 -19
View File
@@ -3,11 +3,13 @@
style: {
navigationBarTitleText: '资金明细',
navigationBarBackgroundColor: '#fff',
navigationStyle: 'custom',
},
}
</route>
<script lang="ts" setup>
import NavBar from '@/components/NavBar.vue'
import { getMyAssetAPI } from '@/service'
import { useUserStore } from '@/store'
@@ -35,26 +37,15 @@ const { list: assetList, onReload } = useListPageRequest(
onLoad((options) => {
tabIndex.value = Number(options.tabIndex ?? 0)
uni.setNavigationBarTitle({
title: tabList.value[tabIndex.value].label,
onReload({
flagdata: unref(tabList)[tabIndex.value].value,
})
})
watch(
() => tabIndex.value,
(index) => {
onReload({
type: unref(tabList)[index].value,
})
},
{
immediate: true,
},
)
</script>
<template>
<view class="asset-page pt-15 relative">
<view class="absolute top-130 -left-55 btn-gradient text-white rounded-full w-172 h-172"></view>
<NavBar :title="tabList[tabIndex].label" />
<!-- <view class="flex justify-around">
<view
v-for="(tabItem, index) in tabList"
@@ -66,11 +57,11 @@ watch(
<view class="text-14">{{ tabItem.label }}</view>
</view>
</view> -->
<view class="p-15">
<view class="mt-30 p-15 text-white">
<view class="text-17">{{ tabList[tabIndex].label }}</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="relative z-1 mt-10 main-content pt-30 pb-30 rounded-t-15">
<view class="mb-15 px-25">{{ tabList[tabIndex].label }}明细</view>
<template v-if="assetList.length">
<view
@@ -107,11 +98,13 @@ watch(
<style scoped>
.asset-page {
background-image: url('@/static/images/assets-bg.jpg');
background-repeat: no-repeat;
background-position: center;
background-size: 172px 172px;
background-position: top center;
background-size: 100%;
}
.main-content {
backdrop-filter: blur(60px);
background-color: #ffffff;
/* backdrop-filter: blur(60px); */
}
</style>
+15 -6
View File
@@ -3,27 +3,36 @@
style: {
navigationBarTitleText: '投资记录',
navigationBarBackgroundColor: '#fff',
navigationStyle: 'custom',
},
}
</route>
<script setup lang="ts">
import NavBar from '@/components/NavBar.vue'
import { getInvestmentRecordAPI } from '@/service'
const { list: investmentRecordList } = useListPageRequest(getInvestmentRecordAPI)
function getType(item) {
return Number(item.typedata) === 2 ? '投保' : '投资'
}
</script>
<template>
<view class="min-h-screen pb-100">
<template v-if="investmentRecordList.length">
<view
class="min-h-screen pb-100"
style="background: linear-gradient(180deg, #3a90f2 0%, #f7f7f7 100%)"
>
<NavBar />
<view class="mt-15" v-if="investmentRecordList.length">
<view
class="flex px-15 py-8 border-b border-#E5E5E5 border-b-solid"
class="flex px-15 py-8 mb-1 bg-#ffffff"
v-for="item in investmentRecordList"
:key="item.id"
>
<image src="/static/images/page-sub/money-icon.png" class="w-32 h-32 self-center" />
<view class="flex flex-col flex-1 justify-between ml-15">
<view class="text-14 text-#333">{{ item.name }}</view>
<view class="text-12 text-#999">投资</view>
<view class="text-12 text-#999">{{ getType(item) }}</view>
<view class="text-12 text-#999">{{ item.createtime }}</view>
</view>
@@ -33,11 +42,11 @@ const { list: investmentRecordList } = useListPageRequest(getInvestmentRecordAPI
class="text-14 mt-18 py-4 px-10 bg-#71C78A1A text-#71C78A"
v-if="Number(item.status) === 1"
>
投资成功
{{ getType(item) }}成功
</view>
</view>
</view>
</template>
</view>
<template v-else>
<wd-status-tip image="content" tip="暂无内容" />
</template>
+26 -15
View File
@@ -16,21 +16,32 @@ import VueQrcode from '@chenfengyuan/vue-qrcode'
<template>
<view class="official-community-page">
<NavBar />
<view class="p-15 text-center bg-white rounded-10 m-15 shadow-[0_0_10px_rgba(0,0,0,0.1)]">
<view class="text-16 font-bold text-#333">扫码进入</view>
<wd-icon name="arrow-down" color="#333" size="18px"></wd-icon>
<view class="btn-gradient rounded-full w-fit mx-auto text-16 text-white py-10 px-15">
微聊总群50101011
</view>
<VueQrcode class="!w-270 !h-270 mx-auto" :value="'qrcodeValue'" :options="{ size: 600 }" />
<view
class="relative px-15 text-center bg-white rounded-10 m-15 shadow-[0_0_10px_rgba(0,0,0,0.1)]"
>
<image
class="w-full mx-auto"
src="@/static/images/page-sub/official-community/image-1.jpg"
mode="widthFix"
/>
<a
href="https://doudlj.org/joinchat/Jol7Vt58a2aCrjsXm9D_LA"
class="absolute bottom-15 left-50% -translate-x-1/2"
>
点击进入
</a>
</view>
<view class="p-15 text-center bg-white rounded-10 m-15 shadow-[0_0_10px_rgba(0,0,0,0.1)]">
<view class="text-16 font-bold text-#333">扫码进入</view>
<wd-icon name="arrow-down" color="#333" size="18px"></wd-icon>
<view class="btn-gradient rounded-full w-fit mx-auto text-16 text-white py-10 px-15">
QQ群2群1011101011
</view>
<VueQrcode class="!w-270 !h-270 mx-auto" :value="'qrcodeValue'" :options="{ size: 600 }" />
<view
class="relative px-15 text-center bg-white rounded-10 m-15 shadow-[0_0_10px_rgba(0,0,0,0.1)]"
>
<image
class="w-full mx-auto"
src="@/static/images/page-sub/official-community/image-2.jpg"
mode="widthFix"
/>
<a href="https://doudlj.org/NiPing95" class="absolute bottom-15 left-50% -translate-x-1/2">
点击进入
</a>
</view>
</view>
</template>
@@ -38,7 +49,7 @@ import VueQrcode from '@chenfengyuan/vue-qrcode'
<style scoped>
.official-community-page {
min-height: 100vh;
padding-bottom: 100rpx;
padding-bottom: 50px;
background-image: url('@/static/images/bg.png');
background-position: top;
background-size: cover;
+1 -1
View File
@@ -143,7 +143,7 @@ const onSubmit = mergeStep(async () => {
return
}
if (!/^\d{17}[\d|x]$/.test(form.value.cardnum)) {
if (!/^\d{17}[\d|x]$/i.test(form.value.cardnum)) {
await showModal('身份证号格式错误')
return
}
+1 -1
View File
@@ -123,7 +123,7 @@ watch(
<style lang="scss" scoped>
.team-page {
min-height: 100vh;
padding-bottom: 100rpx;
padding-bottom: 50px;
background-image: url('@/static/images/bg.png');
background-position: top;
background-size: cover;
+13 -2
View File
@@ -120,7 +120,17 @@
"type": "page",
"style": {
"navigationBarTitleText": "资金明细",
"navigationBarBackgroundColor": "#fff"
"navigationBarBackgroundColor": "#fff",
"navigationStyle": "custom"
}
},
{
"path": "asset-detail/index",
"type": "page",
"style": {
"navigationBarTitleText": "资金明细",
"navigationBarBackgroundColor": "#fff",
"navigationStyle": "custom"
}
},
{
@@ -158,7 +168,8 @@
"type": "page",
"style": {
"navigationBarTitleText": "投资记录",
"navigationBarBackgroundColor": "#fff"
"navigationBarBackgroundColor": "#fff",
"navigationStyle": "custom"
}
},
{
+1 -2
View File
@@ -8,7 +8,7 @@
}
</route>
<template>
<view class="login-container relative">
<view class="login-container pb-50 relative">
<NavBar />
<view class="pt-45">
<view class="mx-15 px-15 shadow-[0_0_10px_rgba(10,68,245,0.1)] rounded-10">
@@ -116,7 +116,6 @@ onLoad(() => {
.login-container {
box-sizing: border-box;
min-height: 100vh;
padding-bottom: 200rpx;
background-image: url('@/static/images/login-bg.png');
background-repeat: no-repeat;
background-size: cover;
+34 -11
View File
@@ -8,7 +8,7 @@
}
</route>
<template>
<view class="home-page">
<view class="home-page pb-50">
<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">
@@ -36,6 +36,24 @@
</view>
</template>
<view class="flex bg-white py-15 rounded-10 m-15 border-2 border-white border-solid">
<view class="flex-1 flex flex-col items-center" @click="handleInvite">
<image class="w-30 h-30" src="@/static/images/home/nav-1.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-4.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-2.png" mode="aspectFill" />
<text class="mt-8 text-14 text-#333">官方群聊</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 class="bg-white pt-15 px-15 rounded-10 m-15">
<view class="flex justify-between items-center">
<view class="text-14 text-#333">最新时讯</view>
@@ -73,19 +91,19 @@
</view>
</view>
</view>
<wd-popup :lockScroll="false" v-model="showNotice" custom-style="border-radius:40rpx;">
<wd-popup :lockScroll="false" v-model="showNotice" custom-style="border-radius:0.2rem;">
<view class="px-30 py-30 w-330 h-457 notice-container rounded-20 flex flex-col">
<view class="text-18 font-bold py-15 text-center">系统公告</view>
<view class="py-15 flex-1">
<view class="text-18 font-bold pb-15 text-center">系统公告</view>
<view class="py-15 flex-1 overflow-y-auto">
<view
v-for="(item, index) in announcementList"
:key="item.id"
class="flex border-b-1 border-b-gray-300 border-b-solid py-15"
class="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" v-html="item.content"></text>
<view class="whitespace-nowrap text-14 font-bold text-gradient text-center">
公告{{ ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十'][index] }}
</view>
<view class="mt-12 text-14 text-#333 flex-1" v-html="item.content"></view>
</view>
</view>
<view
@@ -133,7 +151,7 @@ const handleNewsDetail = (id: number) => {
}
const handleInvite = () => {
uni.navigateTo({
uni.switchTab({
url: '/pages/invite/index',
})
}
@@ -179,6 +197,12 @@ watch(
},
)
onShow(() => {
if (announcementList.value.length) {
showNotice.value = true
}
})
const userStore = useUserStore()
const handleOpenAccount = async () => {
await getOpenPersonalAccountAPI()
@@ -191,7 +215,6 @@ const handleOpenAccount = async () => {
<style scoped>
.home-page {
min-height: 100vh;
padding-bottom: 100rpx;
background-image: url('@/static/images/home/bg.jpg');
background-position: top;
background-size: cover;
+2 -2
View File
@@ -126,7 +126,7 @@
<wd-popup
v-model="showRightConfig.show"
:title="`${showRightConfig.data?.name}权益`"
custom-style="border-radius: 15px"
custom-style="border-radius: 0.2rem"
>
<view>
<image
@@ -221,7 +221,7 @@ const onInvest = mergeStep(async (item: any) => {
}
await userStore.loadUserInfo()
uni.showToast({
title: '投资成功',
title: tabValue.value === 2 ? '投保成功' : '投资成功',
icon: 'none',
})
})
+1 -1
View File
@@ -148,7 +148,7 @@ onLoad(() => {
.login-container {
box-sizing: border-box;
min-height: 100vh;
padding-bottom: 200rpx;
padding-bottom: 50px;
background-image: url('@/static/images/login-bg.png');
background-repeat: no-repeat;
background-size: cover;
+7 -1
View File
@@ -152,6 +152,12 @@ const handleAsset = (index = 0) => {
})
}
const handleAssetDetail = () => {
uni.navigateTo({
url: '/pages-sub/asset-detail/index',
})
}
const handleBankCard = () => {
uni.navigateTo({
url: '/pages-sub/withdrawal-type/index',
@@ -205,7 +211,7 @@ const commonList = [
{
title: '资金明细',
icon: CommonIcon6,
handle: () => handleAsset(0),
handle: handleAssetDetail,
},
{
title: '申请理赔',
+9 -4
View File
@@ -84,9 +84,14 @@ onLoad(async (options) => {
<template>
<view class="login-container relative">
<NavBar title-color="#333" />
<NavBar />
<image
class="mt-30 w-86 rounded-full mx-auto block h-86"
src="@/static/images/login/logo.png"
mode="aspectFit"
/>
<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 bg-white px-15 shadow-[0_0_10px_rgba(10,68,245,0.1)] rounded-10">
<view class="flex items-center py-15">
<view class="text-gradient">手机号</view>
<input
@@ -153,8 +158,8 @@ onLoad(async (options) => {
.login-container {
box-sizing: border-box;
min-height: 100vh;
padding-bottom: 200rpx;
background-image: url('@/static/images/login-bg.png');
padding-bottom: 50px;
background-image: url('@/static/images/register-bg.jpg');
background-repeat: no-repeat;
background-size: cover;
}
+1 -1
View File
@@ -151,7 +151,7 @@ export const getWithdrawalRecordAPI = (data) =>
// 下载APP
export const downloadAppAPI = () => {
location.href = 'https://r2.maldiveswallet.vip/app/x-4.apk'
location.href = 'https://r2.maldiveswallet.vip/app/qmbz-2.apk'
}
// 社区我的邀请
Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

+1
View File
@@ -12,6 +12,7 @@ interface NavigateToOptions {
"/pages/my/index" |
"/pages/register/index" |
"/pages-sub/asset/index" |
"/pages-sub/asset-detail/index" |
"/pages-sub/convert/index" |
"/pages-sub/demo/index" |
"/pages-sub/hot-news/index" |
+6 -2
View File
@@ -113,12 +113,16 @@ export default ({ command, mode }) => {
css: {
postcss: {
plugins: [
autoprefixer(),
autoprefixer({
overrideBrowserslist: ['Android >= 4.0', 'iOS >= 8'],
}),
viewport({
mobileUnit: 'rem',
appSelector: '#app',
selectorBlackList: ['uni-'],
viewportWidth: 375,
maxDisplayWidth: 600,
rootContainingBlockSelectorList: ['van-tabbar', 'van-popup'],
// rootContainingBlockSelectorList: ['wd-navbar__title'],
border: true,
}),
],