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/recuW8gePZvRn6.jpg", 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文件格式'); }