48 lines
1.6 KiB
Plaintext
48 lines
1.6 KiB
Plaintext
|
|
import companyJobsData from "@/mocks/companyJobsData.json";
|
||
|
|
|
||
|
|
// 将原始数据转换为前端格式
|
||
|
|
function transformJobData(rawJob, index) {
|
||
|
|
// 从招聘人数中提取数字
|
||
|
|
const recruitNumberMatch = rawJob["招聘人数"]?.match(/\d+/);
|
||
|
|
const remainingPositions = recruitNumberMatch ? recruitNumberMatch[0] : "若干";
|
||
|
|
|
||
|
|
return {
|
||
|
|
id: index + 1,
|
||
|
|
position: rawJob["内推岗位名称"],
|
||
|
|
salary: rawJob["薪资"],
|
||
|
|
location: rawJob["工作地点"],
|
||
|
|
education: rawJob["学历要求"],
|
||
|
|
recruitNumber: rawJob["招聘人数"],
|
||
|
|
remainingPositions: remainingPositions,
|
||
|
|
tags: rawJob["职位标签"] || [],
|
||
|
|
benefits: rawJob["福利标签"] || [],
|
||
|
|
deadline: rawJob["截止时间"],
|
||
|
|
jobCategory: rawJob["岗位相关标签"],
|
||
|
|
// details对象包含描述、要求、公司介绍和企业图片
|
||
|
|
details: {
|
||
|
|
description: rawJob["职位描述"] || "",
|
||
|
|
requirementsText: rawJob["任职要求"] || "",
|
||
|
|
companyInfo: rawJob["公司介绍"] || "",
|
||
|
|
companyImages: rawJob["企业图片"] || [] // 添加企业图片字段
|
||
|
|
},
|
||
|
|
// 保留原始数据以备需要
|
||
|
|
_raw: rawJob
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
// 获取所有岗位数据
|
||
|
|
export function getAllCompanyJobs() {
|
||
|
|
return companyJobsData.map((job, index) => transformJobData(job, index));
|
||
|
|
}
|
||
|
|
|
||
|
|
// 根据岗位名称获取岗位详情
|
||
|
|
export function getJobByPosition(positionName) {
|
||
|
|
const allJobs = getAllCompanyJobs();
|
||
|
|
return allJobs.find(job => job.position === positionName);
|
||
|
|
}
|
||
|
|
|
||
|
|
// 根据ID获取岗位详情
|
||
|
|
export function getJobById(id) {
|
||
|
|
const allJobs = getAllCompanyJobs();
|
||
|
|
return allJobs.find(job => job.id === id);
|
||
|
|
}
|