| | |
| | | <img :src="OssAssets.mine.Bg" class="mine-page-bg" :style="{ height: `${bgHeight}px` }" /> |
| | | </template> |
| | | <ContentView> |
| | | <UserHomeTopView :showUserHomePageBtn="isLogin" :showOperation="isLogin"> |
| | | <UserHomeTopView :showOperation="isLogin"> |
| | | <template #avatar> |
| | | <div class="mine-avatar-wrapper" @click="goLogin"> |
| | | <UserAvatar :size="52" class="mine-avatar" /> |
| | | <div class="user-info" v-if="isLogin"> |
| | | <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 class="user-info-item">{{ displayName }}</div> |
| | | </div> |
| | | <div class="mine-go-login" v-else>去登录</div> |
| | | </div> |
| | |
| | | </UserHomeTopView> |
| | | </ContentView> |
| | | <ContentScrollView v-if="isLogin" class="mine-content-scroll-view"> |
| | | <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 class="mine-order-list-title-text">我的预约</div> |
| | | <div class="mine-order-list-title-arrow-wrapper" @click="goMineReserveService"> |
| | | <div class="mine-order-list-title-sub-text">全部预约</div> |
| | | <img :src="IconArrow" class="mine-order-list-title-icon" /> |
| | | </div> |
| | | </div> |
| | | <div class="mine-order-list-content"> |
| | | <nut-badge |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :dot="userDetail?.taskCount > 0" |
| | | @click="goMineSign" |
| | | :dot="false" |
| | | @click="goMineReserveService" |
| | | > |
| | | <img :src="IconOrderSign" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">已报名</div> |
| | | <div class="mine-order-list-text">待确认</div> |
| | | </nut-badge> |
| | | <nut-badge |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :dot="userDetail?.hirePassTaskCount > 0" |
| | | @click="goMineHired" |
| | | :dot="false" |
| | | @click="goMineReserveService" |
| | | > |
| | | <img :src="IconOrderHire" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">已录用</div> |
| | | <div class="mine-order-list-text">待服务</div> |
| | | </nut-badge> |
| | | <nut-badge |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :dot="userDetail?.arrangeCompleteTaskCount > 0" |
| | | @click="goMineHire" |
| | | :dot="false" |
| | | @click="goMineReserveService" |
| | | > |
| | | <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?.hirePassTaskCount ?? 0" |
| | | @click="goMineHire" |
| | | > |
| | | <img :src="IconOrderHire" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">已安排</div> |
| | | <div class="mine-order-list-text">已完成</div> |
| | | </nut-badge> |
| | | <nut-badge |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :value="userDetail?.hireRefuseTaskCount ?? 0" |
| | | @click="goMineCancel" |
| | | :dot="false" |
| | | @click="goMineReserveService" |
| | | > |
| | | <img :src="IconOrderCancel" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">已取消</div> |
| | | </nut-badge> --> |
| | | </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="IconAgreement" title="订单管理" @click="goMineOrderManage"></ListItem> |
| | | <ListItem :icon="IconCollect" title="收藏夹" @click="goMineCollectTask"></ListItem> |
| | | <ListItem |
| | | :icon="IconRecruit" |
| | | v-if="!userDetail.enterpriseIsReal" |
| | | title="升级企业版" |
| | | @click="goCompanyInfo" |
| | | ></ListItem> |
| | | <ListItem :icon="IconSetting" title="设置" @click="goSetting"></ListItem> |
| | | <!-- <ListItem :icon="IconRecruit" title="我要招人/用人" @click="goSetting"></ListItem> --> |
| | | </List> |
| | | </ContentScrollView> |
| | | <CustomerServiceButton /> |
| | | <!-- <CustomerServiceButton /> --> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | | |
| | |
| | | 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, CustomerServiceButton } 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, updateUserInfo } = useUser(); |
| | | const { userDetail, updateUserInfo, displayName } = 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 goAuthentication() { |
| | | goPage(RouterPath.authenticationHome); |
| | | function goCompanyInfo() { |
| | | goPage(RouterPath.companyInfo); |
| | | } |
| | | function goMineSign() { |
| | | goPage(RouterPath.mineSign); |
| | | } |
| | | function goMineHire() { |
| | | goPage(RouterPath.mineHire); |
| | | } |
| | | function goMineCancel() { |
| | | goPage(RouterPath.mineCancel); |
| | | } |
| | | function goMineHired() { |
| | | goPage(RouterPath.mineHired); |
| | | } |
| | | |
| | | function goMineCollectTask() { |
| | | goPage(RouterPath.mineCollectTask); |
| | | } |
| | | function goMineAgreementSign() { |
| | | goPage(RouterPath.mineAgreementSign); |
| | | |
| | | function goMineReserveService() { |
| | | goPage(RouterPath.mineReserveService); |
| | | } |
| | | |
| | | function goMineWallet() { |
| | | goPage(RouterPath.mineWallet); |
| | | function goMineOrderManage() { |
| | | goPage(RouterPath.mineOrderManage); |
| | | } |
| | | </script> |
| | | |