feat: 实现日历课程点击跳转到直播间功能
- 添加日历课程详情弹窗的点击跳转功能 - 公共课直播间和课程直播间支持URL参数自动选中课程 - 优化岗位详情页面样式,复用简洁卡片样式 - 为岗位详情标题添加图标 - 调整不同类型课程的跳转逻辑 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
91
update_project_library_levels.py
Normal file
91
update_project_library_levels.py
Normal file
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import json
|
||||
import re
|
||||
from datetime import datetime
|
||||
|
||||
# 读取岗位等级数据
|
||||
def load_job_levels():
|
||||
with open('网页未导入数据/文旅产业/岗位等级.json', 'r', encoding='utf-8') as f:
|
||||
data = json.load(f)
|
||||
|
||||
# 创建岗位名称到等级的映射
|
||||
job_levels_map = {}
|
||||
for item in data:
|
||||
job_name = item['❌岗位名称']
|
||||
level = item['前端查询名称']
|
||||
job_levels_map[job_name] = level
|
||||
|
||||
return job_levels_map
|
||||
|
||||
# 更新projectLibraryMock.js文件中的applicablePositions
|
||||
def update_project_library_mock(job_levels_map):
|
||||
file_path = 'src/mocks/projectLibraryMock.js'
|
||||
|
||||
# 备份文件
|
||||
backup_path = f'{file_path}.backup_{datetime.now().strftime("%Y%m%d_%H%M%S")}_levels'
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
with open(backup_path, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
print(f"已备份: {backup_path}")
|
||||
|
||||
# 定义一个函数来更新单个applicablePositions数组
|
||||
def update_positions_array(match):
|
||||
positions_str = match.group(1)
|
||||
# 匹配所有的岗位对象
|
||||
pattern = r"\{\s*level:\s*['\"]([^'\"]+)['\"]\s*,\s*position:\s*['\"]([^'\"]+)['\"]\s*\}"
|
||||
|
||||
updated_positions = []
|
||||
for pos_match in re.finditer(pattern, positions_str):
|
||||
old_level = pos_match.group(1)
|
||||
position_name = pos_match.group(2)
|
||||
|
||||
# 查找正确的等级
|
||||
if position_name in job_levels_map:
|
||||
new_level = job_levels_map[position_name]
|
||||
updated_positions.append(f"{{ level: '{new_level}', position: '{position_name}' }}")
|
||||
if old_level != new_level:
|
||||
print(f" 更新: {position_name}: {old_level} -> {new_level}")
|
||||
else:
|
||||
# 保持原样
|
||||
updated_positions.append(f"{{ level: '{old_level}', position: '{position_name}' }}")
|
||||
print(f" 未找到匹配: {position_name}")
|
||||
|
||||
return f"applicablePositions: [{', '.join(updated_positions)}]"
|
||||
|
||||
# 更新所有的applicablePositions
|
||||
updated_content = re.sub(
|
||||
r'applicablePositions:\s*\[(.*?)\]',
|
||||
update_positions_array,
|
||||
content,
|
||||
flags=re.DOTALL
|
||||
)
|
||||
|
||||
# 写回文件
|
||||
with open(file_path, 'w', encoding='utf-8') as f:
|
||||
f.write(updated_content)
|
||||
|
||||
print(f"projectLibraryMock.js 更新完成")
|
||||
|
||||
# 主函数
|
||||
def main():
|
||||
print("=" * 50)
|
||||
print("开始更新项目库中的岗位等级数据")
|
||||
print("=" * 50)
|
||||
|
||||
# 加载岗位等级映射
|
||||
job_levels_map = load_job_levels()
|
||||
print(f"已加载 {len(job_levels_map)} 个岗位等级映射\n")
|
||||
|
||||
# 更新文件
|
||||
print("更新项目库Mock数据...")
|
||||
update_project_library_mock(job_levels_map)
|
||||
|
||||
print("\n" + "=" * 50)
|
||||
print("所有更新完成!")
|
||||
print("=" * 50)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user