Files
ALL-teach_sys/frontend_交通物流/simpleFixInterview.js

111 lines
3.7 KiB
JavaScript
Raw Normal View History

import fs from 'fs';
// 简单的修复方案:直接替换整个 mockData.js 文件中有问题的部分
let content = fs.readFileSync('src/data/mockData.js', 'utf-8');
// 查找 transformInterviewStatus 函数的位置,并用一个简单的版本替换
const newFunction = `// 转换面试状态数据
const transformInterviewStatus = (statusData, jobsData) => {
if (!Array.isArray(statusData)) {
return [];
}
return statusData.map((status, index) => {
const matchedJob = jobsData.find(job =>
job["内推岗位名称"] === (status["岗位名称"] || status["查询岗位名称"])
);
const dateString = status["投递时间"] || status["阶段日期"] || "2024-01-01";
let formattedDate = dateString;
let interviewDate = new Date();
if (dateString.includes('-')) {
interviewDate = new Date(dateString);
}
let statusCode = 'PENDING';
const statusText = status["面试状态"] || "已投递";
if (statusText.includes("通过") || statusText.includes("Offer")) {
statusCode = 'OFFER';
} else if (statusText.includes("未通过") || statusText.includes("失败")) {
statusCode = 'FAILED';
}
return {
id: index + 1,
position: status["岗位名称"] || status["查询岗位名称"] || "未知岗位",
interviewTime: formattedDate,
interviewDate: interviewDate,
status: statusCode,
statusText: statusText,
progress: status["面试进度"] || 25,
nextStep: status["下一步"] || "等待回复",
job: matchedJob ? {
salary: matchedJob["薪资"] || "面议",
tags: matchedJob["职位标签"] || [],
location: matchedJob["工作地点"] || "未知",
education: matchedJob["学历要求"] || "不限",
companyInfo: matchedJob["公司介绍"] || "",
jobCategory: matchedJob["岗位相关标签"] || "专业相关岗位",
remainingPositions: 5,
description: matchedJob["职位描述"] || "",
requirements: matchedJob["任职要求"] || ""
} : null
};
}).filter(item => item !== null);
};`;
// 找到函数并替换
const functionPattern = /\/\/ 转换面试状态数据[\s\S]*?const transformInterviewStatus[\s\S]*?\};/;
if (content.match(functionPattern)) {
// 备份
fs.copyFileSync('src/data/mockData.js', `src/data/mockData.js.backup_${Date.now()}`);
// 替换
content = content.replace(functionPattern, newFunction);
// 保存
fs.writeFileSync('src/data/mockData.js', content, 'utf-8');
console.log('修复完成!');
} else {
console.log('未找到函数,尝试手动修复...');
// 手动查找并替换
const lines = content.split('\n');
let startIndex = -1;
let endIndex = -1;
for (let i = 0; i < lines.length; i++) {
if (lines[i].includes('transformInterviewStatus')) {
startIndex = i;
break;
}
}
if (startIndex !== -1) {
let braceCount = 0;
for (let i = startIndex; i < lines.length; i++) {
const line = lines[i];
braceCount += (line.match(/\{/g) || []).length;
braceCount -= (line.match(/\}/g) || []).length;
if (braceCount === 0 && line.includes('}')) {
endIndex = i;
break;
}
}
if (endIndex !== -1) {
// 替换函数
const beforeLines = lines.slice(0, startIndex);
const afterLines = lines.slice(endIndex + 1);
const newLines = [...beforeLines, ...newFunction.split('\n'), ...afterLines];
fs.copyFileSync('src/data/mockData.js', `src/data/mockData.js.backup_${Date.now()}`);
fs.writeFileSync('src/data/mockData.js', newLines.join('\n'), 'utf-8');
console.log('手动修复完成!');
}
}
}