前端:Step2 素材库按 kind=video 过滤,并自动过滤/回退失效模板 #1777

Closed
opened 2026-09-07 22:06:11 +08:00 by xiaoxia · 0 comments
Owner

背景

  • Step2 素材库选择器中,apps/web/src/pages/generate/hooks/step2-materials/useMaterialLibrary.ts 调用 getAssetLibraries() 时未传 kind,导致视频库下拉混入配音库、图片库。
  • apps/web/src/pages/generate/hooks/useGenerateFormState/useTemplateSelection.ts 当前自动选择 userTemplates[0],没有过滤 inactive、已删除或无片段配置的模板;选中失效模板后页面会卡死。
  • 后端模板不存在将统一返回 404,详见 #1774。

修复要求

  1. Step2 视频素材库过滤:视频库选择器请求 getAssetLibraries({ kind: 'video' }) 或等价参数,只展示视频素材库;配音、图片素材只能出现在各自对应入口。
  2. 模板有效性过滤:自动选择模板前过滤 inactive、已删除、无片段配置或后端标记为无效的模板;如果模板列表字段不足,与后端 #1774 对齐字段,不允许前端猜测。
  3. 失效模板自动回退
    • 当前选中模板创建片段返回 404:清除失效选择,自动切换到第一个有效模板,并提示“原模板已失效,已自动切换”。
    • 返回 400/422 且原因是模板未配置片段:同样标记为无效并回退。
    • 没有有效模板时展示明确空状态,不让用户停在无响应状态。
  4. 用户手动选择的模板优先级高于自动选择;不得把失效模板 ID 持久化到本地状态。
  5. 补充组件/hook 测试,并完成手测。

重点文件

  • apps/web/src/pages/generate/hooks/step2-materials/useMaterialLibrary.ts
  • apps/web/src/pages/generate/hooks/useGenerateFormState/useTemplateSelection.ts
  • apps/web/src/api/ 下素材库和模板相关 API 类型/调用
  • Step2 素材库选择器、Generate 页模板选择相关组件

验收标准

  • Step2 视频库下拉只显示视频素材库,不显示配音库/图片库。
  • 已删除/inactive/无片段配置模板不会被自动选中。
  • 选中已删除模板后接口返回 404,页面自动切换到有效模板并提示,不卡死。
  • 手动选择模板后刷新/重新进入页面的行为符合现有产品逻辑,不回退到无效模板。
  • PR 目标分支为 develop,禁止合并 main
## 背景 - Step2 素材库选择器中,`apps/web/src/pages/generate/hooks/step2-materials/useMaterialLibrary.ts` 调用 `getAssetLibraries()` 时未传 `kind`,导致视频库下拉混入配音库、图片库。 - `apps/web/src/pages/generate/hooks/useGenerateFormState/useTemplateSelection.ts` 当前自动选择 `userTemplates[0]`,没有过滤 inactive、已删除或无片段配置的模板;选中失效模板后页面会卡死。 - 后端模板不存在将统一返回 404,详见 #1774。 ## 修复要求 1. **Step2 视频素材库过滤**:视频库选择器请求 `getAssetLibraries({ kind: 'video' })` 或等价参数,只展示视频素材库;配音、图片素材只能出现在各自对应入口。 2. **模板有效性过滤**:自动选择模板前过滤 inactive、已删除、无片段配置或后端标记为无效的模板;如果模板列表字段不足,与后端 #1774 对齐字段,不允许前端猜测。 3. **失效模板自动回退**: - 当前选中模板创建片段返回 404:清除失效选择,自动切换到第一个有效模板,并提示“原模板已失效,已自动切换”。 - 返回 400/422 且原因是模板未配置片段:同样标记为无效并回退。 - 没有有效模板时展示明确空状态,不让用户停在无响应状态。 4. 用户手动选择的模板优先级高于自动选择;不得把失效模板 ID 持久化到本地状态。 5. 补充组件/hook 测试,并完成手测。 ## 重点文件 - `apps/web/src/pages/generate/hooks/step2-materials/useMaterialLibrary.ts` - `apps/web/src/pages/generate/hooks/useGenerateFormState/useTemplateSelection.ts` - `apps/web/src/api/` 下素材库和模板相关 API 类型/调用 - Step2 素材库选择器、Generate 页模板选择相关组件 ## 验收标准 - Step2 视频库下拉只显示视频素材库,不显示配音库/图片库。 - 已删除/inactive/无片段配置模板不会被自动选中。 - 选中已删除模板后接口返回 404,页面自动切换到有效模板并提示,不卡死。 - 手动选择模板后刷新/重新进入页面的行为符合现有产品逻辑,不回退到无效模板。 - PR 目标分支为 `develop`,禁止合并 `main`。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: xiaoxia/xiaoxia-saas#1777