完整的教务系统前端项目 - 包含所有修复和9月份数据
This commit is contained in:
158
src/services/companyJobs.js
Normal file
158
src/services/companyJobs.js
Normal file
@@ -0,0 +1,158 @@
|
||||
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.internalPositions || [],
|
||||
hasMore: false,
|
||||
total: mockData.companyJobs.internalPositions?.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.internalPositions || [];
|
||||
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); // 模拟网络延迟
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user