Files
ALL-teach_sys/frontend_视觉设计/replaceAllWeiToSun.cjs

129 lines
5.0 KiB
JavaScript
Raw Permalink Normal View History

#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
// 孙悦彤的导师信息
const sunYueTongInfo = {
name: "孙悦彤",
title: "企业资深HR",
avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuXM074e1DUq.png",
introduction: "推动集团招聘数字化转型引入ATS与视频面试工具使简历处理效率提升40%关键岗位转化率提高至32%用人部门满意度提升20%。同时主导上线HR SaaS平台和数据分析体系实现人事数据可视化与决策支持。作为资深一线HR导师还长期面向求职者提供一对一的个性化辅导从真实招聘场景出发帮助学员掌握简历优化与筛选逻辑、面试答题技巧与岗位匹配思路并结合职业路径规划提供可落地的发展方案帮助学员快速提升求职竞争力。",
specialties: ["模拟面试实战", "核心能力塑造", "职场沟通提升", "长远目标设定"]
};
console.log('开始全面替换魏立慧为孙悦彤...\n');
// 1. 更新 mockData.js
const mockDataPath = path.join(__dirname, 'src/data/mockData.js');
console.log('正在更新 mockData.js...');
// 备份
const mockDataBackup = `${mockDataPath}.backup_${new Date().toISOString().replace(/[:.]/g, '-')}_full_replace`;
fs.copyFileSync(mockDataPath, mockDataBackup);
console.log(`✓ 已备份到: ${mockDataBackup}`);
let mockDataContent = fs.readFileSync(mockDataPath, 'utf-8');
// 1.1 替换 avatarMap 中的魏立慧
mockDataContent = mockDataContent.replace(
/"魏立慧":\s*"[^"]+"/g,
`"孙悦彤": "${sunYueTongInfo.avatar}"`
);
// 1.2 替换 teachersDetail 中的魏立慧对象
mockDataContent = mockDataContent.replace(
/"":\s*\{[^}]*name:\s*""[^}]*\}/s,
`"孙悦彤": {
name: "孙悦彤",
introduction: "${sunYueTongInfo.introduction}",
specialties: ${JSON.stringify(sunYueTongInfo.specialties)},
courses: []
}`
);
// 1.3 替换 jobStrategyLive 中的教师名字和头像
mockDataContent = mockDataContent.replace(
/teacher:\s*"企业资深HR - 魏立慧"/g,
`teacher: "企业资深HR - 孙悦彤"`
);
// 1.4 替换教师头像URL如果是魏立慧的
mockDataContent = mockDataContent.replace(
/teacherAvatar:\s*"https:\/\/ddcz-1315997005\.cos\.ap-nanjing\.myqcloud\.com\/static\/img\/teach_sys_teacher-avatar\/recuUpSO4gUtJz\.png"/g,
`teacherAvatar: "${sunYueTongInfo.avatar}"`
);
// 1.5 替换 teachers 对象中的魏立慧(如果存在)
const teachersRegex = /const\s+teachers\s*=\s*\{([^}]+)\}/s;
const teachersMatch = mockDataContent.match(teachersRegex);
if (teachersMatch) {
let teachersContent = teachersMatch[0];
teachersContent = teachersContent.replace(
/:\s*\{[^}]+\}/s,
`孙悦彤: {
name: "孙悦彤",
title: "${sunYueTongInfo.title}",
avatar: "${sunYueTongInfo.avatar}"
}`
);
// 替换 teachers.魏立慧 引用
mockDataContent = mockDataContent.replace(teachersMatch[0], teachersContent);
mockDataContent = mockDataContent.replace(
/teacher:\s*teachers\.魏立慧/g,
'teacher: teachers.孙悦彤'
);
}
// 1.6 替换所有剩余的魏立慧文本引用
mockDataContent = mockDataContent.replace(/魏立慧/g, '孙悦彤');
fs.writeFileSync(mockDataPath, mockDataContent);
console.log('✓ mockData.js 更新完成');
// 2. 更新 visualDesignCalendar.json已经完成
const calendarPath = path.join(__dirname, 'src/data/visualDesignCalendar.json');
console.log('\n正在检查 visualDesignCalendar.json...');
const calendarData = JSON.parse(fs.readFileSync(calendarPath, 'utf-8'));
let calendarReplaced = 0;
calendarData.forEach(item => {
if (item['导师姓名查询'] === '魏立慧') {
item['导师姓名查询'] = '孙悦彤';
calendarReplaced++;
}
});
if (calendarReplaced > 0) {
fs.writeFileSync(calendarPath, JSON.stringify(calendarData, null, 2));
console.log(`✓ visualDesignCalendar.json 更新了 ${calendarReplaced}`);
} else {
console.log('✓ visualDesignCalendar.json 已经是最新的');
}
// 3. 验证替换结果
console.log('\n验证替换结果...');
// 检查 mockData.js
const updatedMockData = fs.readFileSync(mockDataPath, 'utf-8');
const weiReferences = (updatedMockData.match(/魏立慧/g) || []).length;
const sunReferences = (updatedMockData.match(/孙悦彤/g) || []).length;
console.log(`mockData.js - 魏立慧: ${weiReferences} 处, 孙悦彤: ${sunReferences}`);
// 检查 calendar
const updatedCalendar = fs.readFileSync(calendarPath, 'utf-8');
const weiInCalendar = (updatedCalendar.match(/魏立慧/g) || []).length;
const sunInCalendar = (updatedCalendar.match(/孙悦彤/g) || []).length;
console.log(`visualDesignCalendar.json - 魏立慧: ${weiInCalendar} 处, 孙悦彤: ${sunInCalendar}`);
if (weiReferences === 0 && weiInCalendar === 0) {
console.log('\n✅ 成功!所有魏立慧的引用已替换为孙悦彤');
} else {
console.log('\n⚠ 警告:仍有魏立慧的引用未被替换');
}
console.log('\n替换完成');