文档
08_归档04_VOZEB任务卡

VOZEB-UI-MIGRATION-02-M08-DRAMA-LIST — 短剧项目列表页

Task ID: VOZEB-UI-MIGRATION-02-M08-DRAMA-LIST
目标用户结果: 用户能在统一 Ocean Air 壳层中浏览、创建、打开、发布和删除自己的短剧项目
Feature ID / Atomic Requirement IDs: MOD-P0-001;EXEC-P0-001..003(仅承载列表视觉与既有交互)
Base SHA: fbd66caf43e0f424ac49ce1102b0942c94d68241
必须阅读: VOZEB-UI-FOUNDATION-01.md;VOZEB-UI-MIGRATION-02.md;drama-project-contract.ts;现有 drama-project-entry.test.ts
允许修改: 本任务包;web/src/app/(user)/drama/page.tsx;web/src/app/(user)/drama/components/drama-project-card.tsx;web/src/app/(user)/drama/drama-list.module.css;web/src/app/(user)/drama/drama-list-layout.test.ts
禁止修改: web/src/app/(user)/drama/[id]/**;drama/stores/**;services/api/**;contracts、API routes、Go、migrations;共享 Ocean 组件、layout/navigation 与其它页面
范围: 将短剧列表页接入 OceanGlassCard、OceanContentCard、OceanLoadingShell、OceanStatusCluster、OceanUtilityControl、OceanReveal 和 OceanDialog;统一浅色/深色、加载/错误/空态、状态徽标、创建入口和项目卡片操作的 Ocean Air 视觉
非目标: 不改变短剧 store、API、分页、创建校验、比例/自定义尺寸、删除、发布、路由、项目状态、持久化或编辑器实现;不新增页面级背景或 WebGL
已冻结契约与数据模型: DramaProjectSummary、CreateDramaProjectInput、useDramaStore hydrate/loadMore/createProject/deleteProject、项目 Link `/drama/:id`、发布跳转 `/works?sourceType=drama&sourceId=...` 及现有 aria 语义保持不变
安全与数据限制: 仅本地合成数据和现有用户会话;不读取或输出 Secret,不触发真实上游、账务或生产写入
验收命令: pnpm exec vitest run src/app/(user)/drama/drama-project-entry.test.ts src/app/(user)/drama/drama-list-layout.test.ts;pnpm exec tsc --noEmit --pretty false;pnpm exec eslint src/app/(user)/drama/page.tsx src/app/(user)/drama/components/drama-project-card.tsx src/app/(user)/drama/drama-list-layout.test.ts --quiet;pnpm exec prettier --check docs/oceanway/VOZEB-UI-MIGRATION-02-M08-DRAMA-LIST.md src/app/(user)/drama/page.tsx src/app/(user)/drama/components/drama-project-card.tsx src/app/(user)/drama/drama-list.module.css src/app/(user)/drama/drama-list-layout.test.ts;pnpm run build;git diff --check
人工决策点: LOCAL_IMPLEMENTATION_CANDIDATE / CANDIDATE_EVIDENCE / NOT_FORMAL_TEST;短剧编辑器 `/drama/:id` 另建切片
交付物: Ocean Glass 短剧项目列表、状态/空态/加载层、无蓝色正文的卡片操作控件、布局契约测试、任务包

验收边界

  • 列表页继续使用 AppWorkspaceShell 提供的背景,不新增 OceanAmbientBackground、WebGL renderer 或第二个页面级背景。
  • hydrate、loadMore、createProject、deleteProject、创建 Modal 的名称/简介/风格/比例 校验,以及项目 Link、发布和删除动作保持原有行为与事件隔离。
  • 标题、描述、数量、状态和操作标签使用 Ocean Air 中性文字;主操作只使用主题色实心按钮, 颜色不承担唯一状态表达。
  • OceanGlassCard 只作为列表与操作表面;OceanContentCard 用于统计摘要,不能把 OceanDramaEditor 或 /drama/:id 状态机带入列表。
  • 所有改动仍登记为候选实现,不提升正式 Development、Testing 或 Operations 状态。

On this page