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>
This commit is contained in:
88
frontend_智能开发/scripts/update_mockdata.py
Normal file
88
frontend_智能开发/scripts/update_mockdata.py
Normal file
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import json
|
||||
import re
|
||||
|
||||
# 读取简历映射数据
|
||||
with open('/Users/apple/Documents/cursor/教务系统/frontend/scripts/resume_mapping.json', 'r', encoding='utf-8') as f:
|
||||
position_map = json.load(f)
|
||||
|
||||
# 读取当前的mockData.js文件
|
||||
with open('/Users/apple/Documents/cursor/教务系统/frontend/src/data/mockData.js', 'r', encoding='utf-8') as f:
|
||||
mockdata_lines = f.readlines()
|
||||
|
||||
# 创建一个函数来转义字符串用于JavaScript
|
||||
def escape_for_js(text):
|
||||
# 转义反引号和反斜杠
|
||||
text = text.replace('\\', '\\\\')
|
||||
text = text.replace('`', '\\`')
|
||||
text = text.replace('${', '\\${')
|
||||
return text
|
||||
|
||||
# 更新计数器
|
||||
update_count = 0
|
||||
not_found_positions = []
|
||||
|
||||
# 遍历所有行,找到需要更新的位置
|
||||
i = 0
|
||||
while i < len(mockdata_lines):
|
||||
line = mockdata_lines[i]
|
||||
|
||||
# 查找jobTitle字段
|
||||
if 'jobTitle:' in line:
|
||||
# 提取职位名称
|
||||
match = re.search(r'jobTitle:\s*["\']([^"\']+)["\']', line)
|
||||
if match:
|
||||
job_title = match.group(1)
|
||||
|
||||
# 检查是否有对应的简历数据
|
||||
if job_title in position_map:
|
||||
print(f"更新岗位: {job_title}")
|
||||
update_count += 1
|
||||
|
||||
# 找到resumeContent的起始位置
|
||||
j = i + 1
|
||||
while j < len(mockdata_lines) and 'resumeContent:' not in mockdata_lines[j]:
|
||||
j += 1
|
||||
|
||||
if j < len(mockdata_lines):
|
||||
# 找到resumeContent的结束位置(下一个},)
|
||||
k = j + 1
|
||||
brace_count = 1
|
||||
while k < len(mockdata_lines) and brace_count > 0:
|
||||
if '{' in mockdata_lines[k]:
|
||||
brace_count += mockdata_lines[k].count('{')
|
||||
if '}' in mockdata_lines[k]:
|
||||
brace_count -= mockdata_lines[k].count('}')
|
||||
k += 1
|
||||
|
||||
# 构建新的resumeContent
|
||||
resume_data = position_map[job_title]
|
||||
new_content = []
|
||||
new_content.append(" resumeContent: {\n")
|
||||
new_content.append(f" projectExperience: `{escape_for_js(resume_data['projectExperience'])}`,\n")
|
||||
new_content.append(f" skills: `{escape_for_js(resume_data['skills'])}`,\n")
|
||||
new_content.append(f" personalSummary: `{escape_for_js(resume_data['personalSummary'])}`,\n")
|
||||
new_content.append(" },\n")
|
||||
|
||||
# 替换原有内容
|
||||
mockdata_lines[j:k] = new_content
|
||||
i = j + len(new_content)
|
||||
continue
|
||||
else:
|
||||
not_found_positions.append(job_title)
|
||||
|
||||
i += 1
|
||||
|
||||
# 写回更新后的内容
|
||||
with open('/Users/apple/Documents/cursor/教务系统/frontend/src/data/mockData.js', 'w', encoding='utf-8') as f:
|
||||
f.writelines(mockdata_lines)
|
||||
|
||||
print(f"\n更新完成!")
|
||||
print(f"成功更新了 {update_count} 个岗位的简历数据")
|
||||
|
||||
if not_found_positions:
|
||||
print(f"\n以下 {len(not_found_positions)} 个岗位在简历数据中未找到匹配:")
|
||||
for pos in not_found_positions:
|
||||
print(f" - {pos}")
|
||||
Reference in New Issue
Block a user