|
|
@@ -13,10 +13,11 @@ import './index.module.less' |
|
|
|
|
|
|
|
import { GetJobseekerDetail, GetJobapplicantContactdetail } from '@/services/apis/resume' |
|
|
|
|
|
|
|
|
|
|
|
import CommonInvite from '@/components/Common/Invite' |
|
|
|
const ManageJobseekerResumeDetail: React.FC = () => { |
|
|
|
const [searchParams] = useSearchParams(); |
|
|
|
const [detail, setDetail] = useState({}) |
|
|
|
const [openPreview, setOpenPreview] = useState(false); |
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
@@ -26,6 +27,10 @@ const ManageJobseekerResumeDetail: React.FC = () => { |
|
|
|
}) |
|
|
|
}, []); |
|
|
|
|
|
|
|
const closeModel = (value: boolean) => { |
|
|
|
setOpenPreview(value) |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
<> |
|
|
@@ -40,340 +45,370 @@ const ManageJobseekerResumeDetail: React.FC = () => { |
|
|
|
}} |
|
|
|
> |
|
|
|
{ |
|
|
|
detail && <> |
|
|
|
<div style={{ minHeight: 1000 }}> |
|
|
|
<Space direction='vertical' size={30} style={{ width: '100%' }}> |
|
|
|
<div id="export-container"> |
|
|
|
<div > |
|
|
|
<h1 style={{ textAlign: 'center' }}>个人简历</h1> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >基本资料</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<tbody> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>姓 名</td> |
|
|
|
<td>{detail.seekername}</td> |
|
|
|
<td>性 别</td> |
|
|
|
<td>{detail.gender}</td> |
|
|
|
<td rowSpan={6} style={{ textAlign: 'center', verticalAlign: 'middle' }}> |
|
|
|
<img src={`${Imageprefix}${detail.photo}`} alt="" width="90" height="150" /> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>出生日期</td> |
|
|
|
<td>{detail.dob}</td> |
|
|
|
<td>职 称</td> |
|
|
|
<td>{detail.title_txt}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>现居住地</td> |
|
|
|
<td>{detail.now_level1_txt ? detail.now_level1_txt : ''}{detail.now_level2_txt ? detail.now_level2_txt : ''}{detail.now_level3_txt ? detail.now_level3_txt : ''}{detail.now_level4_txt ? detail.now_level4_txt : ''} |
|
|
|
</td> |
|
|
|
<td>户口所在地</td> |
|
|
|
<td>{detail.now_level1_txt ? detail.now_level1_txt : ''}{detail.now_level2_txt ? detail.now_level2_txt : ''}{detail.now_level3_txt ? detail.now_level3_txt : ''}{detail.now_level4_txt ? detail.now_level4_txt : ''} |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>学 历</td> |
|
|
|
<td>{detail.education_txt}</td> |
|
|
|
<td>婚姻状况</td> |
|
|
|
<td>{detail.marital_status_txt}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>民 族</td> |
|
|
|
<td>{detail.ethnicity_txt}</td> |
|
|
|
<td>政治面貌</td> |
|
|
|
<td>{detail.political_status_txt}</td> |
|
|
|
|
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>体 重</td> |
|
|
|
<td>{detail.weight}kg</td> |
|
|
|
<td>身 高</td> |
|
|
|
<td>{detail.height}cm</td> |
|
|
|
</tr> |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 个人简介 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >个人简介</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<tbody> |
|
|
|
<tr > |
|
|
|
<td style={{ width: '20%' }}>个人简介</td> |
|
|
|
<td style={{ width: '80%' }}> |
|
|
|
{<div dangerouslySetInnerHTML={{ __html: detail.introduction }} />} |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 求职期望 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >求职期望</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<tbody> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>求职类型</td> |
|
|
|
<td style={{ width: '30%' }}>{detail.job_type_txt}</td> |
|
|
|
<td style={{ width: '20%' }}>可到职日期</td> |
|
|
|
<td style={{ width: '30%' }}>{detail.available_date_txt}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>人才类型</td> |
|
|
|
<td style={{ width: '30%' }}>{detail.talent_type_txt}</td> |
|
|
|
<td style={{ width: '20%' }}>工作经验</td> |
|
|
|
<td style={{ width: '30%' }}>{detail.work_experience}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>月薪要求</td> |
|
|
|
<td colspan={3} style={{ width: '80%' }}>{detail.salary_range_txt}</td> |
|
|
|
</tr> |
|
|
|
{ |
|
|
|
detail.desire_areas && detail.desire_areas.map((item, index) => ( |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>期望工作地区{index + 1}</td> |
|
|
|
<td colspan={3} style={{ width: '80%' }}> |
|
|
|
{item.level1_txt ? item.level1_txt : ''} |
|
|
|
{item.level2_txt ? item.level2_txt : ''} |
|
|
|
{item.level3_txt ? item.level3_txt : ''} |
|
|
|
{item.level4_txt ? item.level4_txt : ''} |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
{ |
|
|
|
detail.desire_industrys && detail.desire_industrys.map((item, index) => ( |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>期望从事行业{index + 1}</td> |
|
|
|
<td colspan={3} style={{ width: '80%' }}> |
|
|
|
{item.industry_txt ? item.industry_txt : ''} |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
{ |
|
|
|
detail.desire_positions && detail.desire_positions.map((item, index) => ( |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>期望从事职位{index + 1}</td> |
|
|
|
<td colspan={3} style={{ width: '80%' }}> |
|
|
|
{item.level1_txt ? item.level1_txt : ''} |
|
|
|
{item.level2_txt ? item.level2_txt : ''} |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 教育培训 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >教育培训</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<thead> |
|
|
|
<th style={{ height: '30px', width: '20%' }}>起止时间</th> |
|
|
|
<th style={{ height: '30px', width: '20%' }}>学校/培训机构</th> |
|
|
|
<th style={{ height: '30px', width: '20%' }}>专业</th> |
|
|
|
<th style={{ height: '30px', width: '20%' }}>曾担任的职务</th> |
|
|
|
<th style={{ height: '30px', width: '20%' }}>获得证书奖项</th> |
|
|
|
</thead> |
|
|
|
<tbody> |
|
|
|
{ |
|
|
|
detail.trainings && detail.trainings.map((item, index) => ( |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}> |
|
|
|
{item.start_year}.{item.start_month}至{item.end_year}.{item.end_month} |
|
|
|
</td> |
|
|
|
<td style={{ width: '20%' }}>{item.school_or_institution}</td> |
|
|
|
<td style={{ width: '20%' }}>{item.major}</td> |
|
|
|
<td style={{ width: '20%' }}>{item.positions_held}</td> |
|
|
|
<td style={{ width: '20%' }}> |
|
|
|
<div> |
|
|
|
{item.certificate} |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
{item.awards} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 工作经历 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >工作经历</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<thead> |
|
|
|
<th style={{ height: '30px', width: '25%' }}>起止时间</th> |
|
|
|
<th style={{ height: '30px', width: '25%' }}>单位名称</th> |
|
|
|
<th style={{ height: '30px', width: '25%' }}>职位</th> |
|
|
|
<th style={{ height: '30px', width: '25%' }}>离职原因</th> |
|
|
|
</thead> |
|
|
|
<tbody> |
|
|
|
{ |
|
|
|
detail.trainings && detail.trainings.map((item, index) => ( |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '25%' }}> |
|
|
|
{item.start_year}.{item.start_month}至{item.end_year}.{item.end_month} |
|
|
|
</td> |
|
|
|
<td style={{ width: '25%' }}>{item.company_name}</td> |
|
|
|
<td style={{ width: '25%' }}>{item.position}</td> |
|
|
|
<td style={{ width: '25%' }}>{item.positioreason_for_leavings_held}</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 专业技能掌握能力 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >专业技能掌握能力</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<tbody> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '25%' }}>英 语</td> |
|
|
|
<td style={{ width: '25%' }}>{detail.english_txt}</td> |
|
|
|
<td style={{ width: '25%' }}>粤 语</td> |
|
|
|
<td style={{ width: '25%' }}>{detail.mandarin_txt}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '25%' }}>国 语</td> |
|
|
|
<td style={{ width: '25%' }}>{detail.cantonese_txt}</td> |
|
|
|
<td style={{ width: '25%' }}>第二外语</td> |
|
|
|
<td style={{ width: '25%' }}>{detail.other_language_txt}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '25%' }}>计算机能力</td> |
|
|
|
<td colspan={7} style={{ width: '75%' }}>{detail.computer_skills}</td> |
|
|
|
</tr> |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 联系信息 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >联系信息</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<tbody> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '15%' }}>移动电话</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.mobile} <Button type='link' onClick={() => { |
|
|
|
Modal.confirm({ |
|
|
|
title: '获取联系方式', |
|
|
|
content: '获取联系方式需要扣除一个点数,是否要获取联系方式', |
|
|
|
centered: true, |
|
|
|
okText: '获取', |
|
|
|
cancelText: '取消', |
|
|
|
onOk() { |
|
|
|
GetJobapplicantContactdetail({ customer_id: detail.customer_id }).then(res => { |
|
|
|
GetJobseekerDetail({ customer_id: searchParams.get('id') }).then(res => { |
|
|
|
setDetail(res.data) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}, |
|
|
|
onCancel() { |
|
|
|
|
|
|
|
}, |
|
|
|
}); |
|
|
|
}}>获取详细</Button> </td> |
|
|
|
<td style={{ width: '15%' }}>固定电话</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.landline}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '15%' }}>联系邮箱</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.email}</td> |
|
|
|
<td style={{ width: '15%' }}>Q Q</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.qq}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '15%' }}>通讯地址</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.mailing_address}</td> |
|
|
|
<td style={{ width: '15%' }}>邮 编</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.postal_code}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '15%' }}>个人主页</td> |
|
|
|
<td colspan={3} style={{ width: '85%' }}>{detail.personal_website}</td> |
|
|
|
</tr> |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
{/* 证书信息 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >证书信息</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<thead> |
|
|
|
<th style={{ height: '30px', width: '25%' }}>证书名称</th> |
|
|
|
<th style={{ height: '30px', width: '80%' }}>证书图片</th> |
|
|
|
</thead> |
|
|
|
<tbody> |
|
|
|
{ |
|
|
|
detail.certificates && detail.certificates.map((item, index) => ( |
|
|
|
<tr > |
|
|
|
<td style={{ width: '25%' }}>{item.name}</td> |
|
|
|
<td style={{ width: '80%' }}> |
|
|
|
<img src={`${Imageprefix}${item.certificate_photo}`} alt="" width="90" height="150" /> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div > |
|
|
|
</div > |
|
|
|
<Flex justify="flex-end" align='center'> |
|
|
|
<Button type='primary' onClick={async () => { |
|
|
|
const htmlContent = document.getElementById('export-container'); // 获取需要转换的HTML内容 |
|
|
|
const convertedFile = htmlDocx.asBlob(htmlContent?.outerHTML!); |
|
|
|
const fileData = await convertedFile; |
|
|
|
saveAs((fileData as Blob), '个人简历.docx') |
|
|
|
}}>下载简历</Button> |
|
|
|
</Flex> |
|
|
|
</Space> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</> |
|
|
|
} |
|
|
|
|
|
|
|
detail && <> |
|
|
|
<div style={{ minHeight: 1000 }}> |
|
|
|
<Space direction='vertical' size={30} style={{ width: '100%' }}> |
|
|
|
<div id="export-container"> |
|
|
|
<div > |
|
|
|
<h1 style={{ textAlign: 'center' }}>个人简历</h1> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >基本资料</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<tbody> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>姓 名</td> |
|
|
|
<td>{detail.seekername}</td> |
|
|
|
<td>性 别</td> |
|
|
|
<td>{detail.gender}</td> |
|
|
|
<td rowSpan={6} style={{ textAlign: 'center', verticalAlign: 'middle' }}> |
|
|
|
<img src={detail.photo ? `${Imageprefix}${detail.photo}` : ''} alt="" width="90" height="150" /> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>出生日期</td> |
|
|
|
<td>{detail.dob}</td> |
|
|
|
<td>职 称</td> |
|
|
|
<td>{detail.title_txt}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>现居住地</td> |
|
|
|
<td>{detail.now_level1_txt ? detail.now_level1_txt : ''}{detail.now_level2_txt ? detail.now_level2_txt : ''}{detail.now_level3_txt ? detail.now_level3_txt : ''}{detail.now_level4_txt ? detail.now_level4_txt : ''} |
|
|
|
</td> |
|
|
|
<td>户口所在地</td> |
|
|
|
<td>{detail.now_level1_txt ? detail.now_level1_txt : ''}{detail.now_level2_txt ? detail.now_level2_txt : ''}{detail.now_level3_txt ? detail.now_level3_txt : ''}{detail.now_level4_txt ? detail.now_level4_txt : ''} |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>学 历</td> |
|
|
|
<td>{detail.education_txt}</td> |
|
|
|
<td>婚姻状况</td> |
|
|
|
<td>{detail.marital_status_txt}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>民 族</td> |
|
|
|
<td>{detail.ethnicity_txt}</td> |
|
|
|
<td>政治面貌</td> |
|
|
|
<td>{detail.political_status_txt}</td> |
|
|
|
|
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td>体 重</td> |
|
|
|
<td>{detail.weight}kg</td> |
|
|
|
<td>身 高</td> |
|
|
|
<td>{detail.height}cm</td> |
|
|
|
</tr> |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 个人简介 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >个人简介</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<tbody> |
|
|
|
<tr > |
|
|
|
<td style={{ width: '20%' }}>个人简介</td> |
|
|
|
<td style={{ width: '80%' }}> |
|
|
|
{<div dangerouslySetInnerHTML={{ __html: detail.introduction }} />} |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 求职期望 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >求职期望</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<tbody> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>求职类型</td> |
|
|
|
<td style={{ width: '30%' }}>{detail.job_type_txt}</td> |
|
|
|
<td style={{ width: '20%' }}>可到职日期</td> |
|
|
|
<td style={{ width: '30%' }}>{detail.available_date_txt}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>人才类型</td> |
|
|
|
<td style={{ width: '30%' }}>{detail.talent_type_txt}</td> |
|
|
|
<td style={{ width: '20%' }}>工作经验</td> |
|
|
|
<td style={{ width: '30%' }}>{detail.work_experience}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>月薪要求</td> |
|
|
|
<td colspan={3} style={{ width: '80%' }}>{detail.salary_range_txt}</td> |
|
|
|
</tr> |
|
|
|
{ |
|
|
|
detail.desire_areas && detail.desire_areas.map((item, index) => ( |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>期望工作地区{index + 1}</td> |
|
|
|
<td colspan={3} style={{ width: '80%' }}> |
|
|
|
{item.level1_txt ? item.level1_txt : ''} |
|
|
|
{item.level2_txt ? item.level2_txt : ''} |
|
|
|
{item.level3_txt ? item.level3_txt : ''} |
|
|
|
{item.level4_txt ? item.level4_txt : ''} |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
{ |
|
|
|
detail.desire_industrys && detail.desire_industrys.map((item, index) => ( |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>期望从事行业{index + 1}</td> |
|
|
|
<td colspan={3} style={{ width: '80%' }}> |
|
|
|
{item.industry_txt ? item.industry_txt : ''} |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
{ |
|
|
|
detail.desire_positions && detail.desire_positions.map((item, index) => ( |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}>期望从事职位{index + 1}</td> |
|
|
|
<td colspan={3} style={{ width: '80%' }}> |
|
|
|
{item.level1_txt ? item.level1_txt : ''} |
|
|
|
{item.level2_txt ? item.level2_txt : ''} |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 教育培训 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >教育培训</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<thead> |
|
|
|
<th style={{ height: '30px', width: '20%' }}>起止时间</th> |
|
|
|
<th style={{ height: '30px', width: '20%' }}>学校/培训机构</th> |
|
|
|
<th style={{ height: '30px', width: '20%' }}>专业</th> |
|
|
|
<th style={{ height: '30px', width: '20%' }}>曾担任的职务</th> |
|
|
|
<th style={{ height: '30px', width: '20%' }}>获得证书奖项</th> |
|
|
|
</thead> |
|
|
|
<tbody> |
|
|
|
{ |
|
|
|
detail.trainings && detail.trainings.map((item, index) => ( |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '20%' }}> |
|
|
|
{item.start_year}.{item.start_month}至{item.end_year}.{item.end_month} |
|
|
|
</td> |
|
|
|
<td style={{ width: '20%' }}>{item.school_or_institution}</td> |
|
|
|
<td style={{ width: '20%' }}>{item.major}</td> |
|
|
|
<td style={{ width: '20%' }}>{item.positions_held}</td> |
|
|
|
<td style={{ width: '20%' }}> |
|
|
|
<div> |
|
|
|
{item.certificate} |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
{item.awards} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 工作经历 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >工作经历</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<thead> |
|
|
|
<th style={{ height: '30px', width: '25%' }}>起止时间</th> |
|
|
|
<th style={{ height: '30px', width: '25%' }}>单位名称</th> |
|
|
|
<th style={{ height: '30px', width: '25%' }}>职位</th> |
|
|
|
<th style={{ height: '30px', width: '25%' }}>离职原因</th> |
|
|
|
</thead> |
|
|
|
<tbody> |
|
|
|
{ |
|
|
|
detail.trainings && detail.trainings.map((item, index) => ( |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '25%' }}> |
|
|
|
{item.start_year}.{item.start_month}至{item.end_year}.{item.end_month} |
|
|
|
</td> |
|
|
|
<td style={{ width: '25%' }}>{item.company_name}</td> |
|
|
|
<td style={{ width: '25%' }}>{item.position}</td> |
|
|
|
<td style={{ width: '25%' }}>{item.positioreason_for_leavings_held}</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 专业技能掌握能力 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >专业技能掌握能力</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<tbody> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '25%' }}>英 语</td> |
|
|
|
<td style={{ width: '25%' }}>{detail.english_txt}</td> |
|
|
|
<td style={{ width: '25%' }}>粤 语</td> |
|
|
|
<td style={{ width: '25%' }}>{detail.mandarin_txt}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '25%' }}>国 语</td> |
|
|
|
<td style={{ width: '25%' }}>{detail.cantonese_txt}</td> |
|
|
|
<td style={{ width: '25%' }}>第二外语</td> |
|
|
|
<td style={{ width: '25%' }}>{detail.other_language_txt}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '25%' }}>计算机能力</td> |
|
|
|
<td colspan={7} style={{ width: '75%' }}>{detail.computer_skills}</td> |
|
|
|
</tr> |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 联系信息 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >联系信息</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<tbody> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '15%' }}>移动电话</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.mobile} <Button type='link' onClick={() => { |
|
|
|
Modal.confirm({ |
|
|
|
title: '获取联系方式', |
|
|
|
content: '获取联系方式需要扣除一个点数,是否要获取联系方式', |
|
|
|
centered: true, |
|
|
|
okText: '获取', |
|
|
|
cancelText: '取消', |
|
|
|
onOk() { |
|
|
|
GetJobapplicantContactdetail({ customer_id: detail.customer_id }).then(res => { |
|
|
|
GetJobseekerDetail({ customer_id: searchParams.get('id') }).then(res => { |
|
|
|
setDetail(res.data) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}, |
|
|
|
onCancel() { |
|
|
|
|
|
|
|
}, |
|
|
|
}); |
|
|
|
}}>获取详细</Button> </td> |
|
|
|
<td style={{ width: '15%' }}>固定电话</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.landline}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '15%' }}>联系邮箱</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.email}</td> |
|
|
|
<td style={{ width: '15%' }}>Q Q</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.qq}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '15%' }}>通讯地址</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.mailing_address}</td> |
|
|
|
<td style={{ width: '15%' }}>邮 编</td> |
|
|
|
<td style={{ width: '35%' }}>{detail.postal_code}</td> |
|
|
|
</tr> |
|
|
|
<tr style={{ height: '30px' }}> |
|
|
|
<td style={{ width: '15%' }}>个人主页</td> |
|
|
|
<td colspan={3} style={{ width: '85%' }}>{detail.personal_website}</td> |
|
|
|
</tr> |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
{/* 证书信息 */} |
|
|
|
<div> |
|
|
|
<div style={{ color: '#4fbe70' }}> |
|
|
|
<h3 >证书信息</h3> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}> |
|
|
|
<thead> |
|
|
|
<th style={{ height: '30px', width: '25%' }}>证书名称</th> |
|
|
|
<th style={{ height: '30px', width: '80%' }}>证书图片</th> |
|
|
|
</thead> |
|
|
|
<tbody> |
|
|
|
{ |
|
|
|
detail.certificates && detail.certificates.map((item, index) => ( |
|
|
|
<tr > |
|
|
|
<td style={{ width: '25%' }}>{item.name}</td> |
|
|
|
<td style={{ width: '80%' }}> |
|
|
|
<img src={`${Imageprefix}${item.certificate_photo}`} alt="" width="90" height="150" /> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
)) |
|
|
|
} |
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div > |
|
|
|
</div > |
|
|
|
<Flex justify="flex-end" align='center'> |
|
|
|
<Space> |
|
|
|
<Button type='primary' onClick={async () => { |
|
|
|
const htmlContent = document.getElementById('export-container'); // 获取需要转换的HTML内容 |
|
|
|
const convertedFile = htmlDocx.asBlob(htmlContent?.outerHTML!); |
|
|
|
const fileData = await convertedFile; |
|
|
|
saveAs((fileData as Blob), '个人简历.docx') |
|
|
|
}}>下载简历</Button> |
|
|
|
|
|
|
|
{ |
|
|
|
localStorage.getItem('role') === 'company' && <> |
|
|
|
<Button type='primary' onClick={async () => { |
|
|
|
const htmlContent = document.getElementById('export-container'); // 获取需要转换的HTML内容 |
|
|
|
const convertedFile = htmlDocx.asBlob(htmlContent?.outerHTML!); |
|
|
|
const fileData = await convertedFile; |
|
|
|
saveAs((fileData as Blob), '个人简历.docx') |
|
|
|
}}>邀请面试</Button> |
|
|
|
</> |
|
|
|
} |
|
|
|
|
|
|
|
</Space> |
|
|
|
|
|
|
|
</Flex> |
|
|
|
</Space> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<Modal |
|
|
|
open={openPreview} |
|
|
|
title='发送面试邀请' |
|
|
|
centered |
|
|
|
maskClosable={false} |
|
|
|
footer={null} |
|
|
|
destroyOnClose |
|
|
|
width={400} |
|
|
|
onCancel={() => { |
|
|
|
setOpenPreview(false) |
|
|
|
}} |
|
|
|
> |
|
|
|
<CommonInvite detail={detail} closeModel={closeModel}></CommonInvite> |
|
|
|
</Modal> |
|
|
|
|
|
|
|
</> |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
</ConfigProvider > |
|
|
|
|