<template>
|
<ContentView>
|
<nut-noticebar
|
text="个人简历已完善50%,完善简历可提升录用率"
|
:left-icon="false"
|
background="transparent"
|
close-mode
|
class="mine-curriculum-noticebar"
|
/>
|
<div class="mine-curriculum-info-wrapper">
|
<Avatar
|
:size="60"
|
class="mine-curriculum-avatar"
|
:src="setOSSLink(detail?.resumeBaseInfo?.avatarUrl ?? '')"
|
></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?.resumeBaseInfo?.name ?? '' }}
|
</div>
|
<div class="mine-curriculum-info-item-gender">
|
<div class="mine-curriculum-info-item-gender-dot">·</div>
|
<img
|
v-if="detail?.resumeBaseInfo?.genderType === Gender.Male"
|
:src="IconMale"
|
class="mine-curriculum-info-item-gender-icon"
|
/>
|
<img v-else :src="IconFemale" class="mine-curriculum-info-item-gender-icon" />
|
</div>
|
</div>
|
<IconFont name="rect-right" size="16" color="#6D6E6E" @click="goEditMineInfo"></IconFont>
|
</div>
|
<div class="mine-curriculum-info-item">
|
<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?.resumeBaseInfo?.phoneNumber ?? '' }}
|
</div>
|
</div>
|
<div class="mine-curriculum-info-item-detail">
|
{{
|
`${detail?.resumeBaseInfo?.age}岁 | ${detail?.resumeBaseInfo?.socialIdentityName} | ${detail?.resumeBaseInfo?.educationalLevelName}`
|
}}
|
</div>
|
</div>
|
</div>
|
</div>
|
<List class="mine-curriculum-intention">
|
<div class="mine-curriculum-intention-content">
|
<div class="mine-curriculum-intention-title">
|
<div class="mine-curriculum-intention-title-text">求职意向</div>
|
<div class="mine-curriculum-intention-title-edit" @click="goMineJobIntention">
|
编辑
|
<img :src="IconArrow" class="mine-curriculum-intention-title-edit-icon" />
|
</div>
|
</div>
|
<MineAgreementSignDetailItem label="期望岗位" class="mine-curriculum-intention-job">
|
<template #detail>
|
<JobTagList :jobTagList="jobTag" />
|
</template>
|
</MineAgreementSignDetailItem>
|
<MineAgreementSignDetailItem label="空闲时间">
|
<template #detail>
|
<div class="mine-curriculum-intention-bold">
|
{{ UserResumeFreeTimeEnumText[detail?.resumeExpectationJob?.freeTime] }}
|
</div>
|
</template>
|
</MineAgreementSignDetailItem>
|
<MineAgreementSignDetailItem label="求职状态">
|
<template #detail>
|
<div class="mine-curriculum-intention-bold">
|
{{
|
UserResumeJobSeekingStatusEnumText[detail?.resumeExpectationJob?.jobSeekingStatus]
|
}}
|
</div>
|
</template>
|
</MineAgreementSignDetailItem>
|
</div>
|
|
<ListItem title="资格证书" @click="goMineCertificate">
|
<template #extra>
|
<div class="mine-curriculum-intention-enit-btn">编辑</div>
|
</template>
|
</ListItem>
|
<ListItem title="工作经验" @click="goMineWorkExperience">
|
<template #extra>
|
<div class="mine-curriculum-intention-enit-btn">编辑</div>
|
</template>
|
</ListItem>
|
<ListItem
|
title="详细信息"
|
class="mine-curriculum-intention-detail"
|
@click="goMineDetailedInfo"
|
>
|
<template #extra>
|
<div class="mine-curriculum-intention-enit-btn">编辑</div>
|
</template>
|
</ListItem>
|
</List>
|
</ContentView>
|
</template>
|
|
<script setup lang="ts">
|
import { useUserStore } from '@/stores/modules/user';
|
import { useIsLogin } from '@/hooks';
|
import MineAgreementSignDetailItem from '../../mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue';
|
import { List, ListItem, JobTagList, Avatar } from '@12333/components';
|
import {
|
Gender,
|
UserResumeFreeTimeEnumText,
|
UserResumeJobSeekingStatusEnumText,
|
} from '@12333/constants';
|
import { RouterPath } from '@/constants';
|
import * as userResumeServices from '@12333/services/api/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, useEventChannel } from 'senin-mini/hooks';
|
|
defineOptions({
|
name: 'InnerPage',
|
});
|
|
const userStore = useUserStore();
|
const isLogin = useIsLogin();
|
const router = Taro.useRouter();
|
|
const taskId = router.params?.taskId;
|
|
const eventChannel = useEventChannel();
|
|
useEvent('updateResume', function (data: { content: boolean }) {
|
if (data.content) {
|
refetch({
|
type: 'inactive',
|
});
|
}
|
});
|
|
const jobTag = computed(
|
() => detail?.value?.resumeExpectationJob?.jobIdList?.map((x) => x.name) ?? []
|
);
|
|
const {
|
isLoading,
|
isError,
|
data: detail,
|
refetch,
|
} = useQuery({
|
queryKey: ['userResumeServices/getUserResume', taskId],
|
queryFn: async () => {
|
return await userResumeServices.getUserResume({
|
showLoading: false,
|
});
|
},
|
placeholderData: () => ({} as API.MyResumeOutput),
|
onSuccess(data) {},
|
});
|
|
function goPage(routeName: string) {
|
Taro.navigateTo({
|
url: routeName,
|
});
|
}
|
function goEditMineInfo() {
|
goPage(RouterPath.editMineInfo);
|
}
|
function goMineJobIntention() {
|
goPage(RouterPath.mineJobIntention);
|
}
|
function goMineDetailedInfo() {
|
goPage(RouterPath.mineDetailedInfo);
|
}
|
function goMineWorkExperience() {
|
goPage(RouterPath.mineWorkExperience);
|
}
|
function goMineCertificate() {
|
goPage(RouterPath.mineCertificate);
|
}
|
</script>
|
|
<style lang="scss">
|
@import '@/styles/common.scss';
|
|
.mineCurriculumVitae-page-wrapper {
|
.mine-curriculum-noticebar {
|
.nut-noticebar__page {
|
padding: 0;
|
}
|
}
|
|
.mine-curriculum-info-wrapper {
|
padding: 24px 0 60px;
|
display: flex;
|
|
.mine-curriculum-avatar {
|
margin-right: 24px;
|
}
|
|
.mine-curriculum-info-content {
|
display: flex;
|
flex-direction: column;
|
padding: 12px 0;
|
justify-content: space-between;
|
flex: 1;
|
min-width: 0;
|
|
.mine-curriculum-info-item {
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
|
.mine-curriculum-info-item-left {
|
display: inline-flex;
|
align-items: center;
|
|
.mine-curriculum-info-item-name {
|
font-size: 32px;
|
line-height: 40px;
|
font-weight: 600;
|
color: boleGetCssVar('text-color', 'primary');
|
}
|
|
.mine-curriculum-info-item-gender {
|
display: inline-flex;
|
align-items: center;
|
|
.mine-curriculum-info-item-gender-dot {
|
margin: 0 8px;
|
line-height: 40px;
|
}
|
|
.mine-curriculum-info-item-gender-icon {
|
width: 28px;
|
height: 28px;
|
}
|
}
|
|
.mine-curriculum-info-item-phone {
|
font-size: 28px;
|
line-height: 40px;
|
font-weight: 400;
|
color: boleGetCssVar('text-color', 'primary');
|
}
|
|
.mine-curriculum-info-item-phone-icon {
|
width: 40px;
|
height: 40px;
|
}
|
}
|
|
.mine-curriculum-info-item-detail {
|
font-size: 24px;
|
line-height: 40px;
|
color: boleGetCssVar('text-color', 'primary');
|
}
|
}
|
}
|
}
|
|
.mine-curriculum-intention {
|
padding: 30px 0;
|
border-radius: 12px;
|
|
.mine-curriculum-intention-content {
|
padding: 0 boleGetCssVar('size', 'body-padding-h') 40px;
|
border-bottom: 1px solid #f6f6f6;
|
|
.mine-curriculum-intention-title {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
margin-bottom: 40px;
|
|
.mine-curriculum-intention-title-text {
|
font-size: 32px;
|
font-weight: 600;
|
color: boleGetCssVar('text-color', 'primary');
|
}
|
|
.mine-curriculum-intention-title-edit {
|
display: inline-flex;
|
align-items: center;
|
font-size: 22px;
|
color: boleGetCssVar('text-color', 'regular');
|
|
.mine-curriculum-intention-title-edit-icon {
|
width: 32px;
|
height: 32px;
|
}
|
}
|
}
|
|
.mine-curriculum-intention-job {
|
align-items: flex-start;
|
|
.mine-curriculum-intention-job-content {
|
display: inline-flex;
|
flex-wrap: wrap;
|
|
.mine-curriculum-intention-job-item {
|
font-size: 20px;
|
color: boleGetCssVar('color', 'primary');
|
padding: 6px 16px;
|
background-color: #edf2ff;
|
border-radius: 4px;
|
display: inline-flex;
|
align-items: center;
|
justify-content: center;
|
margin-right: 16px;
|
margin-bottom: 14px;
|
}
|
}
|
}
|
|
.mine-curriculum-intention-bold {
|
font-weight: 600;
|
font-size: 28px;
|
color: boleGetCssVar('text-color', 'primary');
|
}
|
}
|
|
.mine-curriculum-intention-enit-btn {
|
font-size: 22px;
|
color: boleGetCssVar('text-color', 'regular');
|
}
|
|
.mine-curriculum-intention-detail {
|
.pro-list-item-inner {
|
border-bottom: none;
|
}
|
}
|
}
|
}
|
</style>
|