tasks.md 7.04 KB

Tasks: Add Style Designer Tab

Overview

按照 Linus 式原则:简洁、直接、零破坏性。所有任务都面向可验证的用户价值。


Phase 1: 数据层基础设施

:white_check_mark: Task 1.1: 定义默认珠宝词库常量

  • 目标:在代码中定义 DEFAULT_JEWELRY_LIBRARY 字典
  • 验收
    • 包含 7 个类别的完整词库
    • 每个类别包含中英文标签
    • 每个词库项包含 valuelabel_cn
  • 文件image_generator.py 或新建 jewelry_lib.py

:white_check_mark: Task 1.2: 实现 JewelryLibraryManager

  • 目标:实现词库加载、保存、增删改逻辑
  • 验收
    • load_library() 能从 JSON 加载,不存在时创建默认词库
    • save_library() 能保存到 JSON
    • add_item() / remove_item() 能修改词库
    • reset_to_default() 能恢复默认词库
  • 依赖:Task 1.1
  • 文件image_generator.py 或新建 jewelry_lib.py

:white_check_mark: Task 1.3: 实现 PromptAssembler

  • 目标:实现智能 prompt 组装逻辑
  • 验收
    • 所有字段都填时,生成完整 prompt
    • CENTER_STONE 为空时,调整句式
    • 其他字段为空时,移除对应句段
    • 连接词正确(无多余逗号)
  • 测试用例
    • 全空:返回基础框架
    • 仅主石为空:验证句式调整
    • 随机组合:验证逻辑健壮性
  • 文件image_generator.py 或新建 jewelry_lib.py

Phase 2: UI 基础框架

:white_check_mark: Task 2.1: 创建 StyleDesignerTab 类

  • 目标:创建基础的 Tab 容器类
  • 验收
    • 继承自 QWidget
    • 接受 JewelryLibraryManager 作为参数
    • 基础布局框架(垂直布局)
  • 依赖:Task 1.2
  • 文件image_generator.py

:white_check_mark: Task 2.2: 在 MainWindow 中插入新 Tab

  • 目标:在"图片生成"和"历史记录"之间插入"款式设计"
  • 验收
    • Tab 顺序:图片生成 → 款式设计 → 历史记录
    • Tab 标签显示为"款式设计"
    • 点击 Tab 能正常切换
  • 位置ImageGeneratorWindow.setup_ui() 方法,约 1260 行
  • 依赖:Task 2.1
  • 文件image_generator.py:1246-1273

Phase 3: 表单 UI 实现

:white_check_mark: Task 3.1: 实现单个字段的 UI 组件

  • 目标:创建 create_field_widget() 方法
  • 验收
    • 包含中文标签
    • ComboBox 显示中文选项
    • "添加" 按钮
    • "删除" 按钮
    • 选项变化时触发 prompt 预览更新
  • 依赖:Task 2.1
  • 文件StyleDesignerTab

:white_check_mark: Task 3.2: 创建 7 个字段的表单区域

  • 目标:在 setup_ui() 中循环创建 7 个字段
  • 验收
    • 7 个字段按顺序排列
    • 每个字段加载对应词库项
    • 布局清晰,标签对齐
  • 依赖:Task 3.1
  • 文件StyleDesignerTab.setup_ui()

:white_check_mark: Task 3.3: 实现 Prompt 预览区

  • 目标:实时显示组装后的 prompt
  • 验收
    • 使用只读 QTextEdit
    • 任意字段变化时自动更新
    • 显示完整的英文 prompt
  • 依赖:Task 1.3, Task 3.2
  • 文件StyleDesignerTab.setup_ui()

Phase 4: 词库管理 UI

:white_check_mark: Task 4.1: 实现"添加词库项"对话框

  • 目标:点击"添加"按钮弹出对话框
  • 验收
    • 输入英文值(value)
    • 输入中文标签(label_cn)
    • 验证非空
    • 保存到词库并刷新 ComboBox
  • 依赖:Task 3.1
  • 文件StyleDesignerTab.add_library_item()

:white_check_mark: Task 4.2: 实现"删除词库项"功能

  • 目标:点击"删除"按钮移除当前选中项
  • 验收
    • 确认对话框(防止误删)
    • 从词库移除
    • 刷新 ComboBox
    • 如果删除的是当前选中项,清空选择
  • 依赖:Task 3.1
  • 文件StyleDesignerTab.remove_library_item()

:white_check_mark: Task 4.3: 实现"恢复默认词库"功能

  • 目标:添加"恢复默认词库"按钮
  • 验收
    • 确认对话框(警告会覆盖自定义词库)
    • 调用 reset_to_default()
    • 刷新所有 ComboBox
  • 依赖:Task 1.2, Task 3.2
  • 文件StyleDesignerTab.reset_library()

Phase 5: 生成功能集成

:white_check_mark: Task 5.1: 添加生成设置区域

  • 目标:复用现有的宽高比、尺寸、模型选择
  • 验收
    • UI 与"图片生成" Tab 一致
    • 默认值合理(如 1:1 / 2K)
  • 依赖:Task 2.1
  • 文件StyleDesignerTab.setup_ui()

:white_check_mark: Task 5.2: 实现"生成"按钮

  • 目标:调用现有文生图 API
  • 验收
    • 组装 prompt 并发送给 API
    • 显示进度条
    • 成功后显示图片
    • 失败时显示错误信息
  • 复用ImageGeneratorWindow.generate_image() 逻辑
  • 依赖:Task 1.3, Task 5.1
  • 文件StyleDesignerTab.generate_image()

:white_check_mark: Task 5.3: 实现结果展示区

  • 目标:显示生成的图片
  • 验收
    • 图片自适应大小
    • 提供下载按钮
    • 提供预览按钮
  • 复用:现有图片展示逻辑
  • 依赖:Task 5.2
  • 文件StyleDesignerTab.setup_ui()

Phase 6: 测试与验证

:white_check_mark: Task 6.1: 功能测试

  • 场景 1:所有字段为空 → 验证 prompt 合理性
  • 场景 2:仅主石为空 → 验证句式调整
  • 场景 3:添加自定义词库项 → 验证持久化
  • 场景 4:删除词库项 → 验证删除逻辑
  • 场景 5:恢复默认词库 → 验证恢复逻辑
  • 场景 6:生成图片 → 验证 API 调用

:white_check_mark: Task 6.2: 边界测试

  • 场景 1:配置文件损坏 → 验证回退到默认词库
  • 场景 2:配置文件不存在 → 验证自动创建
  • 场景 3:快速切换字段 → 验证 UI 无卡顿

:white_check_mark: Task 6.3: 兼容性测试

  • 场景 1:现有"图片生成"功能不受影响
  • 场景 2:现有"历史记录"功能不受影响
  • 场景 3:配置文件加载不冲突

Phase 7: 优化与文档

:white_check_mark: Task 7.1: 代码审查

  • 目标:Linus 式代码审查
  • 检查点
    • 是否有重复代码?→ 抽取公共方法
    • 是否有特殊情况分支?→ 简化数据结构
    • 是否有超过 3 层缩进?→ 重构
    • 是否破坏向后兼容?→ 回退修改

:white_check_mark: Task 7.2: 用户文档

  • 目标:更新用户手册
  • 内容
    • 如何使用"款式设计"功能
    • 如何添加/删除词库项
    • 如何恢复默认词库
  • 文件USER_GUIDE.md

Task Dependencies Graph

Phase 1 (数据层):
  1.1 → 1.2 → 1.3

Phase 2 (UI框架):
  1.2 → 2.1 → 2.2

Phase 3 (表单UI):
  2.1 → 3.1 → 3.2 → 3.3
         ↓
        1.3

Phase 4 (词库管理):
  3.1 → 4.1, 4.2
  1.2, 3.2 → 4.3

Phase 5 (生成功能):
  2.1 → 5.1 → 5.2 → 5.3
         ↓
        1.3

Phase 6 (测试):
  所有前置任务完成 → 6.1, 6.2, 6.3

Phase 7 (优化):
  6.* → 7.1 → 7.2

Estimated Effort

Phase 任务数 预估难度
Phase 1 3 简单
Phase 2 2 简单
Phase 3 3 中等
Phase 4 3 中等
Phase 5 3 简单(复用现有逻辑)
Phase 6 3 简单
Phase 7 2 简单

总计:19 个任务


任务清单完成日期:2025-12-10