spec.md 3.84 KB

功能性缺陷修复规范

ADDED Requirements

Requirement: 款式设计生成的图片应保存到历史记录

款式设计标签页生成的图片 SHALL 自动保存到历史记录,与图片生成标签页保持一致。

Scenario: 用户使用款式设计生成图片

Given 用户在款式设计标签页选择了珠宝元素 When 用户点击生成按钮且图片生成成功 Then 生成的图片应保存到历史记录 And 历史记录应包含完整的生成参数(prompt、宽高比、尺寸、模型) And 用户切换到历史记录标签页应能看到新生成的记录

Scenario: 从历史记录加载款式设计图片

Given 历史记录中包含款式设计生成的图片 When 用户点击该历史记录项 Then 应显示生成的图片和完整的prompt And 应显示生成时间、宽高比、图片尺寸 And 参考图片区域应为空(因为款式设计无参考图)

Requirement: 珠宝元素添加功能应正常工作

用户 SHALL 能成功添加自定义珠宝元素到词库。

Scenario: 用户添加新的珠宝元素

Given 用户在款式设计页面选择了某个类别(如"金属") When 用户点击该类别的"添加"按钮 Then 应弹出输入对话框 And 用户输入词条(如"玫瑰金")并确认 Then 词条应成功添加到词库 And 下拉框应刷新并显示新添加的词条 And 应显示成功提示消息

Scenario: 添加空值或重复词条

Given 用户点击"添加"按钮 When 用户输入空字符串或已存在的词条 Then 应显示警告消息 And 不应添加到词库

Requirement: 珠宝元素删除功能应正常工作

用户 SHALL 能成功删除自定义添加的珠宝元素。

Scenario: 用户删除珠宝元素

Given 某个类别的下拉框中选中了一个词条 When 用户点击该类别的"删除"按钮 Then 应弹出确认对话框 And 用户确认后,词条应从词库中移除 And 下拉框应刷新并移除该词条 And 应显示成功提示消息

Scenario: 尝试删除空选项

Given 某个类别的下拉框选中空选项 When 用户点击"删除"按钮 Then 应显示提示消息"请先选择要删除的词库项" And 不应执行删除操作

MODIFIED Requirements

Requirement: JewelryLibraryManager应支持词库字段拆分

JewelryLibraryManager SHALL 扩展以支持主石字段的拆分,同时保持向后兼容。

Scenario: 加载默认词库

Given 应用启动并初始化 JewelryLibraryManager When 系统加载默认词库 Then 应包含"主石形状"字段,包含: 圆形、方形、椭圆形、水滴形、心形、祖母绿形、雷迪恩形、公主方形 And 应包含"主石材质"字段,包含: 钻石、蓝宝石、红宝石、祖母绿、碧玺、摩根石、海蓝宝石、紫水晶 And 不应再包含混合的"主石"字段

Scenario: 迁移旧版词库数据

Given 系统检测到旧版 jewelry_library.json 包含"主石"字段 When 应用加载词库 Then 应尝试解析每个"主石"词条(如"圆形钻石") And 提取形状部分到"主石形状" And 提取材质部分到"主石材质" And 如果解析失败,应使用默认词库

Requirement: PromptAssembler应支持组合字段

PromptAssembler SHALL 更新以正确处理拆分后的主石字段。

Scenario: 组装包含主石的prompt

Given 用户选择了"主石形状"为"圆形","主石材质"为"钻石" When PromptAssembler.assemble() 被调用 Then 应将两者组合为"圆形钻石" And 组合后的文本应正确插入到prompt中

Scenario: 处理部分空选项

Given 用户选择了"主石形状"为"圆形",但"主石材质"为空 When PromptAssembler.assemble() 被调用 Then 应只使用"圆形"(忽略空值) And prompt应保持有效