diff --git a/src/pages/JobPortal/Detail/index.tsx b/src/pages/JobPortal/Detail/index.tsx index 0bbcf3e..dfe86c3 100644 --- a/src/pages/JobPortal/Detail/index.tsx +++ b/src/pages/JobPortal/Detail/index.tsx @@ -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({}); const [companyNatureEnum, setCompanyNatureEnum] = useState({}); + const [jobFeatureEnum, setJobFeatureEnum] = useState({}); const [industryTree, setIndustryTree] = useState([]); 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 = () => {
-
- - {jobDetail.title} - {jobDetail.salary} - +
+ + {jobDetail.title} + {jobDetail.jobFeature && ( + <Tag + color="orange" + style={{ marginLeft: 10, fontSize: 13, lineHeight: '24px', verticalAlign: 'middle' }} + > + {getDictLabel(jobFeatureEnum, jobDetail.jobFeature)} + </Tag> + )} + + {jobDetail.salary}
diff --git a/src/pages/JobPortal/List/index.tsx b/src/pages/JobPortal/List/index.tsx index e7ad95c..6f69471 100644 --- a/src/pages/JobPortal/List/index.tsx +++ b/src/pages/JobPortal/List/index.tsx @@ -200,6 +200,7 @@ const JobListPage: React.FC = () => { const [educationEnum, setEducationEnum] = useState({}); const [scaleEnum, setScaleEnum] = useState({}); const [companyNatureEnum, setCompanyNatureEnum] = useState({}); + const [jobFeatureEnum, setJobFeatureEnum] = useState({}); const [jobTitleTree, setJobTitleTree] = useState([]); const [industryTree, setIndustryTree] = useState([]); const [searchValue, setSearchValue] = useState(''); // 搜索框的值 @@ -316,12 +317,14 @@ const JobListPage: React.FC = () => { getDictValueEnum('education', true, true), getDictValueEnum('scale', true, true), getDictValueEnum('company_nature', false, true), + getDictValueEnum('job_feature', false, true), getCmsIndustryTreeList(), getJobTitleTreeSelect(), - ]).then(([educationData, scaleData, companyNatureData, industryRes, jobTitleRes]) => { + ]).then(([educationData, scaleData, companyNatureData, jobFeatureData, industryRes, jobTitleRes]) => { setEducationEnum(educationData); setScaleEnum(scaleData); setCompanyNatureEnum(companyNatureData); + setJobFeatureEnum(jobFeatureData); if (industryRes?.code === 200 && industryRes?.data) { setIndustryTree(industryRes.data); } @@ -888,12 +891,20 @@ const JobListPage: React.FC = () => { {job.isUrgent === 1 && ( 急聘 )} {job.jobTitle || job.title} + {job.jobFeature && ( + + {getDictLabel(jobFeatureEnum, job.jobFeature)} + + )} {job.minSalary && job.maxSalary @@ -972,12 +983,20 @@ const JobListPage: React.FC = () => { {selectedJob?.isUrgent === 1 && ( 急聘 )} {selectedJob?.jobTitle || selectedJob?.title || '请选择职位'} + {selectedJob?.jobFeature && ( + + {getDictLabel(jobFeatureEnum, selectedJob.jobFeature)} + + )} {selectedJob?.minSalary && selectedJob?.maxSalary