// 测试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}张图片`); });