主要更新: - 更新所有12个产业的教务系统数据和功能 - 删除所有 node_modules 文件夹(节省3.7GB) - 删除所有 .yoyo 缓存文件夹(节省1.2GB) - 删除所有 dist 构建文件(节省55MB) 项目优化: - 项目大小从 8.1GB 减少到 3.2GB(节省60%空间) - 保留完整的源代码和配置文件 - .gitignore 已配置,防止再次提交大文件 启动脚本: - start-industry.sh/bat/ps1 脚本会自动检测并安装依赖 - 首次启动时自动运行 npm install - 支持单个或批量启动产业系统 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
118 lines
4.8 KiB
JavaScript
118 lines
4.8 KiB
JavaScript
// 测试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}张图片`);
|
||
});
|