| | |
| | | <template> |
| | | <ContentView> |
| | | <nut-noticebar |
| | | :text="`个人简历已完善${detail?.completeRate ?? 0},完善简历可提升录用率`" |
| | | :text="`个人简历已完善${userResumeInfo?.completeRate ?? 0},完善简历可提升录用率`" |
| | | :left-icon="false" |
| | | background="transparent" |
| | | close-mode |
| | |
| | | <Avatar |
| | | :size="60" |
| | | class="mine-curriculum-avatar" |
| | | :src="setOSSLink(detail?.avatar ?? '')" |
| | | :src="setOSSLink(userResumeInfo?.avatar ?? '')" |
| | | ></Avatar> |
| | | <div class="mine-curriculum-info-content"> |
| | | <div class="mine-curriculum-info-item"> |
| | | <div class="mine-curriculum-info-item-left"> |
| | | <div class="mine-curriculum-info-item-name"> |
| | | {{ detail?.name ?? '' }} |
| | | {{ userResumeInfo?.name ?? '' }} |
| | | </div> |
| | | <div class="mine-curriculum-info-item-gender"> |
| | | <div class="mine-curriculum-info-item-gender-dot">·</div> |
| | | <img |
| | | v-if="detail?.gender === EnumUserGender.Male" |
| | | v-if="userResumeInfo?.gender === EnumUserGender.Male" |
| | | :src="IconMale" |
| | | class="mine-curriculum-info-item-gender-icon" |
| | | /> |
| | |
| | | <div class="mine-curriculum-info-item-left"> |
| | | <img :src="IconPhone" class="mine-curriculum-info-item-phone-icon" /> |
| | | <div class="mine-curriculum-info-item-phone"> |
| | | {{ detail?.contactPhoneNumber ?? '' }} |
| | | {{ userResumeInfo?.contactPhoneNumber ?? '' }} |
| | | </div> |
| | | </div> |
| | | <div class="mine-curriculum-info-item-detail"> |
| | | {{ |
| | | `${detail?.age ? `${detail?.age}岁` : ''} |
| | | ${detail?.personalIdentityContent ? `| ${detail?.personalIdentityContent}` : ''} |
| | | `${userResumeInfo?.age ? `${userResumeInfo?.age}岁` : ''} |
| | | ${ |
| | | detail?.educationalBackgroundContent |
| | | ? `| ${detail?.educationalBackgroundContent}` |
| | | userResumeInfo?.personalIdentityContent |
| | | ? `| ${userResumeInfo?.personalIdentityContent}` |
| | | : '' |
| | | } |
| | | ${ |
| | | userResumeInfo?.educationalBackgroundContent |
| | | ? `| ${userResumeInfo?.educationalBackgroundContent}` |
| | | : '' |
| | | }` |
| | | }} |
| | |
| | | <MineAgreementSignDetailItem label="空闲时间"> |
| | | <template #detail> |
| | | <div class="mine-curriculum-intention-bold"> |
| | | {{ EnumPersonalFreeTimeText[detail?.freeTime] }} |
| | | {{ EnumPersonalFreeTimeText[userResumeInfo?.freeTime] }} |
| | | </div> |
| | | </template> |
| | | </MineAgreementSignDetailItem> |
| | | <MineAgreementSignDetailItem label="求职状态"> |
| | | <template #detail> |
| | | <div class="mine-curriculum-intention-bold"> |
| | | {{ EnumPersonalJobSeekingStatusText[detail?.jobSeekingStatus] }} |
| | | {{ EnumPersonalJobSeekingStatusText[userResumeInfo?.jobSeekingStatus] }} |
| | | </div> |
| | | </template> |
| | | </MineAgreementSignDetailItem> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import MineAgreementSignDetailItem from '../../mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue'; |
| | | import { List, ListItem, JobTagList, Avatar } from '@12333/components'; |
| | | import { |
| | |
| | | EnumPersonalJobSeekingStatusText, |
| | | } from '@12333/constants'; |
| | | import { RouterPath } from '@/constants'; |
| | | import * as userResumeServices from '@12333/services/apiV2/userResume'; |
| | | import IconArrow from '@/assets/setting/icon-arrow.png'; |
| | | import IconAuth from '@/assets/mine/icon-auth.png'; |
| | | import IconMale from '@/assets/mine/icon-male.png'; |
| | | import IconFemale from '@/assets/mine/icon-female.png'; |
| | | import IconPhone from '@/assets/mine/icon-phone.png'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import { setOSSLink } from '@12333/utils'; |
| | | import { useEvent } from 'senin-mini/hooks'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const { userId } = useUser(); |
| | | |
| | | useEvent('updateResume', function (data: { content: boolean }) { |
| | | if (data.content) { |
| | |
| | | } |
| | | }); |
| | | |
| | | const jobTag = computed(() => detail?.value?.userExpectJobs?.map((x) => x.expectJobContent) ?? []); |
| | | |
| | | const { |
| | | isLoading, |
| | | isError, |
| | | data: detail, |
| | | refetch, |
| | | } = useQuery({ |
| | | queryKey: ['userResumeServices/getUserResume', userId], |
| | | queryFn: async () => { |
| | | return await userResumeServices.getUserResume( |
| | | { userId: userId.value }, |
| | | { |
| | | showLoading: false, |
| | | } |
| | | const jobTag = computed( |
| | | () => userResumeInfo?.value?.userExpectJobs?.map((x) => x.expectJobContent) ?? [] |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.GetUserResumeQueryResult), |
| | | enabled: computed(() => !!userId.value), |
| | | }); |
| | | |
| | | const { userResumeInfo, refetch } = useUserResume(); |
| | | |
| | | function goPage(routeName: string) { |
| | | Taro.navigateTo({ |