Files
ALL-teach_sys/frontend/test_mockdata_transform.cjs
KQL 38350dca36 更新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>
2025-10-17 14:36: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}张图片`);
});