diff --git a/src/data/interviewStatus.json b/src/data/interviewStatus.json new file mode 100644 index 0000000..7bf90ec --- /dev/null +++ b/src/data/interviewStatus.json @@ -0,0 +1,77 @@ +[ + { + "查询岗位名称": "会展策划师", + "阶段日期": "2025/9/16", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "商业会展执行专员", + "阶段日期": "2025/7/30", + "面试状态": "拒绝Offer" + }, + { + "查询岗位名称": "活动策划师", + "阶段日期": "2025/7/26", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "SEO专员", + "阶段日期": "2025/7/28", + "面试状态": "拒绝Offer" + }, + { + "查询岗位名称": "新媒体运营专员", + "阶段日期": "2025/7/31", + "面试状态": "拒绝Offer" + }, + { + "查询岗位名称": "ip运营", + "阶段日期": "2025/7/10", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "二次元周边店店长", + "阶段日期": "2025/6/27", + "面试状态": "HR初筛未通过" + }, + { + "查询岗位名称": "社群运营", + "阶段日期": "2025/7/23", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "品牌推广专员", + "阶段日期": "2025/8/2", + "面试状态": "面试未通过" + }, + { + "查询岗位名称": "会展策划师", + "阶段日期": "2025/9/16", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "客服", + "阶段日期": "2025/8/2", + "面试状态": "拒绝Offer" + }, + { + "查询岗位名称": "境外展会操作助理", + "阶段日期": "2025/8/9", + "面试状态": "面试未通过" + }, + { + "查询岗位名称": "海外活动策划专员", + "阶段日期": "2025/7/17", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "品牌公关", + "阶段日期": "2025/9/7", + "面试状态": "等待面试" + }, + { + "查询岗位名称": "景区运营专员", + "阶段日期": "2025/8/12", + "面试状态": "面试未通过" + } +] \ No newline at end of file diff --git a/src/data/mockData.js b/src/data/mockData.js index 7306b45..61fab6f 100644 --- a/src/data/mockData.js +++ b/src/data/mockData.js @@ -1,17 +1,70 @@ // 导入JSON数据 import companyJobsData from './companyJobs.json'; import companyJobsNewData from './companyJobsNew.json'; +import interviewStatusData from './interviewStatus.json'; import calendarCoursesData from './calendarCourses.json'; import aiCoursesData from '../../网页未导入数据/文旅产业/ai课程表.json'; import marketingCoursesData from './marketingCourses.json'; // 转换函数:将JSON数据转换为页面所需格式 +// 转换面试状态数据 +const transformInterviewStatus = (statusData, jobsData) => { + return statusData.map((status, index) => { + // 从岗位数据中查找匹配的岗位详情 + const matchedJob = jobsData.find(job => + job["内推岗位名称"] === status["查询岗位名称"] + ); + + // 解析日期 + const dateParts = status["阶段日期"].split('/'); + const formattedDate = `${dateParts[0]}-${dateParts[1].padStart(2, '0')}-${dateParts[2].padStart(2, '0')}`; + + // 根据面试状态确定状态码和文本 + let statusCode = 'PENDING'; + let statusText = status["面试状态"]; + + if (status["面试状态"] === "收到Offer") { + statusCode = 'OFFER'; + } else if (status["面试状态"] === "拒绝Offer") { + statusCode = 'REJECTED_OFFER'; + } else if (status["面试状态"] === "HR初筛未通过" || status["面试状态"] === "面试未通过") { + statusCode = 'FAILED'; + } + + return { + id: index + 1, + position: status["查询岗位名称"], + interviewTime: formattedDate, + status: statusCode, + statusText: statusText, + job: matchedJob ? { + salary: matchedJob["薪资"], + tags: matchedJob["职位标签"] || [], + location: matchedJob["工作地点"], + education: matchedJob["学历要求"], + companyInfo: matchedJob["公司介绍"] + } : { + salary: "面议", + tags: [], + location: "待定", + education: "待定", + companyInfo: "" + } + }; + }); +}; + const transformCompanyJobs = (jobsData) => { // 获取今天的日期(只保留日期部分) const today = new Date(); today.setHours(0, 0, 0, 0); + // 获取所有有面试状态的岗位名称 + const interviewedPositions = interviewStatusData.map(status => status["查询岗位名称"]); + return jobsData + // 过滤掉已有面试状态的岗位 + .filter(job => !interviewedPositions.includes(job["内推岗位名称"])) .map((job, index) => { // 处理截止时间格式(2025/8/28 -> Date对象) const deadlineParts = job["截止时间"].split('/'); @@ -2212,6 +2265,7 @@ export const mockData = { title: "企业内推岗位", subtitle: "基于AI智能匹配的企业内推岗位推荐系统", companyPositions: transformCompanyJobs(companyJobsNewData), + interviewStatus: transformInterviewStatus(interviewStatusData, companyJobsNewData), }, // 用户简历数据 diff --git a/src/services/companyJobs.js b/src/services/companyJobs.js index f9cf3a7..ebca688 100644 --- a/src/services/companyJobs.js +++ b/src/services/companyJobs.js @@ -13,9 +13,9 @@ export async function getCompanyJobsPageData(params) { total: mockData.companyJobs.companyPositions?.length || 0 }, interviews: { - list: mockData.companyJobs.internalPositions || [], + list: mockData.companyJobs.interviewStatus || [], hasMore: false, - total: mockData.companyJobs.internalPositions?.length || 0 + total: mockData.companyJobs.interviewStatus?.length || 0 } } }); @@ -62,7 +62,7 @@ export async function getJobsDetail(id) { // 获取企业内推岗位面试 export async function getInterviewsList(params) { // 使用mock数据 - const allInterviews = mockData.companyJobs.internalPositions || []; + const allInterviews = mockData.companyJobs.interviewStatus || []; const page = params.page || 1; const pageSize = params.pageSize || 10; const startIndex = (page - 1) * pageSize; diff --git a/网页未导入数据/文旅产业/岗位面试状态.json b/网页未导入数据/文旅产业/岗位面试状态.json new file mode 100644 index 0000000..7bf90ec --- /dev/null +++ b/网页未导入数据/文旅产业/岗位面试状态.json @@ -0,0 +1,77 @@ +[ + { + "查询岗位名称": "会展策划师", + "阶段日期": "2025/9/16", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "商业会展执行专员", + "阶段日期": "2025/7/30", + "面试状态": "拒绝Offer" + }, + { + "查询岗位名称": "活动策划师", + "阶段日期": "2025/7/26", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "SEO专员", + "阶段日期": "2025/7/28", + "面试状态": "拒绝Offer" + }, + { + "查询岗位名称": "新媒体运营专员", + "阶段日期": "2025/7/31", + "面试状态": "拒绝Offer" + }, + { + "查询岗位名称": "ip运营", + "阶段日期": "2025/7/10", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "二次元周边店店长", + "阶段日期": "2025/6/27", + "面试状态": "HR初筛未通过" + }, + { + "查询岗位名称": "社群运营", + "阶段日期": "2025/7/23", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "品牌推广专员", + "阶段日期": "2025/8/2", + "面试状态": "面试未通过" + }, + { + "查询岗位名称": "会展策划师", + "阶段日期": "2025/9/16", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "客服", + "阶段日期": "2025/8/2", + "面试状态": "拒绝Offer" + }, + { + "查询岗位名称": "境外展会操作助理", + "阶段日期": "2025/8/9", + "面试状态": "面试未通过" + }, + { + "查询岗位名称": "海外活动策划专员", + "阶段日期": "2025/7/17", + "面试状态": "收到Offer" + }, + { + "查询岗位名称": "品牌公关", + "阶段日期": "2025/9/7", + "面试状态": "等待面试" + }, + { + "查询岗位名称": "景区运营专员", + "阶段日期": "2025/8/12", + "面试状态": "面试未通过" + } +] \ No newline at end of file