<template>
|
<ContentView style="background-color: transparent" class="job-detail-content">
|
<FlexJobTopView
|
:avatar="avatar"
|
:name="name"
|
:age="age"
|
:isReal="isReal"
|
:gender="gender"
|
:personalIdentityContent="personalIdentityContent"
|
:educationalBackgroundContent="educationalBackgroundContent"
|
:taskCount="taskCount"
|
size="small"
|
class="job-detail-content-top"
|
/>
|
<div class="job-detail-content-contact-info">
|
<div class="job-detail-content-contact-info-item">
|
<div class="job-detail-content-contact-info-item-label">手机号:</div>
|
<div class="job-detail-content-contact-info-item-text">
|
{{ isCollapse ? contactPhoneNumber : '立即联系后可查看' }}
|
</div>
|
</div>
|
<div class="job-detail-content-contact-info-item">
|
<div class="job-detail-content-contact-info-item-label">身份证号:</div>
|
<div class="job-detail-content-contact-info-item-text">
|
{{ isCollapse ? hiddenIDNumberForEnd6(identity) : '立即联系后可查看' }}
|
</div>
|
</div>
|
</div>
|
</ContentView>
|
<ProTabs
|
v-model="tab"
|
name="job-detail-content-tab"
|
:showSmile="false"
|
class="job-detail-content-tabs"
|
isTransparent
|
title-gutter="8"
|
fullHeight
|
>
|
<ProTabPane :title="`简历`" pane-key="1">
|
<curriculumView
|
:userExpectJobs="userExpectJobs"
|
:freeTime="freeTime"
|
:jobSeekingStatus="jobSeekingStatus"
|
:userCredentials="userCredentials"
|
:workSeniority="workSeniority"
|
:workExperience="workExperience"
|
:photos="photos"
|
:height="height"
|
:weight="weight"
|
/>
|
</ProTabPane>
|
<ProTabPane :title="`经历`" pane-key="2">
|
<experienceView />
|
</ProTabPane>
|
</ProTabs>
|
<PageFooter>
|
<slot name="footer"></slot>
|
</PageFooter>
|
</template>
|
|
<script setup lang="ts">
|
import { FlexJobTopView, ProTabs, ProTabPane } from '@12333/components';
|
import { hiddenIDNumberForEnd6 } from '@12333/utils';
|
import curriculumView from './components/curriculumView.vue';
|
import experienceView from './components/experienceView.vue';
|
import { EnumUserGender } from '@12333/constants';
|
|
defineOptions({
|
name: 'JobDetailContent',
|
});
|
|
type Props = {
|
isCollapse: boolean;
|
|
avatar?: string;
|
name?: string;
|
gender?: EnumUserGender;
|
age?: number;
|
isReal?: boolean;
|
personalIdentityContent?: string;
|
educationalBackgroundContent?: string;
|
taskCount?: number;
|
contactPhoneNumber?: string;
|
identity?: string;
|
|
userExpectJobs?: API.GetUserResumeQueryResultExpectJob[];
|
freeTime?: API.EnumPersonalFreeTime;
|
jobSeekingStatus?: API.EnumPersonalJobSeekingStatus;
|
userCredentials?: API.GetUserResumeQueryResultCredential[];
|
workSeniority?: string;
|
workExperience?: string;
|
photos?: string[];
|
/** 身高 */
|
height?: number;
|
/** 体重 */
|
weight?: number;
|
|
taskInfoUsers?: API.GetUserResumeQueryResultExperience[];
|
};
|
|
const tab = ref('1');
|
const props = withDefaults(defineProps<Props>(), {});
|
</script>
|
|
<style lang="scss">
|
@import '@/styles/common.scss';
|
|
.job-detail-content-top {
|
margin-bottom: 20px;
|
}
|
|
.job-detail-content-contact-info {
|
padding-left: 130px;
|
margin-bottom: 78px;
|
|
.job-detail-content-contact-info-item {
|
display: flex;
|
align-items: center;
|
font-weight: 400;
|
font-size: 24px;
|
line-height: 28px;
|
margin-bottom: 22px;
|
|
&:last-child {
|
margin-bottom: 0;
|
}
|
|
.job-detail-content-contact-info-item-label {
|
color: boleGetCssVar('text-color', 'secondary');
|
margin-right: 8px;
|
}
|
|
.job-detail-content-contact-info-item-text {
|
color: boleGetCssVar('text-color', 'primary');
|
flex: 1;
|
min-width: 0;
|
@include ellipsis;
|
}
|
}
|
}
|
</style>
|