11
Some checks are pending
Node CI / build (14.x, macOS-latest) (push) Waiting to run
Node CI / build (14.x, ubuntu-latest) (push) Waiting to run
Node CI / build (14.x, windows-latest) (push) Waiting to run
Node CI / build (16.x, macOS-latest) (push) Waiting to run
Node CI / build (16.x, ubuntu-latest) (push) Waiting to run
Node CI / build (16.x, windows-latest) (push) Waiting to run
coverage CI / build (push) Waiting to run
Node pnpm CI / build (16.x, macOS-latest) (push) Waiting to run
Node pnpm CI / build (16.x, ubuntu-latest) (push) Waiting to run
Node pnpm CI / build (16.x, windows-latest) (push) Waiting to run

This commit is contained in:
francis-fh
2026-07-26 18:45:43 +08:00
parent d653cd97d6
commit 9acb13c4c0
2 changed files with 41 additions and 9 deletions

View File

@@ -92,6 +92,7 @@ const transformJobData = (jobData: any) => {
experience: jobData.experience ? experienceMap[jobData.experience] || jobData.experience : '不限',
education: jobData.education ? educationMap[jobData.education] || jobData.education : '不限',
tags: Array.isArray(jobData.tags) ? jobData.tags : [],
jobFeature: jobData.jobFeature,
salaryComposition: parseCommaSeparatedTags(jobData.salaryComposition),
welfareBenefits: parseCommaSeparatedTags(jobData.welfareBenefits),
workSchedule: parseCommaSeparatedTags(jobData.workSchedule),
@@ -143,6 +144,7 @@ const mockJobDetail = {
experience: '3-5年',
education: '本科',
companyNature: '',
jobFeature: '',
tags: [],
salaryComposition: [] as string[],
welfareBenefits: [] as string[],
@@ -203,6 +205,7 @@ const JobDetailPage: React.FC = () => {
]);
const [scaleEnum, setScaleEnum] = useState<DictValueEnumObj>({});
const [companyNatureEnum, setCompanyNatureEnum] = useState<DictValueEnumObj>({});
const [jobFeatureEnum, setJobFeatureEnum] = useState<DictValueEnumObj>({});
const [industryTree, setIndustryTree] = useState<any[]>([]);
const [complaintVisible, setComplaintVisible] = useState(false);
@@ -268,10 +271,12 @@ const JobDetailPage: React.FC = () => {
Promise.all([
getDictValueEnum('scale', true, true),
getDictValueEnum('company_nature', false, true),
getDictValueEnum('job_feature', false, true),
getCmsIndustryTreeList(),
]).then(([scaleData, companyNatureData, industryRes]) => {
]).then(([scaleData, companyNatureData, jobFeatureData, industryRes]) => {
setScaleEnum(scaleData);
setCompanyNatureEnum(companyNatureData);
setJobFeatureEnum(jobFeatureData);
if (industryRes?.code === 200 && industryRes?.data) {
setIndustryTree(industryRes.data);
}
@@ -564,11 +569,19 @@ const JobDetailPage: React.FC = () => {
<Col span={16}>
<div className="job-title-section">
<Space direction="vertical" size={8}>
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: '16px', flexWrap: 'wrap' }}>
<Space align="baseline" size={16}>
<Title level={2} className="job-title" style={{ marginBottom: 0 }}>{jobDetail.title}</Title>
<Text className="job-salary-display">{jobDetail.salary}</Text>
</Space>
<div style={{ display: 'flex', alignItems: 'baseline', gap: '16px', flexWrap: 'wrap' }}>
<Title level={2} className="job-title" style={{ marginBottom: 0 }}>
{jobDetail.title}
{jobDetail.jobFeature && (
<Tag
color="orange"
style={{ marginLeft: 10, fontSize: 13, lineHeight: '24px', verticalAlign: 'middle' }}
>
{getDictLabel(jobFeatureEnum, jobDetail.jobFeature)}
</Tag>
)}
</Title>
<Text className="job-salary-display">{jobDetail.salary}</Text>
</div>
<Space size={16}>
<Text className="job-meta">