feat: 更新岗位面试状态数据源
- 导入岗位面试状态.json文件数据 - 创建transformInterviewStatus函数转换面试状态数据 - 从企业内推岗位库中移除已有面试状态的岗位(避免重复显示) - 更新服务层使用新的interviewStatus数据源 - 面试状态板块现在显示真实的面试进度数据 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
77
src/data/interviewStatus.json
Normal file
77
src/data/interviewStatus.json
Normal file
@@ -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",
|
||||
"面试状态": "面试未通过"
|
||||
}
|
||||
]
|
||||
@@ -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),
|
||||
},
|
||||
|
||||
// 用户简历数据
|
||||
|
||||
@@ -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;
|
||||
|
||||
77
网页未导入数据/文旅产业/岗位面试状态.json
Normal file
77
网页未导入数据/文旅产业/岗位面试状态.json
Normal file
@@ -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",
|
||||
"面试状态": "面试未通过"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user