Skip to content

feat: 实现项目资产库页面(Refs #37 §3.1.1) #101

Description

@xyh202131

问题

#37 §3.1.1 将资产库定义为正式角色资产的长期管理入口,但当前项目中没有可用的 Asset Library 页面。生成候选、WorkflowRun 中间结果和 Playtest 核验记录也缺少明确边界,容易被误当成正式资产展示。

目标

实现项目级 Asset Library,只读取已经写入 Character 后端记录的角色、造型与动作,并提供进入 Playtest 和继续生成动作的入口。

范围

包含:

  • 路由页面 /projects/:projectId/assets
  • 通过 CharacterApis.listByProject(projectId) 读取正式 Character 树
  • 角色与造型侧栏、当前造型母版和动作列表
  • 动作名称、类型、FPS、帧数与预览
  • 使用稳定 characterId、outfitId、actionId 打开 Playtest
  • 没有动作的正式角色仍可展示,并提供生成动作入口
  • 加载、空状态、请求失败、图片失败与组件测试

不包含:

  • WorkflowRun 历史、生成候选和 Playtest 核验结论
  • Character Entity、API 适配器或后端改动
  • 动作生成页面、Workflow Editor 与 AppShell 装配
  • 跨项目复用、批量删除和权限管理

验收标准

  • 页面只展示 CharacterApis 返回的正式资产,不从 WorkflowRun 拼装数据
  • 角色、造型和动作切换使用稳定 ID,不使用数组位置作为业务标识
  • Playtest 链接携带正确的 characterId、outfitId 和可选 actionId
  • 空项目、无动作角色、多角色多造型和请求失败均有测试
  • 页面不负责生成、审核或修改 WorkflowRun
  • CI 五步全部通过:format:check / lint / typecheck / test / build

参考实现

Character 数据边界以 entities/character 为准;Playtest 的正式资产读取与稳定 ID 约定可参考 PR #96

备注

资产库与 Playtest 是两个页面:资产库负责管理正式资产,Playtest 负责播放和核验,不互相替代。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmile3Milestone 3

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions