<template> 
 | 
  <PageLayoutWithBg class="mine-page-wrapper" :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> 
 | 
        <template #avatar> 
 | 
          <div class="mine-avatar-wrapper" @click="goLogin"> 
 | 
            <UserAvatar :size="60" class="mine-avatar" /> 
 | 
            <div class="user-info" v-if="isLogin"> 
 | 
              <div class="user-info-item"> 
 | 
                <div class="user-info-item-name">{{ userDetail?.name ?? '' }}</div> 
 | 
              </div> 
 | 
              <div class="user-info-item"> 
 | 
                <template v-if="isCertified"> 
 | 
                  <div class="user-info-certified-text"> 
 | 
                    {{ userDetail?.enterpriseName ?? '' }} 
 | 
                  </div> 
 | 
                  <div class="user-info-certified-btn">已认证</div> 
 | 
                </template> 
 | 
                <!-- <template v-else> 
 | 
                  <div class="user-info-unCertified-text">未认证</div> 
 | 
                  <div class="user-info-unCertified-btn" @click.stop="goAuthentication"> 
 | 
                    立即认证 
 | 
                  </div> 
 | 
                </template> --> 
 | 
              </div> 
 | 
            </div> 
 | 
            <div class="mine-go-login" v-else>去登录</div> 
 | 
          </div> 
 | 
        </template> 
 | 
        <div class="mine-business-card" v-if="isLogin"> 
 | 
          <div class="mine-business-card-item" @click="goBusinessCard"> 
 | 
            <img class="mine-business-card-item-icon" :src="IconBusinessCard" alt="" /> 
 | 
            <div class="mine-business-card-item-text">我的电子名片</div> 
 | 
          </div> 
 | 
          <div class="mine-business-card-btn"> 
 | 
            <nut-button type="info" @click="goBusinessCard">递名片</nut-button> 
 | 
          </div> 
 | 
        </div> 
 | 
      </UserHomeTopView> 
 | 
      <template v-if="isLogin"> 
 | 
        <div class="mine-content-record"> 
 | 
          <div class="mine-content-record-item" @click="goMineFavorites"> 
 | 
            <img class="mine-content-record-item-icon" :src="IconCollect" alt="" /> 
 | 
            <nut-badge top="0" right="0" :value="8" color="#FF7D00" hidden> 
 | 
              <div class="mine-content-record-item-text">我的收藏</div> 
 | 
            </nut-badge> 
 | 
          </div> 
 | 
          <div class="mine-content-record-item" @click="goMineContactRecord"> 
 | 
            <img class="mine-content-record-item-icon" :src="IconRecord" alt="" /> 
 | 
            <nut-badge top="0" right="0" :value="8" color="#FF7D00" hidden> 
 | 
              <div class="mine-content-record-item-text">联系记录</div> 
 | 
            </nut-badge> 
 | 
          </div> 
 | 
        </div> 
 | 
        <Cell :title="'更多服务'" class="mine-content-service"> 
 | 
          <div class="mine-content-service-list"> 
 | 
            <TaskDetailWelfareItem 
 | 
              :icon="IconFinance" 
 | 
              text="财务管理" 
 | 
              @click="goFinance" 
 | 
            ></TaskDetailWelfareItem> 
 | 
            <!-- <TaskDetailWelfareItem 
 | 
              :icon="IconRealName" 
 | 
              text="企业实名" 
 | 
              @click.stop="goAuthentication" 
 | 
            ></TaskDetailWelfareItem> --> 
 | 
            <TaskDetailWelfareItem 
 | 
              :icon="IconSetting" 
 | 
              text="设置" 
 | 
              @click="goSetting" 
 | 
            ></TaskDetailWelfareItem> 
 | 
          </div> 
 | 
        </Cell> 
 | 
        <nut-button type="info" class="mine-content-logout" @click="handleLoginout" 
 | 
          >退出登录</nut-button 
 | 
        > 
 | 
      </template> 
 | 
    </ContentView> 
 | 
  </PageLayoutWithBg> 
 | 
</template> 
 | 
  
 | 
<script setup lang="ts"> 
 | 
import { PageLayoutWithBg, TransparentNavigationBar, UserHomeTopView } from '@/components'; 
 | 
import IconBusinessCard from '@/assets/mine/icon-business-card.png'; 
 | 
import IconCollect from '@/assets/mine/icon-collect.png'; 
 | 
import IconRecord from '@/assets/mine/icon-record.png'; 
 | 
import IconMale from '@/assets/mine/icon-male.png'; 
 | 
import IconFemale from '@/assets/mine/icon-female.png'; 
 | 
import IconFinance from '@/assets/mine/icon-finance.png'; 
 | 
import IconRealName from '@/assets/mine/icon-realname.png'; 
 | 
import IconSetting from '@/assets/mine/icon-setting.png'; 
 | 
import { useUser, useIsLogin, useGoLogin } from '@/hooks'; 
 | 
import Taro from '@tarojs/taro'; 
 | 
import { RouterPath, OssAssets } from '@/constants'; 
 | 
import { useSystemStore } from '@/stores/modules/system'; 
 | 
import { Message } from '@12333/utils'; 
 | 
import { useUserStore } from '@/stores/modules/user'; 
 | 
import { useQueryClient } from '@tanstack/vue-query'; 
 | 
import { TaskDetailWelfareItem } from '@12333/components'; 
 | 
import { EnumUserGender } from '@12333/constants'; 
 | 
  
 | 
const userStore = useUserStore(); 
 | 
const queryClient = useQueryClient(); 
 | 
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?.name}名片`, 
 | 
    // path: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`, 
 | 
    imageUrl: userDetail.value?.avatar, 
 | 
  }; 
 | 
}); 
 | 
  
 | 
function goAuthentication() { 
 | 
  goPage(RouterPath.authenticationHome); 
 | 
} 
 | 
function goMineFavorites() { 
 | 
  goPage(RouterPath.mineFavorites); 
 | 
} 
 | 
function goMineContactRecord() { 
 | 
  goPage(RouterPath.mineContactRecord); 
 | 
} 
 | 
  
 | 
function goBusinessCard() { 
 | 
  goPage(RouterPath.businessCard); 
 | 
} 
 | 
  
 | 
function goFinance() { 
 | 
  goPage(RouterPath.mineFinanceManage); 
 | 
} 
 | 
  
 | 
async function handleLoginout() { 
 | 
  try { 
 | 
    await Message.confirm({ 
 | 
      message: '确定要退出登录吗?', 
 | 
    }); 
 | 
    userStore.logoutAndToHome(); 
 | 
    queryClient.removeQueries({ 
 | 
      predicate: (query) => !query.queryKey.includes('userResumeServices/getOpenUserResumes'), 
 | 
    }); 
 | 
  } catch (error) {} 
 | 
} 
 | 
</script> 
 | 
  
 | 
<style lang="scss"> 
 | 
@import '@/styles/common.scss'; 
 | 
@import './index.scss'; 
 | 
  
 | 
.mine-setting-badge { 
 | 
  margin-right: 20px; 
 | 
} 
 | 
</style> 
 |