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:
81
frontend_大健康/sort_applicable_positions.py
Normal file
81
frontend_大健康/sort_applicable_positions.py
Normal file
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re
|
||||
from datetime import datetime
|
||||
|
||||
# 定义等级排序
|
||||
LEVEL_ORDER = {
|
||||
'普通岗': 1,
|
||||
'技术骨干岗': 2,
|
||||
'储备干部岗': 3
|
||||
}
|
||||
|
||||
def sort_positions(positions_str):
|
||||
"""对适用岗位数组进行排序"""
|
||||
# 匹配所有的岗位对象
|
||||
pattern = r"\{\s*level:\s*['\"]([^'\"]+)['\"]\s*,\s*position:\s*['\"]([^'\"]+)['\"]\s*\}"
|
||||
|
||||
positions = []
|
||||
for match in re.finditer(pattern, positions_str):
|
||||
level = match.group(1)
|
||||
position = match.group(2)
|
||||
positions.append({'level': level, 'position': position})
|
||||
|
||||
# 按等级排序
|
||||
positions.sort(key=lambda x: LEVEL_ORDER.get(x['level'], 999))
|
||||
|
||||
# 生成排序后的字符串
|
||||
sorted_positions = [f"{{ level: '{p['level']}', position: '{p['position']}' }}" for p in positions]
|
||||
return ', '.join(sorted_positions)
|
||||
|
||||
def update_project_library_mock():
|
||||
file_path = 'src/mocks/projectLibraryMock.js'
|
||||
|
||||
# 备份文件
|
||||
backup_path = f'{file_path}.backup_{datetime.now().strftime("%Y%m%d_%H%M%S")}_sorted'
|
||||
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}")
|
||||
|
||||
# 记录处理的项目数
|
||||
count = 0
|
||||
|
||||
# 定义替换函数
|
||||
def replace_positions(match):
|
||||
nonlocal count
|
||||
positions_str = match.group(1)
|
||||
sorted_str = sort_positions(positions_str)
|
||||
count += 1
|
||||
return f"applicablePositions: [{sorted_str}]"
|
||||
|
||||
# 替换所有的applicablePositions
|
||||
updated_content = re.sub(
|
||||
r'applicablePositions:\s*\[(.*?)\]',
|
||||
replace_positions,
|
||||
content,
|
||||
flags=re.DOTALL
|
||||
)
|
||||
|
||||
# 写回文件
|
||||
with open(file_path, 'w', encoding='utf-8') as f:
|
||||
f.write(updated_content)
|
||||
|
||||
print(f"projectLibraryMock.js 更新完成,共排序了 {count} 个项目的适用岗位")
|
||||
|
||||
def main():
|
||||
print("=" * 50)
|
||||
print("开始对项目库中的适用岗位进行排序")
|
||||
print("排序规则:普通岗 -> 技术骨干岗 -> 储备干部岗")
|
||||
print("=" * 50)
|
||||
|
||||
update_project_library_mock()
|
||||
|
||||
print("\n" + "=" * 50)
|
||||
print("排序完成!")
|
||||
print("=" * 50)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user