更新12个教务系统并优化项目大小
主要更新: - 更新所有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>
This commit is contained in:
117
frontend/test_mockdata_transform.cjs
Normal file
117
frontend/test_mockdata_transform.cjs
Normal file
@@ -0,0 +1,117 @@
|
||||
// 测试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}张图片`);
|
||||
});
|
||||
Reference in New Issue
Block a user