From bcd71512ab330b2e31b7ab9d055abd43ff23be3d Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 21 十月 2025 14:13:20 +0800
Subject: [PATCH] fix: bug
---
apps/cMiniApp/src/pages/mine/index.vue | 202 +++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 172 insertions(+), 30 deletions(-)
diff --git a/apps/cMiniApp/src/pages/mine/index.vue b/apps/cMiniApp/src/pages/mine/index.vue
index 6c2bc79..3dc8ac2 100644
--- a/apps/cMiniApp/src/pages/mine/index.vue
+++ b/apps/cMiniApp/src/pages/mine/index.vue
@@ -1,5 +1,5 @@
<template>
- <PageLayout class="mine-page-wrapper" :need-auth="false">
+ <PageLayoutWithBg class="mine-page-wrapper" title="鎴戠殑" :need-auth="false">
<template #navigationBar>
<TransparentNavigationBar
title="涓汉涓績"
@@ -14,15 +14,40 @@
<UserHomeTopView :showUserHomePageBtn="isLogin" :showOperation="isLogin">
<template #avatar>
<div class="mine-avatar-wrapper" @click="goLogin">
- <UserAvatar :size="60" class="mine-avatar" />
+ <UserAvatar :size="52" class="mine-avatar" />
<div class="user-info" v-if="isLogin">
- <div class="user-info-item">{{ userDetail?.userName ?? '' }}</div>
- <div class="user-info-item2" v-if="isCertified">
- {{ userDetail?.customerName ?? '' }}
- </div>
- <div class="user-info-unCertified" v-else @click.stop="goAuthentication">
- <img :src="IconUnCertified" class="user-info-unCertified-icon" />
- <div class="user-info-unCertified-text">鏈璇�</div>
+ <div class="user-info-item">{{ userDetail?.name ?? '' }}</div>
+ <div class="user-info-auth">
+ <div class="user-info-auth-item">
+ <div class="user-info-unCertified">
+ <div
+ class="user-info-unCertified-text"
+ v-if="userDetail?.realStatus === EnumPersonalUserRealStatus.UnReal"
+ >
+ 鏈璇�
+ </div>
+ <div class="user-info-unCertified-text" v-else>
+ {{ EnumUserRealMethodText[userDetail?.realMethod]
+ }}{{ EnumPersonalUserRealStatusText[userDetail?.realStatus] }}
+ </div>
+ <div
+ class="user-info-unCertified-btn"
+ @click.stop="goAuthentication"
+ v-if="
+ userDetail?.realStatus === EnumPersonalUserRealStatus.UnReal ||
+ userDetail?.realStatus === EnumPersonalUserRealStatus.Fail
+ "
+ >
+ 绔嬪嵆璁よ瘉
+ </div>
+ </div>
+ <!-- <div class="user-info-unCertified" v-else>
+ <img :src="IconAuth" class="user-info-unCertified-icon" />
+ <div class="user-info-unCertified-text">
+ {{ EnumUserRealMethodText[userDetail?.realMethod] }}{{ EnumPersonalUserRealStatusText[userDetail?.realStatus] }}
+ </div>
+ </div> -->
+ </div>
</div>
</div>
<div class="mine-go-login" v-else>鍘荤櫥褰�</div>
@@ -31,41 +56,124 @@
</UserHomeTopView>
</ContentView>
<ContentScrollView v-if="isLogin" class="mine-content-scroll-view">
- <div class="mine-id-menu-wrapper">
- <img :src="IconLamp" class="mine-id-menu-icon" />
- </div>
- <List class="mine-setting-list">
+ <List class="mine-list-wrapper mine-balance">
+ <div class="mine-balance-content">
+ <div class="mine-balance-content-item">
+ <div class="mine-balance-content-item-title">鎴戠殑鏀剁泭</div>
+ <div class="mine-balance-content-item-money income">
+ 锟{ toThousand(userDetail?.incomeCount ?? 0) }}
+ </div>
+ </div>
+ <div class="mine-balance-content-item">
+ <div class="mine-balance-content-item-title">寰呯粨绠�</div>
+ <div class="mine-balance-content-item-money settlement">
+ 锟{ toThousand(userDetail?.waitSettlement ?? 0) }}
+ </div>
+ </div>
+ <div class="mine-balance-content-item">
+ <div class="mine-balance-content-item-title">宸插彂鏀�</div>
+ <div class="mine-balance-content-item-money withdraw">
+ 锟{ toThousand(userDetail?.releaseedCount ?? 0) }}
+ </div>
+ </div>
+ </div>
+ <div class="mine-balance-btn" @click="goMineWallet">
+ 杩涘叆鎴戠殑閽卞寘
+ <img :src="IconArrow" class="mine-balance-btn-icon" />
+ </div>
+ </List>
+ <List class="mine-list-wrapper mine-order-list">
+ <div class="mine-order-list-title">
+ <div class="mine-order-list-title-text">鎴戠殑璁㈠崟</div>
+ <img :src="IconArrow" class="mine-order-list-title-icon" />
+ </div>
+ <div class="mine-order-list-content">
+ <nut-badge
+ class="mine-order-list-item"
+ top="8"
+ :value="userDetail?.taskCount ?? 0"
+ @click="goMineSign"
+ >
+ <img :src="IconOrderSign" class="mine-order-list-icon" />
+ <div class="mine-order-list-text">鎴戠殑鎶ュ悕</div>
+ </nut-badge>
+ <nut-badge
+ class="mine-order-list-item"
+ top="8"
+ :value="userDetail?.hirePassTaskCount ?? 0"
+ @click="goMineHire"
+ >
+ <img :src="IconOrderHire" class="mine-order-list-icon" />
+ <div class="mine-order-list-text">宸插畨鎺�</div>
+ </nut-badge>
+ <nut-badge
+ class="mine-order-list-item"
+ top="8"
+ :value="userDetail?.hireRefuseTaskCount ?? 0"
+ @click="goMineCancel"
+ >
+ <img :src="IconOrderCancel" class="mine-order-list-icon" />
+ <div class="mine-order-list-text">宸插彇娑�</div>
+ </nut-badge>
+ </div>
+ </List>
+ <List class="mine-list-wrapper mine-setting-list">
+ <ListItem :icon="IconCollect" title="鎴戞敹钘忕殑浠诲姟" @click="goMineCollectTask"></ListItem>
+ <ListItem :icon="IconAgreement" title="鍗忚绛剧害" @click="goMineAgreementSign"></ListItem>
+ <ListItem :icon="IconSetting" title="浜哄伐瀹㈡湇" @click="goMineService"></ListItem>
<ListItem :icon="IconSetting" title="璁剧疆" @click="goSetting"></ListItem>
+ <!-- <ListItem :icon="IconRecruit" title="鎴戣鎷涗汉/鐢ㄤ汉" @click="goSetting"></ListItem> -->
</List>
</ContentScrollView>
- </PageLayout>
+ </PageLayoutWithBg>
</template>
<script setup lang="ts">
-import {
- PageLayout,
- TransparentNavigationBar,
- ContentScrollView,
- UserHomeTopView,
-} from '@/components';
-import IconUnCertified from '@/assets/mine/icon-unCertified.png';
-import IconLamp from '@/assets/mine/icon-lamp.png';
-import IconMenuBusiness from '@/assets/mine/icon-menu-business.png';
-import IconMenuContact from '@/assets/mine/icon-menu-contact.png';
+import { TransparentNavigationBar, ContentScrollView, UserHomeTopView } from '@/components';
+import IconArrow from '@/assets/setting/icon-arrow.png';
import IconSetting from '@/assets/mine/icon-setting.png';
-import IconMessage from '@/assets/mine/icon-message.png';
+import IconCollect from '@/assets/mine/icon-collect.png';
+import IconAgreement from '@/assets/mine/icon-agreement.png';
+import IconRecruit from '@/assets/mine/icon-recruit.png';
+import IconOrderSign from '@/assets/mine/icon-order-sign.png';
+import IconOrderHire from '@/assets/mine/icon-order-hire.png';
+import IconOrderCancel from '@/assets/mine/icon-order-cancel.png';
+import IconAuth from '@/assets/mine/icon-auth.png';
import { useUser, useIsLogin, useGoLogin } from '@/hooks';
import Taro from '@tarojs/taro';
import { RouterPath, OssAssets } from '@/constants';
+import {
+ EnumUserRealMethodText,
+ EnumPersonalUserRealStatusText,
+ EnumPersonalUserRealStatus,
+} from '@12333/constants';
import { List, ListItem } from '@12333/components';
import { useSystemStore } from '@/stores/modules/system';
+import PageLayoutWithBg from '@/components/Layout/PageLayoutWithBg.vue';
+import { toThousand } from '@12333/utils';
+import { useIntervalFn } from 'senin-mini/hooks';
+import { useQuery } from '@tanstack/vue-query';
-const { userDetail, isCertified } = useUser();
+const { userDetail, isCertified, updateUserInfo } = useUser();
const isLogin = useIsLogin();
const systemStore = useSystemStore();
-
const { goLoginFn } = useGoLogin();
const bgHeight = computed(() => 133 + systemStore.navHeight);
+
+useQuery({
+ queryKey: ['updateUserInfo'],
+ queryFn: () => {},
+ enabled: computed(
+ () => isLogin.value && userDetail.value?.realStatus === EnumPersonalUserRealStatus.Checking
+ ),
+ refetchInterval: 5000,
+});
+
+Taro.useDidShow(() => {
+ if (isLogin.value) {
+ updateUserInfo();
+ }
+});
function goLogin() {
if (!isLogin.value) {
@@ -80,7 +188,7 @@
}
function goSetting() {
- // goPage(RouterPath.setting);
+ goPage(RouterPath.setting);
}
Taro.showShareMenu({
@@ -89,14 +197,41 @@
Taro.useShareAppMessage((res) => {
return {
- title: `${userDetail.value?.contacter}鍚嶇墖`,
+ // title: `${userDetail.value?.contacter}鍚嶇墖`,
// path: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`,
- imageUrl: userDetail.value?.avatarUrl,
+ // imageUrl: userDetail.value?.avatarUrl,
};
});
function goAuthentication() {
goPage(RouterPath.authenticationHome);
+}
+function goMineSign() {
+ goPage(RouterPath.mineSign);
+}
+function goMineHire() {
+ goPage(RouterPath.mineHire);
+}
+function goMineCancel() {
+ goPage(RouterPath.mineCancel);
+}
+function goMineCollectTask() {
+ goPage(RouterPath.mineCollectTask);
+}
+function goMineAgreementSign() {
+ goPage(RouterPath.mineAgreementSign);
+}
+
+function goMineWallet() {
+ goPage(RouterPath.mineWallet);
+}
+
+function goMineService() {
+ // const encodedUrl = encodeURIComponent('https://work.weixin.qq.com/kfid/kfcd24e0c60fd91099');
+ // goPage(`${RouterPath.extraPage}?url=${encodedUrl}`);
+ Taro.navigateTo({
+ url: 'https://work.weixin.qq.com/kfid/kfcd24e0c60fd91099',
+ });
}
</script>
@@ -107,4 +242,11 @@
.mine-setting-badge {
margin-right: 20px;
}
+
+.mine-setting-list {
+ .pro-list-item-icon {
+ width: 48px;
+ height: 48px;
+ }
+}
</style>
--
Gitblit v1.9.1