You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

5.2 KiB

第三阶段:交互逻辑实现

执行日期:2026-01-09
状态 已完成

上下文

根据 development-plan.md 开发计划文档,第三阶段的目标是:

  • 实现完整的用户交互逻辑
  • 完成状态管理和数据流
  • 实现拖拽排序功能
  • 对接 Mock API

实施计划

第一批:核心基础

模块 任务 优先级 状态
Mock API 创建 Mock API 服务层 P0
API Hooks useProjects/useStoryboards/useResources/useTimeline P0
分镜交互 选择/创建/编辑/删除/拖拽排序/复制 P0
播放控制 播放/暂停/进度/音量控制 P0
键盘快捷键 空格播放、Delete 删除 P1
Store 完善 添加音量/播放速度、状态持久化 P1

第二批:时间轴交互

任务 优先级 状态
时间轴缩放/滚动同步 P0
播放头拖拽 P0
时间块选择/拖拽移动 P0
时间块调整时长 P0
多选操作(Shift+点击) P1
轨道可见性/锁定 P1

第三批:资源管理

任务 优先级 状态
资源上传 P0
资源搜索过滤 P0
资源删除 P0
网格/列表视图切换 P1
批量选择删除 P1

完成的任务

1. Mock API 服务层 (3.2.x)

# 任务 状态
3.2.0 创建 services/mockApi.ts

2. API Hooks (3.2.x)

# 任务 状态
3.2.1 开发 useProjects Hook
3.2.2 开发 useStoryboards Hook
3.2.3 开发 useResources Hook
3.2.4 开发 useTimeline Hook

3. 分镜交互 (3.3.x)

# 任务 状态
3.3.1 实现分镜选择
3.3.2 实现分镜创建
3.3.3 实现分镜编辑
3.3.4 实现分镜删除
3.3.5 实现分镜拖拽排序
3.3.6 实现分镜复制

4. 播放控制交互 (3.4.x)

# 任务 状态
3.4.1 实现视频播放/暂停
3.4.2 实现播放进度控制
3.4.3 实现音量控制
3.4.4 实现播放速度控制

5. 时间轴交互 (3.5.x)

# 任务 状态
3.5.1 时间轴缩放(按钮+滚轮)
3.5.2 播放头拖拽跳转
3.5.3 时间块选择
3.5.4 时间块拖拽移动
3.5.5 时间块调整时长(左右边界)
3.5.6 Shift 多选支持
3.5.7 轨道可见性切换
3.5.8 轨道锁定功能

6. 资源管理 (3.6.x)

# 任务 状态
3.6.1 资源列表展示
3.6.2 资源搜索
3.6.3 资源类型过滤
3.6.4 资源上传(模拟)
3.6.5 资源删除
3.6.6 网格/列表视图
3.6.7 批量选择删除

7. 键盘快捷键 (3.8.x)

# 任务 状态
3.8.1 实现播放/暂停快捷键(空格)
3.8.3 实现删除快捷键(Delete)
3.8.6 开发 useKeyboardShortcuts Hook

8. 状态管理完善 (3.1.x)

# 任务 状态
3.1.1 完善 appStore
3.1.2 完善 editorStore(添加音量/播放速度)
3.1.3 完善 uiStore
3.1.4 添加状态持久化

新增文件清单

client/src/
├── hooks/
│   ├── api/
│   │   ├── index.ts
│   │   ├── useProjects.ts
│   │   ├── useStoryboards.ts
│   │   ├── useResources.ts
│   │   └── useTimeline.ts
│   ├── index.ts
│   ├── useKeyboardShortcuts.ts
│   ├── usePlayback.ts
│   └── useTimeline.ts
├── services/
│   └── mockApi.ts
├── components/features/
│   ├── storyboard/
│   │   └── StoryboardItem.tsx
│   ├── timeline/
│   │   ├── TimelineItem.tsx
│   │   └── Playhead.tsx
│   └── resource/
│       ├── ResourcePanel.tsx
│       └── index.ts

验收结果

检查项 验收条件 结果
开发服务器 npm run dev 可正常启动
生产构建 npm run build 可正常构建
代码检查 npm run lint 0 个 error
类型检查 npm run type-check 通过
分镜 CRUD 创建/编辑/删除/复制分镜正常
分镜排序 拖拽排序流畅,顺序正确保存
播放控制 播放/暂停/进度/音量控制正常
键盘快捷键 空格播放、Delete 删除正常
时间轴交互 缩放/播放头拖拽/时间块操作正常
资源管理 上传/搜索/过滤/删除正常
Playwright 测试 页面加载和基本交互正常

下一阶段

第四阶段:AI 功能集成

  • AI 图像生成接口对接
  • AI 视频生成接口对接
  • AI 配音生成
  • 实时生成进度展示