feat(assets): 素材余量角标 + Step2 过滤已用尽素材 #1547

Closed
opened 2026-08-30 01:06:49 +08:00 by xiaoxia · 1 comment
Owner

背景

后端正在上线片段重复率控制机制(任意两条成片画面重复率 ≤15%、单区间复用上限 3 次)。素材被反复切到彻底用尽后,不应再出现在生成流程的可选列表里。设计原则:素材库是管理视角,余量状态在素材库看;Step2 是选用视角,不能用的素材不显示、选不到。

改动

1. 素材库卡片余量角标(AssetCard)

视频素材卡片 meta 区(StatusPill/时长同一行)增加余量角标:

  • usable === false:红色实心「已用尽」
  • used_ratio >= 0.85:红色软底「即将用尽」
  • used_ratio >= 0.5:橙色软底「已用 xx%」
  • < 0.5 或字段缺失:不显示
  • 角标纯展示,不影响播放/选择/删除/诊断;已用尽素材在素材库正常显示,不置灰不隐藏

2. Step2 手动模式过滤

  • 素材列表过滤掉 usable === false,已用尽素材不出现、无法勾选
  • 库内有素材但全部用尽时,空状态文案为「暂无可选素材(素材可能已用尽,请先上传新素材)」,区别于空库的「暂无素材,请先在视频库中上传」

3. Step2 智能匹配兜底过滤

  • SmartMatch 结果列表、全选/回退逻辑、自动触发判断均过滤已用尽素材(后端推荐接口也会排除,前端这层兜底)
  • 全部用尽时 toast 提示「素材可能已用尽,请先上传新素材」

4. 降级与约束

  • 后端字段未上线前(usable/used_ratio 缺失):所有素材按可用处理、不显示角标、不过滤,不报错/不 toast/不打 error 日志,现有流程零影响
  • 共用工具 isAssetUsable(api/assets/usage.ts)+ 角标计算 getUsageBadge(pages/assets/types.ts)
  • 补 10 条单测(降级/阈值/非视频/优先级),全量 604 条测试通过
  • 不动素材选择、from-assets 调用、草稿保存逻辑;无新依赖

验收

  • 素材库视频卡片按 used_ratio/usable 显示对应角标,非视频/无字段不显示
  • Step2 手动模式不显示已用尽素材;全部用尽时展示区分文案
  • Step2 智能匹配结果/全选不含已用尽素材
  • 后端字段未上线时行为与当前完全一致
  • CI 全绿(tsc / ESLint / vitest)
## 背景 后端正在上线片段重复率控制机制(任意两条成片画面重复率 ≤15%、单区间复用上限 3 次)。素材被反复切到彻底用尽后,不应再出现在生成流程的可选列表里。设计原则:**素材库是管理视角,余量状态在素材库看;Step2 是选用视角,不能用的素材不显示、选不到。** ## 改动 ### 1. 素材库卡片余量角标(AssetCard) 视频素材卡片 meta 区(StatusPill/时长同一行)增加余量角标: - `usable === false`:红色实心「已用尽」 - `used_ratio >= 0.85`:红色软底「即将用尽」 - `used_ratio >= 0.5`:橙色软底「已用 xx%」 - `< 0.5` 或字段缺失:不显示 - 角标纯展示,不影响播放/选择/删除/诊断;已用尽素材在素材库正常显示,不置灰不隐藏 ### 2. Step2 手动模式过滤 - 素材列表过滤掉 `usable === false`,已用尽素材不出现、无法勾选 - 库内有素材但全部用尽时,空状态文案为「暂无可选素材(素材可能已用尽,请先上传新素材)」,区别于空库的「暂无素材,请先在视频库中上传」 ### 3. Step2 智能匹配兜底过滤 - SmartMatch 结果列表、全选/回退逻辑、自动触发判断均过滤已用尽素材(后端推荐接口也会排除,前端这层兜底) - 全部用尽时 toast 提示「素材可能已用尽,请先上传新素材」 ### 4. 降级与约束 - 后端字段未上线前(usable/used_ratio 缺失):所有素材按可用处理、不显示角标、不过滤,不报错/不 toast/不打 error 日志,现有流程零影响 - 共用工具 `isAssetUsable`(api/assets/usage.ts)+ 角标计算 `getUsageBadge`(pages/assets/types.ts) - 补 10 条单测(降级/阈值/非视频/优先级),全量 604 条测试通过 - 不动素材选择、from-assets 调用、草稿保存逻辑;无新依赖 ## 验收 - [ ] 素材库视频卡片按 used_ratio/usable 显示对应角标,非视频/无字段不显示 - [ ] Step2 手动模式不显示已用尽素材;全部用尽时展示区分文案 - [ ] Step2 智能匹配结果/全选不含已用尽素材 - [ ] 后端字段未上线时行为与当前完全一致 - [ ] CI 全绿(tsc / ESLint / vitest)
Author
Owner

误建为 issue,实际 PR 为 #1548,关闭本 issue。

误建为 issue,实际 PR 为 #1548,关闭本 issue。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: xiaoxia/xiaoxia-saas#1547