From b07be215f22df05aa8a708a2ea321e89a643826f Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期二, 11 二月 2025 18:09:07 +0800 Subject: [PATCH] feat: mine --- apps/cMiniApp/src/pages/mine/index.vue | 145 ++++++++++++++++++++++++++---------------------- 1 files changed, 78 insertions(+), 67 deletions(-) diff --git a/apps/cMiniApp/src/pages/mine/index.vue b/apps/cMiniApp/src/pages/mine/index.vue index 71e469c..5e04d6a 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" :need-auth="false"> <template #navigationBar> <TransparentNavigationBar title="涓汉涓績" @@ -14,15 +14,30 @@ <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-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">绔嬪嵆瀹炲悕</div> + </div> + <div class="user-info-unCertified" v-else @click.stop="goAuthentication"> + <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">绔嬪嵆璁よ瘉</div> + </div> + <div class="user-info-unCertified" v-else @click.stop="goAuthentication"> + <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> @@ -31,62 +46,61 @@ </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"> + 杩涘叆鎴戠殑閽卞寘 + <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="8" @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="8" @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="8" @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="IconSetting" title="鎴戞敹钘忕殑浠诲姟" @click="goMineCollectTask"></ListItem> + <ListItem :icon="IconSetting" title="鍗忚绛剧害" @click="goMineAgreementSign"></ListItem> <ListItem :icon="IconSetting" title="璁剧疆" @click="goSetting"></ListItem> + <ListItem :icon="IconSetting" 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 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'; -const { userDetail, isCertified, matchMakingIdentity } = useUser(); +const { userDetail, isCertified } = useUser(); const isLogin = useIsLogin(); const systemStore = useSystemStore(); @@ -109,18 +123,6 @@ 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'], }); @@ -128,19 +130,28 @@ Taro.useShareAppMessage((res) => { return { title: `${userDetail.value?.contacter}鍚嶇墖`, - path: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`, + // path: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`, imageUrl: userDetail.value?.avatarUrl, }; }); -const { myMessageCount } = useMyMessageCount(); - function goAuthentication() { goPage(RouterPath.authenticationHome); } - -function goTradeChatRecord() { - goPage(RouterPath.tradeChatRecord); +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); } </script> -- Gitblit v1.9.1