<template>
|
<PageLayoutWithBg class="mine-page-wrapper" title="我的" :need-auth="false">
|
<template #navigationBar>
|
<TransparentNavigationBar
|
title="个人中心"
|
:is-absolute="false"
|
mode="dark"
|
></TransparentNavigationBar>
|
</template>
|
<template #bg>
|
<img :src="OssAssets.mine.Bg" class="mine-page-bg" :style="{ height: `${bgHeight}px` }" />
|
</template>
|
<ContentView>
|
<UserHomeTopView :showUserHomePageBtn="isLogin" :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?.userName ?? '' }}</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>
|
</template>
|
</UserHomeTopView>
|
</ContentView>
|
<ContentScrollView v-if="isLogin" class="mine-content-scroll-view">
|
<!-- <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>
|
</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="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>
|
</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>
|
</PageLayoutWithBg>
|
</template>
|
|
<script setup lang="ts">
|
import { TransparentNavigationBar, ContentScrollView, UserHomeTopView } from '@/components';
|
import IconArrow from '@/assets/setting/icon-arrow.png';
|
import IconSetting from '@/assets/mine/icon-setting.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 { 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 } = useUser();
|
const isLogin = useIsLogin();
|
const systemStore = useSystemStore();
|
|
const { goLoginFn } = useGoLogin();
|
const bgHeight = computed(() => 133 + systemStore.navHeight);
|
|
function goLogin() {
|
if (!isLogin.value) {
|
goLoginFn();
|
}
|
}
|
|
function goPage(routeName: string) {
|
Taro.navigateTo({
|
url: routeName,
|
});
|
}
|
|
function goSetting() {
|
goPage(RouterPath.setting);
|
}
|
|
Taro.showShareMenu({
|
showShareItems: ['shareAppMessage'],
|
});
|
|
Taro.useShareAppMessage((res) => {
|
return {
|
// title: `${userDetail.value?.contacter}名片`,
|
// path: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`,
|
// 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);
|
}
|
</script>
|
|
<style lang="scss">
|
@import '@/styles/common.scss';
|
@import './index.scss';
|
|
.mine-setting-badge {
|
margin-right: 20px;
|
}
|
|
.mine-setting-list {
|
.pro-list-item-icon {
|
width: 48px;
|
height: 48px;
|
}
|
}
|
</style>
|