主要功能: - 修改RequirementModal支持12个订单班选择 - 添加OrderClassIconMap图标映射组件 - Store中添加selectedOrderClass状态管理 - WorkflowPage支持传递orderClass参数 - web_result添加URL参数切换功能 - 创建order-class-handler.js动态处理页面主题 技术改进: - 创建软链接关联订单班数据目录 - 生成wenlu.json和food.json数据结构 - 删除重复的web_result目录 - 添加测试页面test-order-class.html 影响范围: - 展会策划系统现支持12个订单班 - 结果展示页面自动适配不同订单班主题 - 用户可选择不同行业生成对应方案 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
139 lines
6.3 KiB
Python
139 lines
6.3 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
彻底修复所有订单班的图片路径问题
|
|
"""
|
|
|
|
import re
|
|
from pathlib import Path
|
|
from urllib.parse import unquote
|
|
|
|
def get_image_mapping(order_class: str, image_dir: Path):
|
|
"""获取订单班的图片映射关系"""
|
|
mappings = {}
|
|
|
|
if order_class == "环保":
|
|
mappings = {
|
|
"去除印章.png": "图片_06.jpg",
|
|
"%E5%8E%BB%E9%99%A4%E5%8D%B0%E7%AB%A0.png": "图片_06.jpg"
|
|
}
|
|
elif order_class == "视觉设计":
|
|
# 视觉设计的映射
|
|
mappings = {
|
|
"一、项目概述1.png": "图片_01.jpg",
|
|
"一、项目概述2.png": "图片_02.jpg",
|
|
"二、宣传目标1.png": "图片_06.jpg",
|
|
"二、宣传目标2.png": "图片_07.jpg",
|
|
"三、影片视觉基调1.png": "图片_03.jpg",
|
|
"三、影片视觉基调2.png": "图片_04.jpg",
|
|
"三、影片视觉基调3.png": "图片_05.jpg",
|
|
"四、影片内容大纲1.png": "图片_11.jpg",
|
|
"四、影片内容大纲2.png": "图片_15.jpg",
|
|
"四、影片内容大纲3.png": "图片_16.jpg",
|
|
"四、影片内容大纲4.png": "图片_17.jpg",
|
|
"四、影片内容大纲5.png": "图片_18.jpg",
|
|
"四、影片内容大纲6.png": "图片_19.jpg",
|
|
"四、影片内容大纲7.png": "图片_20.jpg",
|
|
"四、影片内容大纲8.png": "图片_21.jpg",
|
|
"四、影片内容大纲9.png": "图片_22.jpg",
|
|
"四、影片内容大纲10.png": "图片_12.jpg",
|
|
"四、影片内容大纲11.jpeg": "图片_13.jpg",
|
|
"四、影片内容大纲12.png": "图片_14.jpg",
|
|
"五、拍摄经费预算表.jpeg": "图片_08.jpg",
|
|
"六、拍摄总体安排1.png": "图片_09.jpg",
|
|
"六、拍摄总体安排2.jpeg": "图片_10.jpg",
|
|
# URL编码版本
|
|
"%E4%B8%80%E3%80%81%E9%A1%B9%E7%9B%AE%E6%A6%82%E8%BF%B01.png": "图片_01.jpg",
|
|
"%E4%B8%80%E3%80%81%E9%A1%B9%E7%9B%AE%E6%A6%82%E8%BF%B02.png": "图片_02.jpg",
|
|
"%E4%BA%8C%E3%80%81%E5%AE%A3%E4%BC%A0%E7%9B%AE%E6%A0%871.png": "图片_06.jpg",
|
|
"%E4%BA%8C%E3%80%81%E5%AE%A3%E4%BC%A0%E7%9B%AE%E6%A0%872.png": "图片_07.jpg",
|
|
"%E4%B8%89%E3%80%81%E5%BD%B1%E7%89%87%E8%A7%86%E8%A7%89%E5%9F%BA%E8%B0%831.png": "图片_03.jpg",
|
|
"%E4%B8%89%E3%80%81%E5%BD%B1%E7%89%87%E8%A7%86%E8%A7%89%E5%9F%BA%E8%B0%832.png": "图片_04.jpg",
|
|
"%E4%B8%89%E3%80%81%E5%BD%B1%E7%89%87%E8%A7%86%E8%A7%89%E5%9F%BA%E8%B0%833.png": "图片_05.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B21.png": "图片_11.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B22.png": "图片_15.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B23.png": "图片_16.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B24.png": "图片_17.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B25.png": "图片_18.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B26.png": "图片_19.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B27.png": "图片_20.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B28.png": "图片_21.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B29.png": "图片_22.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B210.png": "图片_12.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B211.jpeg": "图片_13.jpg",
|
|
"%E5%9B%9B%E3%80%81%E5%BD%B1%E7%89%87%E5%86%85%E5%AE%B9%E5%A4%A7%E7%BA%B212.png": "图片_14.jpg",
|
|
"%E4%BA%94%E3%80%81%E6%8B%8D%E6%91%84%E7%BB%8F%E8%B4%B9%E9%A2%84%E7%AE%97%E8%A1%A8.jpeg": "图片_08.jpg",
|
|
"%E5%85%AD%E3%80%81%E6%8B%8D%E6%91%84%E6%80%BB%E4%BD%93%E5%AE%89%E6%8E%921.png": "图片_09.jpg",
|
|
"%E5%85%AD%E3%80%81%E6%8B%8D%E6%91%84%E6%80%BB%E4%BD%93%E5%AE%89%E6%8E%922.jpeg": "图片_10.jpg"
|
|
}
|
|
|
|
return mappings
|
|
|
|
def fix_markdown_file(md_file: Path, mappings: dict):
|
|
"""修复单个Markdown文件"""
|
|
try:
|
|
content = md_file.read_text(encoding='utf-8')
|
|
original_content = content
|
|
|
|
# 替换所有映射
|
|
for old_name, new_name in mappings.items():
|
|
# 替换各种可能的格式
|
|
patterns = [
|
|
f'](./image/{old_name})',
|
|
f']({old_name})',
|
|
f'](image/{old_name})',
|
|
f'](./image/{old_name.replace(" ", "%20")})',
|
|
]
|
|
|
|
for pattern in patterns:
|
|
if pattern in content:
|
|
content = content.replace(pattern, f'](./image/{new_name})')
|
|
|
|
# 保存修改
|
|
if content != original_content:
|
|
md_file.write_text(content, encoding='utf-8')
|
|
return True
|
|
except Exception as e:
|
|
print(f" ✗ 错误: {e}")
|
|
return False
|
|
return False
|
|
|
|
def main():
|
|
"""主函数"""
|
|
base_path = Path("/Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/data/订单班文档资料")
|
|
|
|
# 需要修复的订单班
|
|
order_classes = ["环保", "视觉设计"]
|
|
|
|
print("=" * 60)
|
|
print("彻底修复URL编码路径问题")
|
|
print("=" * 60)
|
|
|
|
for order_class in order_classes:
|
|
order_dir = base_path / order_class
|
|
if not order_dir.exists():
|
|
continue
|
|
|
|
notion_dir = order_dir / "notion文稿"
|
|
if not notion_dir.exists():
|
|
continue
|
|
|
|
image_dir = notion_dir / "image"
|
|
|
|
print(f"\n处理 {order_class}...")
|
|
|
|
# 获取映射关系
|
|
mappings = get_image_mapping(order_class, image_dir)
|
|
|
|
# 修复所有MD文件
|
|
for md_file in notion_dir.glob("*.md"):
|
|
if md_file.name == "图片索引.md":
|
|
continue
|
|
|
|
if fix_markdown_file(md_file, mappings):
|
|
print(f" ✓ 修复: {md_file.name}")
|
|
|
|
print("\n" + "=" * 60)
|
|
print("✅ 修复完成!")
|
|
|
|
if __name__ == "__main__":
|
|
main() |