主要内容: - 包含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>
250 lines
8.1 KiB
Python
250 lines
8.1 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import json
|
|
import re
|
|
from datetime import datetime
|
|
|
|
def load_visual_design_data():
|
|
"""加载视觉设计岗位简历数据"""
|
|
with open('网页未导入数据/视觉设计产业/视觉设计岗位简历.json', 'r', encoding='utf-8') as f:
|
|
return json.load(f)
|
|
|
|
def create_position_groups(visual_data):
|
|
"""根据岗位群对数据进行分组"""
|
|
groups = {}
|
|
|
|
for position in visual_data:
|
|
group_name = position['简历岗位群']
|
|
if group_name not in groups:
|
|
groups[group_name] = []
|
|
groups[group_name].append(position)
|
|
|
|
return groups
|
|
|
|
def convert_to_industries_format(position_groups):
|
|
"""转换为industries格式"""
|
|
industries = []
|
|
|
|
for group_id, (group_name, positions) in enumerate(position_groups.items()):
|
|
industry = {
|
|
"id": f"visual_design_{group_id + 1}",
|
|
"name": group_name,
|
|
"positions": [],
|
|
"questions": [{
|
|
"id": f"group_q{group_id + 1}",
|
|
"question": f"# 一、专业能力与行业认知",
|
|
"subQuestions": [{
|
|
"id": f"q{group_id + 1}_1",
|
|
"question": f"{group_name}类岗位的核心职责是什么?",
|
|
"answer": f"负责{group_name}相关工作,包括设计规划、创意实现、项目协作等。"
|
|
}]
|
|
}]
|
|
}
|
|
|
|
for pos_id, position in enumerate(positions):
|
|
# 确定岗位等级
|
|
level = position.get('岗位等级标签', '普通岗')
|
|
|
|
# 创建岗位对象
|
|
pos_obj = {
|
|
"id": f"visual_design_{group_id + 1}_{pos_id + 1}",
|
|
"title": position['岗位名称'],
|
|
"level": level,
|
|
"avatar": position.get('简历头像url', ''),
|
|
"department": group_name,
|
|
"type": "全职",
|
|
"experience": "1-3年",
|
|
"education": "大专",
|
|
"salary": "6-12K",
|
|
"location": "苏州",
|
|
"updateTime": "2024-01-20",
|
|
"description": f"负责{position['岗位名称']}相关工作",
|
|
"requirements": [
|
|
f"具备{group_name}专业技能",
|
|
"熟悉相关设计软件",
|
|
"具备良好的沟通协作能力",
|
|
"有创新意识和学习能力"
|
|
]
|
|
}
|
|
|
|
industry["positions"].append(pos_obj)
|
|
|
|
industries.append(industry)
|
|
|
|
return industries
|
|
|
|
def create_resume_templates(visual_data):
|
|
"""创建简历模板数据"""
|
|
templates = {}
|
|
|
|
# 按岗位群分组
|
|
groups = create_position_groups(visual_data)
|
|
|
|
for group_name, positions in groups.items():
|
|
templates[group_name] = []
|
|
|
|
for position in positions:
|
|
template = {
|
|
"id": f"resume_{len(templates[group_name]) + 1}",
|
|
"position": position['岗位名称'],
|
|
"level": position.get('岗位等级标签', '普通岗'),
|
|
"industry": group_name,
|
|
"studentInfo": {
|
|
"name": "张小同",
|
|
"gender": "女",
|
|
"age": 22,
|
|
"education": "大专",
|
|
"major": "数字媒体艺术设计",
|
|
"avatar": position.get('简历头像url', '')
|
|
},
|
|
"content": {
|
|
"original": position.get('简历内容', ''),
|
|
"modified": position.get('简历内容', '')
|
|
},
|
|
"interviewQuestions": position.get('面试题内容', '')
|
|
}
|
|
|
|
templates[group_name].append(template)
|
|
|
|
return templates
|
|
|
|
def create_joblevel_data(visual_data):
|
|
"""创建joblevel.json数据"""
|
|
job_levels = {
|
|
"储备干部岗": [],
|
|
"技术骨干岗": [],
|
|
"普通岗": []
|
|
}
|
|
|
|
# 映射岗位等级
|
|
level_mapping = {
|
|
"储备干部岗": "high",
|
|
"技术骨干岗": "middle",
|
|
"普通岗": "ordinary"
|
|
}
|
|
|
|
for i, position in enumerate(visual_data):
|
|
level_name = position.get('岗位等级标签', '普通岗')
|
|
|
|
job_data = {
|
|
"record_id": f"visual_design_{i + 1}",
|
|
"position_name": position['岗位名称'],
|
|
"img": position.get('简历头像url', '')
|
|
}
|
|
|
|
if level_name in job_levels:
|
|
job_levels[level_name].append(job_data)
|
|
|
|
# 构建最终数据结构
|
|
result = {
|
|
"code": 200,
|
|
"message": "操作成功",
|
|
"data": {}
|
|
}
|
|
|
|
for level_name, positions in job_levels.items():
|
|
level_key = level_mapping.get(level_name, "ordinary")
|
|
result["data"][level_key] = {
|
|
"name": level_name,
|
|
"list": positions
|
|
}
|
|
|
|
return result
|
|
|
|
def update_resume_interview_mock(industries, resume_templates):
|
|
"""更新resumeInterviewMock.js文件"""
|
|
|
|
# 创建完整的mock数据结构
|
|
mock_data = {
|
|
"industries": industries,
|
|
"resumeTemplates": resume_templates,
|
|
"myResume": {
|
|
"name": "张小同",
|
|
"studentId": "2024001",
|
|
"major": "数字媒体艺术设计",
|
|
"education": "大专",
|
|
"avatar": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/butler_position_avatar/default_student.jpeg"
|
|
}
|
|
}
|
|
|
|
# 读取原文件
|
|
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
|
|
content = f.read()
|
|
|
|
# 生成新的数据内容
|
|
js_content = f"""// 简历与面试题Mock数据
|
|
|
|
// 岗位群列表
|
|
const industries = {json.dumps(industries, ensure_ascii=False, indent=2)};
|
|
|
|
// 简历模板数据
|
|
const resumeTemplates = {json.dumps(resume_templates, ensure_ascii=False, indent=2)};
|
|
|
|
// 我的简历数据
|
|
const myResume = {json.dumps(mock_data['myResume'], ensure_ascii=False, indent=2)};
|
|
|
|
// 获取页面数据
|
|
export const getMockPageData = () => {{
|
|
return {{
|
|
industries,
|
|
resumeTemplates,
|
|
myResume
|
|
}};
|
|
}};
|
|
|
|
// 导出各个数据模块
|
|
export {{ industries, resumeTemplates, myResume }};
|
|
"""
|
|
|
|
# 写入文件
|
|
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
|
|
f.write(js_content)
|
|
|
|
print("✅ 已更新 resumeInterviewMock.js")
|
|
|
|
def update_joblevel_json(joblevel_data):
|
|
"""更新joblevel.json文件"""
|
|
with open('src/data/joblevel.json', 'w', encoding='utf-8') as f:
|
|
json.dump(joblevel_data, f, ensure_ascii=False, indent=4)
|
|
|
|
print("✅ 已更新 joblevel.json")
|
|
|
|
def main():
|
|
print("🚀 开始更新视觉设计产业数据...")
|
|
|
|
# 1. 加载视觉设计数据
|
|
print("📖 加载视觉设计岗位数据...")
|
|
visual_data = load_visual_design_data()
|
|
print(f" 共加载 {len(visual_data)} 个岗位")
|
|
|
|
# 2. 创建岗位群分组
|
|
print("📝 创建岗位群分组...")
|
|
position_groups = create_position_groups(visual_data)
|
|
print(f" 共分为 {len(position_groups)} 个岗位群")
|
|
for group_name, positions in position_groups.items():
|
|
print(f" - {group_name}: {len(positions)} 个岗位")
|
|
|
|
# 3. 转换为industries格式
|
|
print("🔄 转换数据格式...")
|
|
industries = convert_to_industries_format(position_groups)
|
|
|
|
# 4. 创建简历模板数据
|
|
resume_templates = create_resume_templates(visual_data)
|
|
|
|
# 5. 创建joblevel数据
|
|
joblevel_data = create_joblevel_data(visual_data)
|
|
|
|
# 6. 更新文件
|
|
print("💾 更新文件...")
|
|
update_resume_interview_mock(industries, resume_templates)
|
|
update_joblevel_json(joblevel_data)
|
|
|
|
print("🎉 数据更新完成!")
|
|
print("\n📊 更新统计:")
|
|
print(f" - 产业数量: {len(industries)}")
|
|
print(f" - 岗位总数: {sum(len(industry['positions']) for industry in industries)}")
|
|
print(f" - 简历模板: {sum(len(templates) for templates in resume_templates.values())}")
|
|
|
|
if __name__ == "__main__":
|
|
main() |