Files
teach_sys_Demo/test_mockdata_transform.cjs
KQL 1b964b3886 chore: 更新数据文件和组件优化
主要更新内容:
- 优化UI组件(视频播放器、HR访问模态框、岗位信息展示等)
- 更新数据文件(简历、岗位、项目案例等)
- 添加新的图片资源(面试状态图标等)
- 新增AgentPage等页面组件
- 清理旧的备份文件,提升代码库整洁度
- 优化岗位等级和面试状态的数据结构

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 15:55:25 +08:00

118 lines
4.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 测试mockData中的transformCompanyJobs函数
const companyJobsNewData = require('./src/data/companyJobsNew.json');
const companyImagesData = require('./网页未导入数据/文旅产业/文旅_内推岗位企业图片.json');
const interviewStatusData = require('./src/data/interviewStatus.json');
// 创建公司图片映射模拟mockData.js中的逻辑
const companyImagesMap = {};
companyImagesData.forEach(item => {
const imageUrls = item['BOSS照片链接'] ? item['BOSS照片链接'].split(',').map(url => url.trim()) : [];
companyImagesMap[item['内推岗位名称']] = imageUrls;
});
console.log('📊 公司图片映射创建完成');
console.log(' 映射表大小:', Object.keys(companyImagesMap).length);
console.log(' SEO专员图片数:', companyImagesMap['SEO专员']?.length || 0);
// 模拟transformCompanyJobs函数
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) => {
const deadlineParts = job["截止时间"].split('/');
const deadlineDate = new Date(
parseInt(deadlineParts[0]),
parseInt(deadlineParts[1]) - 1,
parseInt(deadlineParts[2])
);
deadlineDate.setHours(0, 0, 0, 0);
const isExpired = deadlineDate < today;
return {
id: index + 1,
company: job["公司介绍"] ? job["公司介绍"].split('。')[0].substring(0, 20) + '...' : `公司${index + 1}`,
position: job["内推岗位名称"],
salary: job["薪资"],
status: isExpired ? "expired" : "available",
jobType: job["岗位标签"] === "实习" ? "internship" : "fulltime",
remainingPositions: parseInt(job["招聘人数"]) || 1,
applicationStatus: isExpired ? "expired" : "not_applied",
tags: job["职位标签"] || [],
deadline: `${deadlineParts[0]}-${deadlineParts[1].padStart(2, '0')}-${deadlineParts[2].padStart(2, '0')}`,
deadlineDate: deadlineDate,
isExpired: isExpired,
type: job["岗位相关标签"] || "专业相关岗位",
jobCategory: job["岗位相关标签"] || "专业相关岗位",
location: job["工作地点"],
education: job["学历要求"],
benefits: job["福利标签"] || [],
isRecommended: Math.random() > 0.7,
details: {
location: job["工作地点"],
experience: "1-3年",
education: job["学历要求"],
positions: job["招聘人数"],
description: job["职位描述"],
requirements: job["任职要求"] ? job["任职要求"].split(/\d+\.\s*/).filter(r => r.trim()) : [],
requirementsText: job["任职要求"],
benefits: job["福利标签"] || [],
companyInfo: job["公司介绍"],
companyImages: companyImagesMap[job["内推岗位名称"]] || []
}
};
})
.sort((a, b) => {
return b.deadlineDate - a.deadlineDate;
});
};
const transformedJobs = transformCompanyJobs(companyJobsNewData);
console.log('\n📋 转换后的岗位数据');
console.log(' 总岗位数:', transformedJobs.length);
// 查找SEO专员
const seoJob = transformedJobs.find(job => job.position === 'SEO专员');
console.log('\n🎯 SEO专员岗位数据:');
if (seoJob) {
console.log(' ✓ 找到SEO专员岗位');
console.log(' 岗位ID:', seoJob.id);
console.log(' 岗位名称:', seoJob.position);
console.log(' 公司介绍存在:', !!seoJob.details.companyInfo);
console.log(' 公司介绍长度:', seoJob.details.companyInfo?.length || 0);
console.log(' companyImages存在:', !!seoJob.details.companyImages);
console.log(' companyImages是数组:', Array.isArray(seoJob.details.companyImages));
console.log(' 图片数量:', seoJob.details.companyImages?.length || 0);
if (seoJob.details.companyImages && seoJob.details.companyImages.length > 0) {
console.log(' ✅ SEO专员有图片数据!');
console.log(' 第一张图片:', seoJob.details.companyImages[0]);
} else {
console.log(' ❌ SEO专员没有图片数据!');
}
console.log('\n 完整的details对象:');
console.log(JSON.stringify(seoJob.details, null, 2));
} else {
console.log(' ✗ 未找到SEO专员岗位');
}
// 统计有图片的岗位
const jobsWithImages = transformedJobs.filter(job =>
job.details.companyImages && job.details.companyImages.length > 0
);
console.log('\n📸 图片统计:');
console.log(' 有图片的岗位数:', jobsWithImages.length);
console.log(' 前10个有图片的岗位:');
jobsWithImages.slice(0, 10).forEach(job => {
console.log(` - ${job.position}: ${job.details.companyImages.length}张图片`);
});