- 导入岗位面试状态.json文件数据 - 创建transformInterviewStatus函数转换面试状态数据 - 从企业内推岗位库中移除已有面试状态的岗位(避免重复显示) - 更新服务层使用新的interviewStatus数据源 - 面试状态板块现在显示真实的面试进度数据 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
159 lines
4.3 KiB
JavaScript
159 lines
4.3 KiB
JavaScript
import request from "@/utils/request";
|
|
import { mockData } from "@/data/mockData";
|
|
|
|
// 获取企业内推岗位页面聚合数据
|
|
export async function getCompanyJobsPageData(params) {
|
|
// 使用mock数据
|
|
return Promise.resolve({
|
|
success: true,
|
|
data: {
|
|
jobs: {
|
|
list: mockData.companyJobs.companyPositions || [],
|
|
hasMore: false,
|
|
total: mockData.companyJobs.companyPositions?.length || 0
|
|
},
|
|
interviews: {
|
|
list: mockData.companyJobs.interviewStatus || [],
|
|
hasMore: false,
|
|
total: mockData.companyJobs.interviewStatus?.length || 0
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
// 获取企业内推岗位
|
|
export async function getJobsList(params) {
|
|
// 使用mock数据
|
|
const allJobs = mockData.companyJobs.companyPositions || [];
|
|
const page = params.page || 1;
|
|
const pageSize = params.pageSize || 10;
|
|
const startIndex = (page - 1) * pageSize;
|
|
const endIndex = startIndex + pageSize;
|
|
const pageJobs = allJobs.slice(startIndex, endIndex);
|
|
|
|
return Promise.resolve({
|
|
success: true,
|
|
data: pageJobs,
|
|
total: allJobs.length,
|
|
page: page,
|
|
pageSize: pageSize
|
|
});
|
|
}
|
|
|
|
// 获取企业内推岗位详情
|
|
export async function getJobsDetail(id) {
|
|
// 使用mock数据
|
|
const allJobs = mockData.companyJobs.companyPositions || [];
|
|
const job = allJobs.find(job => job.id === id);
|
|
|
|
if (job) {
|
|
return Promise.resolve({
|
|
success: true,
|
|
data: job
|
|
});
|
|
} else {
|
|
return Promise.resolve({
|
|
success: false,
|
|
message: "岗位不存在"
|
|
});
|
|
}
|
|
}
|
|
|
|
// 获取企业内推岗位面试
|
|
export async function getInterviewsList(params) {
|
|
// 使用mock数据
|
|
const allInterviews = mockData.companyJobs.interviewStatus || [];
|
|
const page = params.page || 1;
|
|
const pageSize = params.pageSize || 10;
|
|
const startIndex = (page - 1) * pageSize;
|
|
const endIndex = startIndex + pageSize;
|
|
const pageInterviews = allInterviews.slice(startIndex, endIndex);
|
|
|
|
return Promise.resolve({
|
|
success: true,
|
|
data: pageInterviews,
|
|
total: allInterviews.length,
|
|
page: page,
|
|
pageSize: pageSize
|
|
});
|
|
}
|
|
|
|
// 获取简历列表
|
|
export async function getResumesList(params) {
|
|
try {
|
|
// 获取岗位与面试题页面的数据
|
|
const { getMockPageData } = await import("@/mocks/resumeInterviewMock");
|
|
const pageData = getMockPageData();
|
|
|
|
// 收集所有行业的所有简历模板
|
|
const allResumeTemplates = [];
|
|
|
|
if (pageData.industries && pageData.resumeTemplates) {
|
|
pageData.industries.forEach(industry => {
|
|
const templates = pageData.resumeTemplates[industry.name] || [];
|
|
templates.forEach(template => {
|
|
allResumeTemplates.push({
|
|
id: `template_${industry.id}_${template.position}`,
|
|
title: `${template.position}简历`, // 使用岗位名称作为简历标题
|
|
position: template.position,
|
|
industry: industry.name,
|
|
level: template.level || "初级",
|
|
skills: template.studentInfo?.core_skills || [],
|
|
template: template
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
// 分页处理
|
|
const page = params.page || 1;
|
|
const pageSize = params.pageSize || 10;
|
|
const startIndex = (page - 1) * pageSize;
|
|
const endIndex = startIndex + pageSize;
|
|
const pageResumes = allResumeTemplates.slice(startIndex, endIndex);
|
|
|
|
return Promise.resolve({
|
|
success: true,
|
|
data: pageResumes,
|
|
total: allResumeTemplates.length,
|
|
page: page,
|
|
pageSize: pageSize
|
|
});
|
|
} catch (error) {
|
|
console.error('获取简历列表失败:', error);
|
|
// 如果获取失败,返回空列表
|
|
return Promise.resolve({
|
|
success: true,
|
|
data: [],
|
|
total: 0,
|
|
page: 1,
|
|
pageSize: 10
|
|
});
|
|
}
|
|
}
|
|
// 获取简历详情
|
|
export async function getResumesDetail(id) {
|
|
return request({
|
|
url: `/api/resumes/${id}`,
|
|
method: "GET",
|
|
});
|
|
}
|
|
|
|
// 投递简历
|
|
export async function submitResume(params) {
|
|
// 模拟投递请求
|
|
return new Promise((resolve) => {
|
|
setTimeout(() => {
|
|
resolve({
|
|
success: true,
|
|
message: "投递成功",
|
|
data: {
|
|
applicationId: Date.now(), // 模拟申请ID
|
|
submittedAt: new Date().toISOString(),
|
|
status: "submitted"
|
|
}
|
|
});
|
|
}, 800); // 模拟网络延迟
|
|
});
|
|
}
|