tasks.md
6.45 KB
任务分解 - 优化款式设计标签页
任务顺序
Phase 1: 数据结构调整(优先级:高)
-
Task 1.1: 拆分主石词库字段
- 修改
JewelryLibraryManager默认词库结构 - 将 "主石" 拆分为 "主石形状" 和 "主石材质"
- 提取现有数据的形状和材质部分
- 验证: 打印新词库结构,确认数据完整性
- 依赖: 无
- 可并行: 否
- 修改
-
Task 1.2: 更新 PromptAssembler 兼容新字段
- 修改
PromptAssembler.assemble()方法 - 处理 "主石形状" + "主石材质" 的组合逻辑
- 向后兼容旧的 "主石" 字段(如果存在)
- 验证: 单元测试不同组合的prompt输出
- 依赖: Task 1.1
- 可并行: 否
- 修改
Phase 2: UI布局重构(优先级:高)
-
Task 2.1: 统一款式设计下半部分结构
- 对比
setup_generation_tab()(line 1286) 和StyleDesignerTab.setup_ui()(line 2802) - 调整款式设计的布局顺序和组件结构,使其与图片生成一致
- 确保"生成设置"、"生成按钮"、"结果展示"的排列顺序相同
- 验证: 视觉对比两个页面
- 依赖: 无
- 可并行: 可与 Task 2.2 并行
- 对比
-
Task 2.2: 优化珠宝元素选择布局(每行两列)
- 重构
create_field_widget()方法 - 使用 QGridLayout 替代当前的逐行 QVBoxLayout
- 每行放置两个字段(标签+下拉框+操作按钮)
- 缩短下拉框宽度,缩小按钮尺寸
- 验证: 调整窗口大小,确认响应式布局正常
- 依赖: Task 1.1(需要知道最终字段数量)
- 可并行: 可与 Task 2.1 并行
- 重构
-
Task 2.3: 调整文字行高至18px
- 为所有 QLabel 设置统一样式:
font-size: 14px; line-height: 18px; - 检查表单标签、提示文字、状态标签
- 验证: 视觉检查文字间距是否合理
- 依赖: 无
- 可并行: 可随时执行
- 为所有 QLabel 设置统一样式:
-
Task 2.4: 移除单个类别的"恢复默认"按钮
- 从
create_field_widget()移除 reset_btn - 保留全局的 "恢复所有默认词库" 按钮
- 验证: 确认每行只有"添加"和"删除"按钮
- 依赖: 无
- 可并行: 可与 Task 2.2 同时修改
- 从
Phase 3: 隐藏敏感信息(优先级:中)
-
Task 3.1: 隐藏模型选择器
- 从
settings_group(line 2846) 移除模型下拉框和标签 - 硬编码使用默认模型 "imagen-3.0-generate-002"
- 验证: 确认UI中不显示模型选项
- 依赖: 无
- 可并行: 是
- 从
Phase 4: 改进生成交互(优先级:高)
-
Task 4.1: 替换模态遮罩为非阻塞状态提示
- 移除
generate_image()(line 3075) 中的 QMessageBox 模态对话框 - 在
status_label(类似图片生成页 line 1425) 显示 "● 生成中..." - 禁用生成按钮,防止重复点击
- 在回调中恢复状态
- 验证: 生成过程中可以切换标签页、查看历史记录
- 依赖: 无
- 可并行: 否
- 移除
-
Task 4.2: 修复预览图片显示不全问题
- 检查
result_label(line 2893) 的缩放逻辑 - 确保使用
Qt.KeepAspectRatio且不裁剪 - 调整
result_label的minimumHeight和布局策略 - 验证: 测试不同宽高比的图片是否完整显示
- 依赖: 无
- 可并行: 是
- 检查
Phase 5: 历史记录集成(优先级:高)
-
Task 5.1: 将款式设计生成结果保存到历史记录
- 在
on_generation_success()(line 3119) 中调用parent_window.history_manager.add_item() - 构造 HistoryItem 对象,包含:
- timestamp
- prompt
- generated_image_path (保存到临时目录)
- reference_image_paths (款式设计无参考图,传空列表)
- aspect_ratio, image_size, model
- 验证: 生成后切换到历史记录页,确认出现新记录
- 依赖: 无
- 可并行: 否
- 在
Phase 6: 添加随机参数生成功能(优先级:中)
-
Task 6.1: 实现随机参数生成方法
- 在
StyleDesignerTab类中添加randomize_parameters()方法 - 遍历
self.combo_boxes字典,为每个下拉框设置随机索引 - 确保处理空下拉框的边界情况
- 调用
update_prompt_preview()更新prompt预览 - 添加import语句:
import random - 验证: 单元测试随机生成的结果分布合理
- 依赖: 无
- 可并行: 是
- 在
-
Task 6.2: 添加随机生成按钮到UI
- 在"恢复所有默认词库"按钮旁添加"
随机生成参数"按钮 - 设置按钮样式与恢复按钮保持一致(仅图标和文字不同)
- 绑定点击事件到
randomize_parameters()方法 - 验证: 视觉检查按钮位置和样式
- 依赖: Task 6.1
- 可并行: 与其他UI任务并行
- 在"恢复所有默认词库"按钮旁添加"
Phase 7: 修复珠宝元素添加功能(优先级:高)
-
Task 7.1: 调试并修复
add_library_item()方法- 检查
QMessageBox.getText()是否正确工作(替代方案:使用QInputDialog.getText()) - 验证
library_manager.add_item()是否抛出异常 - 确认
refresh_combo_box()正确刷新下拉框 - 添加日志记录,追踪添加流程
- 验证: 手动添加词库项,确认出现在下拉框中
- 依赖: 无
- 可并行: 是
- 检查
-
Task 7.2: 测试删除功能
- 验证
remove_library_item()方法正常工作 - 确认删除后下拉框正确刷新
- 验证: 删除已选择的词库项
- 依赖: Task 6.1
- 可并行: 否
- 验证
Phase 8: 测试与验证(优先级:高)
-
Task 8.1: 集成测试
- 测试完整生成流程:选择元素 → 生成图片 → 保存历史记录
- 测试词库管理:添加 → 选择 → 删除 → 恢复默认
- 测试随机生成:点击随机按钮多次,验证每次生成不同组合
- 测试UI一致性:对比款式设计和图片生成页面
- 验证: 所有功能正常,无回归问题
- 依赖: 所有前置任务
- 可并行: 否
-
Task 8.2: UI回归测试
- 测试原有图片生成功能是否受影响
- 测试历史记录显示和加载
- 测试不同分辨率下的布局
- 验证: 原有功能100%正常
- 依赖: Task 7.1
- 可并行: 否
关键路径
Task 1.1 → Task 1.2 → Task 2.2 → Task 6.1 → Task 6.2 → Task 8.1 → Task 8.2
↓
Task 5.1
并行执行建议
- Phase 2 (Task 2.1, 2.2, 2.3, 2.4) 可部分并行
- Phase 3 (Task 3.1, 3.2) 可完全并行
- Phase 6 (Task 6.1, 6.2) 可与其他任务并行
- Task 4.2, 7.1 可与其他任务并行
预估工作量
- Phase 1: 2小时
- Phase 2: 3小时
- Phase 3: 0.5小时
- Phase 4: 2小时
- Phase 6: 1.5小时
- Phase 7: 1.5小时
- Phase 8: 1.5小时
总计: 约13.5小时(可通过并行执行压缩至9小时)