Files
online_sys/frontend_智能开发/updateTeacherData.cjs
KQL a7242f0c69 Initial commit: 教务系统在线平台
- 包含4个产业方向的前端项目:智能开发、智能制造、大健康、财经商贸
- 已清理node_modules、.yoyo等大文件,项目大小从2.6GB优化至631MB
- 配置完善的.gitignore文件

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-12 18:16:55 +08:00

127 lines
7.3 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.

const fs = require('fs');
const path = require('path');
// 读取导师信息(通用).json
const teacherDataJson = JSON.parse(
fs.readFileSync('./网页未导入数据/导师信息(通用).json', 'utf-8')
);
// 筛选智能开发产业的导师
const smartDevTeachers = teacherDataJson.filter(teacher => teacher['就业管家'] === '智能开发');
console.log(`找到 ${smartDevTeachers.length} 位智能开发产业导师`);
// 读取当前的mockData.js文件
const mockDataPath = './src/data/mockData.js';
let mockDataContent = fs.readFileSync(mockDataPath, 'utf-8');
// 构建新的导师数据对象
const newTeacherData = {};
// 添加智能开发产业的复合课导师
smartDevTeachers.forEach(teacher => {
const teacherName = teacher['查询导师名称'];
// 处理特长数组,去掉 # 符号
const specialties = teacher['导师特长'].map(s => s.replace(/^#\s*/, ''));
newTeacherData[teacherName] = {
name: teacherName,
introduction: teacher['导师介绍'],
specialties: specialties,
avatar: teacher['❌导师头像url链接'],
type: "复合课导师",
verticalDirection: teacher['所属垂直方向'],
courses: []
};
});
// 保留公共课导师、AI课导师和HR导师从原文件中提取
const publicTeachers = {
"孙应战": {
name: "孙应战",
introduction: "拥有18年制造业与产品营销经验曾在上市公司与世界500强外企任职参与大众MEB平台、奥迪EA888发动机及新能源汽车项目开发。作为德企内训讲师、国际演讲学会资深会员和中国心理卫生协会会员善于将实践经验转化为通俗讲解课堂氛围轻松易懂。",
specialties: ["世界500强外企背景","学习零压力", "实用可落地", "善于启发"],
avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJCc6qecx.jpg",
type: "公共课导师",
courses: []
},
"李毅峰": {
name: "李毅峰",
introduction: "拥有超过二十年的柔性电子产业从业经验长期专注于柔性印制电路板FPC的材料研发、精密设计、自动化制造与产业化应用具备从技术开发到市场交付的全流程掌控能力。职业生涯中先后主导完成数十项高密度FPC研发项目涵盖5G通信终端、可穿戴设备、汽车电子、医疗影像、工业控制等多个应用场景。曾带领团队突破多层柔性板对位精度控制与微线宽蚀刻技术瓶颈使线路最小宽距精度控制在±20μm以内成功实现系列产品向超薄、超柔、高可靠性方向升级批量供应多家国际知名电子企业。",
specialties: ["善于启发", "易懂好理解", "讲解有节奏", "超有耐心"],
avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuVPz0WRmxCK.jpeg",
type: "公共课导师",
courses: []
},
"周伏波": {
name: "周伏波",
introduction: "拥有12年科技咨询与技术转移服务经验曾负责江苏省技术产权交易市场苏州分中心运营管理主导搭建'政产学研金介用'七位一体的科技成果转化平台。累计促成技术合同成交超100项交易额突破2亿元服务企业超过500家。擅长技术供需精准对接、知识产权价值评估、技术转移谈判与合同管理成功推动多项'卡脖子'技术突破与产业化落地。作为科技部、工信部认证的技术经纪人培训讲师培养专业人才超过300人多次获得省级科技服务贡献奖是连接科研院所与产业界的重要桥梁。",
specialties: ["温柔耐心", "循循善诱", "鼓励教学", "深入浅出"],
avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuVU7Gi9YxSN.jpg",
type: "AI课导师",
courses: []
},
"范雪娇": {
name: "范雪娇",
introduction: "曾任苏州某知名互联网企业产品总监拥有超过8年产品设计与管理经验。深度参与多个千万级用户产品的全生命周期管理涵盖需求调研、原型设计、开发协同、数据分析与迭代优化。擅长用户体验设计、商业模式创新与产品战略规划主导的产品曾获得多项行业奖项。作为产品思维布道者在多个社区与高校分享产品方法论帮助超过1000名产品新人快速成长是理论与实践并重的产品专家。",
specialties: ["亲和有活力", "细致认真", "共情能力强", "方法论专家"],
avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuVU7JsHHDNZ.jpeg",
type: "AI课导师",
courses: []
},
"李奇": {
name: "李奇",
introduction: "曾任阿里巴巴资深算法工程师拥有10年大数据与AI算法研发经验。深度参与淘宝推荐系统、蚂蚁金服风控模型等核心项目在机器学习、深度学习、NLP等领域有深厚积累。发表国际顶会论文5篇拥有算法专利8项。现专注于大模型应用与AI产品化是理论功底扎实、工程能力突出的AI技术专家。",
specialties: ["激情饱满", "案例丰富", "前沿技术", "实战导向"],
avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuW7dxJ5wUUa.png",
type: "AI课导师",
courses: []
},
"魏立慧": {
name: "魏立慧",
introduction: "国家认证高级职业指导师15年人力资源管理经验曾任多家上市公司HRD。服务学员超5000人帮助300+学员成功转型100+学员薪资翻倍。擅长职业规划、简历优化、面试辅导、职场软技能提升。",
specialties: ["点评直击要害", "擅长挖掘优势", "职业规划达人", "一线HR资深讲师"],
avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpSO4gUtJz.png",
type: "企业资深HR",
courses: []
}
};
// 合并所有导师数据
const allTeachers = {
...newTeacherData,
...publicTeachers
};
// 生成替换内容
const teacherDataString = JSON.stringify(allTeachers, null, 4)
.replace(/"([^"]+)":/g, '$1:') // 去掉键名的引号
.replace(/"/g, '"'); // 确保字符串值有引号
// 构建新的teacherData部分
const newTeacherDataSection = ` // 导师信息数据
teacherData: updateTeacherCourses(${teacherDataString}, allCalendarEvents),`;
// 使用正则表达式替换mockData.js中的teacherData部分
const teacherDataRegex = /\/\/ 导师信息数据\s*teacherData: updateTeacherCourses\({[\s\S]*?\}, allCalendarEvents\),/;
if (teacherDataRegex.test(mockDataContent)) {
mockDataContent = mockDataContent.replace(teacherDataRegex, newTeacherDataSection);
// 写回文件
fs.writeFileSync(mockDataPath, mockDataContent, 'utf-8');
console.log('✅ 导师信息更新成功!');
console.log('\n已替换的复合课导师');
Object.keys(newTeacherData).forEach(name => {
console.log(` - ${name} (${newTeacherData[name].verticalDirection})`);
});
console.log('\n保留的公共课导师、AI课导师和HR导师');
Object.keys(publicTeachers).forEach(name => {
console.log(` - ${name} (${publicTeachers[name].type})`);
});
} else {
console.error('❌ 未找到teacherData部分请检查mockData.js文件格式');
}