主要内容: - 包含12个产业的完整教务系统前端代码 - 智能启动脚本 (start-industry.sh) - 可视化产业导航页面 (index.html) - 项目文档 (README.md) 优化内容: - 删除所有node_modules和.yoyo文件夹,从7.5GB减少到2.7GB - 添加.gitignore文件避免上传不必要的文件 - 自动依赖管理和智能启动系统 产业列表: 1. 文旅产业 (5150) 2. 智能制造 (5151) 3. 智能开发 (5152) 4. 财经商贸 (5153) 5. 视觉设计 (5154) 6. 交通物流 (5155) 7. 大健康 (5156) 8. 土木水利 (5157) 9. 食品产业 (5158) 10. 化工产业 (5159) 11. 能源产业 (5160) 12. 环保产业 (5161) 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
236 lines
9.8 KiB
Python
236 lines
9.8 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
|
||
import json
|
||
import re
|
||
|
||
def parse_interview_questions(content):
|
||
"""解析面试题内容为结构化数据"""
|
||
questions = []
|
||
|
||
# 分割成不同的问题类别
|
||
sections = re.split(r'\n# ([一二三四五六七八九十]+、[^#\n]+)', content)
|
||
|
||
question_id = 1
|
||
for i in range(1, len(sections), 2):
|
||
if i >= len(sections):
|
||
break
|
||
|
||
section_title = sections[i].strip()
|
||
section_content = sections[i + 1] if i + 1 < len(sections) else ""
|
||
|
||
# 提取每个问题
|
||
question_blocks = re.split(r'\n\d+\.\s+', section_content)
|
||
|
||
for j, block in enumerate(question_blocks[1:], 1): # 跳过第一个空块
|
||
lines = block.strip().split('\n')
|
||
if not lines:
|
||
continue
|
||
|
||
question_text = lines[0].strip()
|
||
|
||
# 查找答案
|
||
answer_text = ""
|
||
for k, line in enumerate(lines):
|
||
if '示例答案' in line or '答案' in line:
|
||
# 获取答案内容
|
||
answer_lines = []
|
||
for answer_line in lines[k+1:]:
|
||
answer_line = answer_line.strip()
|
||
if answer_line and not answer_line.startswith('示例答案'):
|
||
if re.match(r'^\d+\.', answer_line):
|
||
break
|
||
answer_lines.append(answer_line)
|
||
answer_text = ' '.join(answer_lines)
|
||
break
|
||
|
||
if question_text and answer_text:
|
||
questions.append({
|
||
"id": f"q{question_id}",
|
||
"question": question_text,
|
||
"answer": answer_text
|
||
})
|
||
question_id += 1
|
||
|
||
return questions
|
||
|
||
def main():
|
||
# 读取大健康岗位简历数据
|
||
with open('/Users/apple/Documents/cursor/教务系统/frontend_大健康/网页未导入数据/大健康产业/大健康岗位简历.json', 'r', encoding='utf-8') as f:
|
||
health_data = json.load(f)
|
||
|
||
# 读取现有的Mock数据
|
||
with open('/Users/apple/Documents/cursor/教务系统/frontend_大健康/src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
|
||
mock_content = f.read()
|
||
|
||
# 收集所有岗位群的数据
|
||
all_industries = {}
|
||
for item in health_data:
|
||
industry = item.get('简历岗位群', '')
|
||
position_name = item.get('岗位名称', '')
|
||
avatar_url = item.get('简历头像url', '')
|
||
level_tag = item.get('岗位等级标签', '')
|
||
interview_content = item.get('面试题内容', '')
|
||
|
||
if industry:
|
||
if industry not in all_industries:
|
||
all_industries[industry] = {
|
||
'positions': [],
|
||
'questions': None
|
||
}
|
||
|
||
# 添加岗位信息
|
||
all_industries[industry]['positions'].append({
|
||
'name': position_name,
|
||
'avatar': avatar_url,
|
||
'level': level_tag
|
||
})
|
||
|
||
# 添加面试题(只添加一次)
|
||
if interview_content and not all_industries[industry]['questions']:
|
||
questions = parse_interview_questions(interview_content)
|
||
if questions:
|
||
# 将问题按类别分组
|
||
category_questions = {}
|
||
current_category = "综合面试题"
|
||
|
||
for q in questions:
|
||
# 检查是否是新的分类
|
||
if '岗位理解' in q['question']:
|
||
current_category = "岗位理解类问题"
|
||
elif '实践经验' in q['question'] or '案例' in q['question']:
|
||
current_category = "实践经验类问题"
|
||
elif '客户服务' in q['question'] or '客户' in q['question']:
|
||
current_category = "客户服务类问题"
|
||
elif '市场' in q['question'] or '趋势' in q['question']:
|
||
current_category = "市场与未来趋势类问题"
|
||
elif '技术' in q['question'] or '专业' in q['question']:
|
||
current_category = "专业技术类问题"
|
||
elif '团队' in q['question'] or '协作' in q['question']:
|
||
current_category = "团队协作类问题"
|
||
|
||
if current_category not in category_questions:
|
||
category_questions[current_category] = []
|
||
category_questions[current_category].append(q)
|
||
|
||
# 构建questions数组
|
||
questions_array = []
|
||
cat_id = 1
|
||
for category, cat_questions in category_questions.items():
|
||
questions_array.append({
|
||
"id": f"group_q{cat_id}",
|
||
"question": category,
|
||
"subQuestions": cat_questions
|
||
})
|
||
cat_id += 1
|
||
|
||
all_industries[industry]['questions'] = questions_array
|
||
|
||
# 需要添加的新岗位群(不在现有Mock中的)
|
||
new_industries = ['社群运营', '药品供应链管理', '药品生产', '药品质量检测', '药物研发']
|
||
|
||
# 生成新的岗位群数据
|
||
new_industry_blocks = []
|
||
industry_id = 7 # 从health_7开始
|
||
|
||
for industry_name in new_industries:
|
||
if industry_name in all_industries:
|
||
industry_data = all_industries[industry_name]
|
||
|
||
# 构建positions数组
|
||
positions_data = []
|
||
for idx, pos in enumerate(industry_data['positions'], 1):
|
||
level_mapping = {
|
||
'基础岗': '普通岗',
|
||
'技术骨干岗': '技术骨干岗',
|
||
'管理培训生岗': '管理培训生岗',
|
||
'管理岗': '管理岗'
|
||
}
|
||
|
||
position_obj = {
|
||
"id": f"health_{industry_id}_{idx}",
|
||
"title": pos['name'],
|
||
"level": level_mapping.get(pos['level'], '普通岗'),
|
||
"avatar": pos['avatar'],
|
||
"department": industry_name,
|
||
"type": "全职",
|
||
"experience": "1-3年",
|
||
"education": "大专",
|
||
"salary": "5-10K",
|
||
"location": "北京",
|
||
"updateTime": "2024-01-20",
|
||
"description": f"负责{pos['name']}相关工作",
|
||
"requirements": [
|
||
"具备相关专业知识和技能",
|
||
"有良好的沟通能力和团队合作精神",
|
||
"能够独立完成岗位职责",
|
||
"有相关实习或工作经验优先"
|
||
]
|
||
}
|
||
positions_data.append(position_obj)
|
||
|
||
# 构建industry对象
|
||
industry_obj = {
|
||
"id": f"health_{industry_id}",
|
||
"name": industry_name,
|
||
"positions": positions_data
|
||
}
|
||
|
||
# 添加questions(如果有的话)
|
||
if industry_data['questions']:
|
||
industry_obj["questions"] = industry_data['questions']
|
||
else:
|
||
# 使用默认的面试题结构
|
||
industry_obj["questions"] = [
|
||
{
|
||
"id": "group_q1",
|
||
"question": f"{industry_name}专业认知",
|
||
"subQuestions": [
|
||
{
|
||
"id": "q1",
|
||
"question": f"你如何理解{industry_name}的核心价值?",
|
||
"answer": f"{industry_name}的核心价值在于通过专业技能和知识,为企业和客户创造价值,推动行业发展。"
|
||
},
|
||
{
|
||
"id": "q2",
|
||
"question": f"{industry_name}中最重要的能力是什么?",
|
||
"answer": "专业技能、沟通能力、团队协作和持续学习能力都是非常重要的。"
|
||
},
|
||
{
|
||
"id": "q3",
|
||
"question": f"你为什么选择{industry_name}这个方向?",
|
||
"answer": "我对这个领域充满热情,相信能够在这里发挥我的专业优势,为行业发展做出贡献。"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
|
||
new_industry_blocks.append(industry_obj)
|
||
industry_id += 1
|
||
|
||
# 将新的岗位群添加到Mock文件中
|
||
# 找到industries数组的结束位置
|
||
industries_end_pattern = r'(const industries = \[[^\]]*)\]'
|
||
|
||
# 生成新的岗位群JavaScript代码
|
||
new_blocks_js = ""
|
||
for block in new_industry_blocks:
|
||
new_blocks_js += ",\n " + json.dumps(block, ensure_ascii=False, indent=2).replace('\n', '\n ')
|
||
|
||
# 替换
|
||
replacement = rf'\1{new_blocks_js}\n]'
|
||
new_content = re.sub(industries_end_pattern, replacement, mock_content, flags=re.DOTALL)
|
||
|
||
# 写回文件
|
||
with open('/Users/apple/Documents/cursor/教务系统/frontend_大健康/src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
|
||
f.write(new_content)
|
||
|
||
print(f"成功添加了 {len(new_industry_blocks)} 个新岗位群:")
|
||
for block in new_industry_blocks:
|
||
print(f" - {block['name']} (ID: {block['id']}): {len(block['positions'])} 个岗位")
|
||
|
||
# 统计总数
|
||
print(f"\n现在总共有 11 个岗位群")
|
||
|
||
if __name__ == "__main__":
|
||
main() |