From 5fbd1b13686fb3aaad863a0454625190aec92d2c Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 12 八月 2025 14:04:03 +0800
Subject: [PATCH] feat: 接口对接
---
apps/cMiniApp/src/pages/mine/index.vue | 205 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 135 insertions(+), 70 deletions(-)
diff --git a/apps/cMiniApp/src/pages/mine/index.vue b/apps/cMiniApp/src/pages/mine/index.vue
index 71e469c..4c9ab7a 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,16 +14,35 @@
<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>
+ <div class="user-info-item">{{ detail?.name ?? '' }}</div>
+ <!-- <div class="user-info-auth">
+ <div class="user-info-auth-item">
+ <div class="user-info-unCertified" v-if="isCertified">
+ <div class="user-info-unCertified-text">鏈疄鍚�</div>
+ <div class="user-info-unCertified-btn" @click.stop="goAuthentication">
+ 绔嬪嵆瀹炲悕
+ </div>
+ </div>
+ <div class="user-info-unCertified" v-else>
+ <img :src="IconAuth" class="user-info-unCertified-icon" />
+ <div class="user-info-unCertified-text">宸插疄鍚�</div>
+ </div>
+ </div>
+ <div class="user-info-auth-item">
+ <div class="user-info-unCertified" v-if="!isCertified">
+ <div class="user-info-unCertified-text">鏈璇�</div>
+ <div class="user-info-unCertified-btn" @click.stop="goAuthentication">
+ 绔嬪嵆璁よ瘉
+ </div>
+ </div>
+ <div class="user-info-unCertified" v-else>
+ <img :src="IconAuth" class="user-info-unCertified-icon" />
+ <div class="user-info-unCertified-text">宸茶璇�</div>
+ </div>
+ </div>
+ </div> -->
</div>
<div class="mine-go-login" v-else>鍘荤櫥褰�</div>
</div>
@@ -31,67 +50,105 @@
</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 class="mine-id-menu-text">
- 鎮ㄥ綋鍓嶇殑韬唤涓簕{ MatchMakingIdentityEnumText[matchMakingIdentity] }}
+ <!-- <List class="mine-list-wrapper mine-balance">
+ <div class="mine-balance-title">鎴戠殑浣欓</div>
+ <div class="mine-balance-money">锟{ toThousand(100) }}</div>
+ <div class="mine-balance-btn" @click="goMineWallet">
+ 杩涘叆鎴戠殑閽卞寘
+ <img :src="IconArrow" class="mine-balance-btn-icon" />
</div>
- <div class="mine-id-menu-btn" @click="goPage(RouterPath.toggleMatchMakingIdentity)">
- 鍒囨崲韬唤
+ </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>
- <div class="mine-menu-list">
- <div class="mine-menu-list-item" @click="goBusinessManagement">
- <img :src="IconMenuBusiness" class="mine-menu-list-item-icon" />
- <div class="mine-menu-list-item-text">涓氬姟绠$悊</div>
+ <div class="mine-order-list-content">
+ <nut-badge
+ class="mine-order-list-item"
+ top="8"
+ :value="detail?.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="detail?.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="detail?.hireRefuseTaskCount ?? 0"
+ @click="goMineCancel"
+ >
+ <img :src="IconOrderCancel" class="mine-order-list-icon" />
+ <div class="mine-order-list-text">宸插彇娑�</div>
+ </nut-badge>
</div>
- <div class="mine-menu-list-item" @click="goTradeChatRecord">
- <img :src="IconMenuContact" class="mine-menu-list-item-icon" />
- <div class="mine-menu-list-item-text">鑱旂郴璁板綍</div>
- </div>
- </div>
- <List class="mine-setting-list">
- <ListItem :icon="IconMessage" title="娑堟伅" @click="goMessage">
- <template #extra>
- <nut-badge
- :value="myMessageCount.unReadCount ?? 0"
- class="mine-setting-badge"
- :hidden="!myMessageCount.unReadCount"
- ></nut-badge>
- </template>
- </ListItem>
+ </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="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 { useUser, useIsLogin, useGoLogin, useMyMessageCount } from '@/hooks';
+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 { MatchMakingIdentityEnumText, MatchMakingIdentityEnum } 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 { useQuery } from '@tanstack/vue-query';
+import * as authServices from '@12333/services/apiV2/auth';
-const { userDetail, isCertified, matchMakingIdentity } = useUser();
+const { userDetail, isCertified } = useUser();
const isLogin = useIsLogin();
const systemStore = useSystemStore();
const { goLoginFn } = useGoLogin();
const bgHeight = computed(() => 133 + systemStore.navHeight);
+
+const {
+ isLoading,
+ isError,
+ data: detail,
+ refetch,
+} = useQuery({
+ queryKey: ['authServices/getPersonalLoginInfo'],
+ queryFn: async () => {
+ return await authServices.getPersonalLoginInfo(
+ {},
+ {
+ showLoading: false,
+ }
+ );
+ },
+ placeholderData: () => ({} as API.GetPersonalLoginInfoQueryResult),
+ enabled: isLogin,
+});
function goLogin() {
if (!isLogin.value) {
@@ -109,38 +166,39 @@
goPage(RouterPath.setting);
}
-function goMessage() {
- goPage(RouterPath.messageList);
-}
-
-function goBusinessManagement() {
- if (matchMakingIdentity.value === MatchMakingIdentityEnum.Employing) {
- goPage(RouterPath.orderManage);
- } else if (matchMakingIdentity.value === MatchMakingIdentityEnum.Contributors) {
- goPage(RouterPath.resourceManage);
- }
-}
-
Taro.showShareMenu({
showShareItems: ['shareAppMessage'],
});
Taro.useShareAppMessage((res) => {
return {
- title: `${userDetail.value?.contacter}鍚嶇墖`,
- path: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`,
- imageUrl: userDetail.value?.avatarUrl,
+ // title: `${userDetail.value?.contacter}鍚嶇墖`,
+ // path: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`,
+ // imageUrl: userDetail.value?.avatarUrl,
};
});
-
-const { myMessageCount } = useMyMessageCount();
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 goTradeChatRecord() {
- goPage(RouterPath.tradeChatRecord);
+function goMineWallet() {
+ goPage(RouterPath.mineWallet);
}
</script>
@@ -151,4 +209,11 @@
.mine-setting-badge {
margin-right: 20px;
}
+
+.mine-setting-list {
+ .pro-list-item-icon {
+ width: 48px;
+ height: 48px;
+ }
+}
</style>
--
Gitblit v1.9.1