用户明确需求:导入一个项目文件夹,里面可有子文件夹(如 a roll、b roll、图片、音频 分文件夹,文件夹可套文件夹再套素材)。媒体库应: - 显示**文件夹图标**;双击文件夹**进入**看里面的素材;**面包屑/返回**上一级。 - 文件夹内素材可拖到轨道;支持图片/音频等。 - 镜像目录树成 MediaFolder 层级。 ## 任务(对应 PORT-1TO1-GAP P0-2 3b) - [ ] 后端 `MediaItemDto` 加 `folderId`,`MediaListDto` 加 `folders:[{id,name,parentFolderId}]`(从 core.media().folders 投影)。 - [ ] `import_folder` 重写:递归镜像目录→对每级派 `CreateFolder`(ops 已有)+ `import_media_file` 带 folder_id;整批原子。 - [ ] 前端 mediaStore 存 folders+currentFolderId;FolderTile(双击 openFolder)+ 面包屑 + navigateUp;按 currentFolderId 过滤显示。 - [ ] 库内拖拽:素材拖进文件夹 / 文件夹互拖(MoveToFolder 已有)。 **可认领:开放(前端 + opentake-media/core)。** 注意与 #37 全局库共用 media 层,建议同一人或协调顺序。
Activity
appergb commentedon Jun 22, 2026
已按模块拆分为子任务(本 epic 转为跟踪用):
@Felix201209 @H-Chris233 开放认领,顺序 57 → 58。⚠️ #58 与 #56 同改 media 前端,协调认领顺序。
feat(media): folder-import backend — folderId + folders projection + …
Merge pull request #168 from appergb/feat/folder-browse
feat(media): dedup imports + migrate favorites to backend manifest (a…
fix(media): finish media library rewrite + migrate star to backend (a…