feat: 实现日历课程点击跳转到直播间功能

- 添加日历课程详情弹窗的点击跳转功能
- 公共课直播间和课程直播间支持URL参数自动选中课程
- 优化岗位详情页面样式,复用简洁卡片样式
- 为岗位详情标题添加图标
- 调整不同类型课程的跳转逻辑

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
KQL
2025-09-11 14:14:45 +08:00
parent 60bd9bb142
commit 561d5c286d
107 changed files with 101383 additions and 478 deletions

63
fix_assistant_designer.py Normal file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import re
# 读取清理后的数据
with open('resume_updates_cleaned.json', 'r', encoding='utf-8') as f:
updates = json.load(f)
# 获取文创产品设计师助理的数据
assistant_data = next((u for u in updates if u['position'] == '文创产品设计师助理'), None)
if not assistant_data:
print("未找到文创产品设计师助理数据")
exit(1)
# 读取文件
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
content = f.read()
# 构建要替换的studentInfo
student_info = assistant_data['studentInfo']
project_exp = student_info['project_experience']
# 转义特殊字符
description = project_exp['description'].replace('`', '\\`').replace('"', '\\"')
personal_summary = student_info['personal_summary'].replace('"', '\\"')
# 构建新的studentInfo内容
new_student_info = f'''{{
project_experience: {{
project_name: "{project_exp['project_name']}",
position: "{project_exp['position']}",
time_period: "{project_exp['time_period']}",
company: "{project_exp['company']}",
description: `{description}`
}},
core_skills: {json.dumps(student_info['core_skills'], ensure_ascii=False, indent=10)},
compound_skills: {json.dumps(student_info['compound_skills'], ensure_ascii=False, indent=10)},
personal_summary: "{personal_summary}"
}}'''
# 查找文创产品设计师助理在resumeTemplates中的位置第三个位置
# 使用更精确的模式来定位第三个实例
pattern = r'(position: "文创产品设计师助理",\s+level: "普通岗",[\s\S]*?studentInfo: )(\{[^}]*(?:\{[^}]*\}[^}]*)*\})'
matches = list(re.finditer(pattern, content))
print(f"找到 {len(matches)} 个匹配")
if len(matches) > 0:
# 使用最后一个匹配应该是在resumeTemplates中的
match = matches[-1]
# 替换studentInfo
new_content = content[:match.start(2)] + new_student_info + content[match.end(2):]
# 保存文件
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
f.write(new_content)
print("✅ 文创产品设计师助理已更新")
else:
print("❌ 未找到正确的替换位置")