<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> 
 | 
  <div style="flex: 1; min-height: 0"> 
 | 
    <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 :taskInfoUsers="taskInfoUsers" /> 
 | 
      </ProTabPane> 
 | 
    </ProTabs> 
 | 
  </div> 
 | 
  
 | 
  <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> 
 |