Files
jiaowu-test/src/services/companyJobs.js
KQL 19e1143fe2 feat: 更新岗位面试状态数据源
- 导入岗位面试状态.json文件数据
- 创建transformInterviewStatus函数转换面试状态数据
- 从企业内推岗位库中移除已有面试状态的岗位(避免重复显示)
- 更新服务层使用新的interviewStatus数据源
- 面试状态板块现在显示真实的面试进度数据

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-08 05:12:37 +08:00

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); // 模拟网络延迟
});
}