feat: 剪辑规划器完整交互 — 7大配置面板 + 时间轴拖拽/缩放/播放头 + 预览播放器 #284

Merged
xiaoxia merged 15 commits from feature/task-center-page into develop 2026-07-14 18:15:55 +08:00

15 Commits

Author SHA1 Message Date
CI Bot c2a5c9417e style: Prettier 格式化 40 个文件 — 修复 Frontend Lint CI
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 44s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 48s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m4s
CI/CD Pipeline / Unit Tests (push) Successful in 1m8s
CI/CD Pipeline / Integration Tests (push) Successful in 1m19s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m19s
CI/CD Pipeline / Frontend Lint (push) Successful in 2m40s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m55s
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
2026-07-14 17:47:12 +08:00
CI Bot 2b6ba6e074 fix: PR#284 P1 类型安全修复 — EditPlanConfig/AssetItem/GenerateFromTemplateRequest
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 31s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 27s
CI/CD Pipeline / Unit Tests (push) Successful in 1m2s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 52s
CI/CD Pipeline / Frontend Lint (push) Failing after 1m56s
CI/CD Pipeline / Integration Tests (push) Successful in 1m24s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m33s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m23s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
P1-1: EditPlanConfig 内部 7 个 config 字段从 Record<string,unknown> 改为具体类型
  - watermark_config → WatermarkConfig
  - intro_outro_config → IntroOutroConfig
  - pip_config → PipConfig
  - filter_config → FilterConfig
  - green_screen_config → ChromaKeyConfig
  - sticker_config → StickerConfig
  - cover_config → CoverConfig

P1-2: AssetItem.metadata 从 Record<string,unknown> 改为 AssetMetadata 接口
  - 新增 AssetMetadata 接口(duration/width/height/bitrate/codec/fps 等)

P1-3: GenerateFromTemplateRequest.config 从 Record<string,unknown> 改为 EditPlanConfig

P1-4: 去掉 EditPlanConfig 的 [key: string]: unknown 索引签名
  - GeneratePage.tsx 生成参数加 as EditPlanConfig 类型断言

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 16:31:59 +08:00
CI Bot 640672b798 fix: 消除 Record<string, unknown> 弱类型 — P1 审计修复
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 38s
CI/CD Pipeline / Unit Tests (push) Successful in 1m12s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 43s
CI/CD Pipeline / Frontend Lint (push) Failing after 1m59s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m16s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Integration Tests (push) Successful in 1m39s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m56s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m35s
- editingPlanner.ts: EditingTemplate/SaveTemplatePayload 7个config字段
  从 Record<string, unknown> 改为 types.ts 中具体类型
  (WatermarkConfig, IntroOutroConfig, PipConfig, FilterConfig,
   ChromaKeyConfig, StickerConfig, CoverConfig)
- templates.ts: TemplateItem 3个config字段
  从 Record<string, unknown> 改为 TitleConfig/SubtitleConfig/BgmConfig
- TemplateLibrary.tsx: formatConfig 参数类型从 Record<string, unknown> 改为 object
2026-07-14 14:56:35 +08:00
CI Bot 1feff1c6fb feat: 编辑器渲染结果联动 + 一键生成链路打通
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 48s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 57s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m22s
CI/CD Pipeline / Unit Tests (push) Successful in 1m23s
CI/CD Pipeline / Frontend Lint (push) Failing after 2m19s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 2m19s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (push) Successful in 1m35s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m25s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
- editPlans.ts: 新增 GeneratedVideo 类型 + getGenerationTaskResults 函数
- products.ts: 重写为基于 /generation/tasks 端点(后端无 /products 路由)
- GeneratePage.tsx: 生成完成后获取视频 URL + 预览/下载/分享/导航成片库
- EditingPlanner.tsx: 移除 GenerationProgressModal 死代码(genModalOpen 从未设为 true)

打通生成→预览→下载→分享→成片库完整链路,消除所有 404 API 调用
2026-07-14 13:50:24 +08:00
CI Bot f77f519582 fix: P1 类型安全修复 — EditPlanConfig/AssetItem/TitleSettings
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 54s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 32s
CI/CD Pipeline / Unit Tests (push) Successful in 1m31s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m4s
CI/CD Pipeline / Frontend Lint (push) Failing after 2m10s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m58s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (push) Successful in 1m41s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m37s
P1-1: EditPlan.config 从 Record<string, unknown> 改为 EditPlanConfig 接口
  - 新增 TitleConfig/SubtitleConfig/BgmConfig/SegmentTtsConfig 等子类型
  - CreateEditPlanRequest/UpdateEditPlanRequest/AIRecommendResponse 同步更新
  - GenerateCoverResponse.cover 改为带 scheme/asset_id/frame_time 的类型

P1-2: AssetItem 补充 duration/classification_status 字段,消除 mapAssetToMediaAsset 全部 as 断言

P1-3: TitleSettings 提取到共享 types.ts,ClipPropertiesPanel/PreviewPlayer 去重导入
  - 对齐后端 title_config 字段,前端 camelCase → 后端 snake_case 映射
2026-07-14 13:12:40 +08:00
CI Bot 82de158e35 feat: 时间轴轨道缩放 + 播放头控制
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 29s
CI/CD Pipeline / Unit Tests (push) Successful in 58s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 27s
CI/CD Pipeline / Frontend Lint (push) Failing after 1m2s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 52s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m1s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (push) Successful in 1m15s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m30s
- EditingPlanner: 新增 currentTime/pixelsPerSecond 状态 + rAF 帧推进
- TimelinePanel: 缩放控件(−/滑块/+/标签)、播放头渲染/拖拽、标尺点击跳转
- TimelinePanel: clip 宽度按 duration*pps 动态计算,裁剪灵敏度同步缩放
- EditingPlanner.css: zoom 控件 + playhead 三角手柄 + clip min-width 适配
- 松耦合:PreviewPlayer 不修改,currentTime 仅驱动播放头位置

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 11:39:40 +08:00
CI Bot 6213569ec8 feat: 完成贴纸面板+封面选择器集成,含滤镜/绿幕/水印/片头片尾/画中画面板
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 56s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 42s
CI/CD Pipeline / Frontend Lint (push) Failing after 1m22s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m14s
CI/CD Pipeline / Integration Tests (push) Successful in 1m56s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m57s
CI/CD Pipeline / Unit Tests (push) Successful in 4m14s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 5m41s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
- 新增 StickerPanel: emoji素材库(30个) + 图片URL + 文字花字(8种预设) + 属性编辑
- 新增 CoverSelector: 智能封面/抽帧选封面/上传封面 三种模式
- 集成到 EditingPlanner.tsx: state/handler/payload/drawer
- 集成到 ClipPropertiesPanel.tsx: props + 入口按钮
- 新增 EditingPlanner.css: sticker-* 和 cover-* 完整样式
- 同步提交: FilterPanel, GreenScreenPanel, WatermarkPanel, IntroOutroPanel, PipConfigPanel
- types.ts: StickerConfig, CoverConfig 类型定义
- editingPlanner.ts API: sticker_config, cover_config 字段
2026-07-14 10:12:29 +08:00
CI Bot d91a803719 feat: 剪辑时间轴裁剪增强 — 手柄拖拽/分割/恢复原始长度
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 44s
CI/CD Pipeline / Unit Tests (push) Successful in 1m16s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 40s
CI/CD Pipeline / Frontend Lint (push) Failing after 1m6s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m17s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m21s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (push) Successful in 1m53s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m51s
- 新增 TrimConfig 类型(入点/出点/原始时长)
- TimelinePanel 添加左右裁剪手柄(hover显示),拖动调整入点/出点
- 拖动时实时显示裁剪预览 tooltip(入点/出点/时长)
- 右键片段弹出菜单:分割片段 / 恢复原始长度 / 删除
- 已裁剪片段显示视觉标记(左侧蓝色边框 + ✂ 图标)
- EditingPlanner 新增 handleClipTrim/handleClipSplit/handleClipResetTrim
- handleSave/handleGoToGenerate payload 序列化 trim_config
- 新增 CSS 样式:裁剪手柄、预览 tooltip、右键菜单
2026-07-14 09:42:09 +08:00
CI Bot b08598290b feat: TTS 配音面板 — 配音模式切换 + 音色选择 + 语速/语调/音量 + 试听 + 字幕联动
- tts.ts: 新增 TTSVoice 接口、getTtsVoices()、previewTts() API
- types.ts: 新增 TtsMode/TtsConfig/DEFAULT_TTS_CONFIG,ClipData 增加 tts_config 字段
- TtsPanel.tsx: Drawer 形式配音面板(模式切换/文本输入/音色卡片/滑块/试听/字幕联动)
- ClipPropertiesPanel.tsx: 新增 TTS 配音入口按钮
- EditingPlanner.tsx: TTS 状态管理 + Drawer 集成 + payload 序列化
- EditingPlanner.css: tts-* 前缀全套样式(V21 设计系统)
2026-07-14 09:42:09 +08:00
CI Bot 438de40998 feat: 转场特效选择器 + 片段调速面板
- 新增 TransitionSelector 组件:15种转场预设卡片网格 + 时长滑块(0.3s~2s)
- 新增 SpeedPanel 组件:速度滑块(0.25x~4x) + 预设按钮 + 音调修正开关
- 扩展 ClipData 类型:transition + speed 字段
- 扩展 TRANSITION_OPTIONS:14种转场 + cut + none,含图标
- TimelinePanel:转场指示器 + 速度徽章
- ClipPropertiesPanel:转场/调速入口按钮
- EditingPlanner:Drawer 集成 + handleSave/handleGoToGenerate payload
- CSS:转场选择器/调速面板/时间线指示器/入口按钮样式
2026-07-14 09:42:09 +08:00
CI Bot 0bb1406b75 feat(editing-planner): BGM 选择器 + 字幕样式配置面板
- 新增 BGM API 模块 (api/bgm.ts):BgmPreset、BgmMixConfig 类型,getBgmPresets 接口
- 新增 BgmSelector 组件:Drawer 形式,分类标签栏、搜索、试听、音量/淡入淡出/人声闪避配置
- 新增 SubtitleStylePanel 组件:Drawer 形式,字幕开关、手动/ASR 模式、字体大小/颜色/字体/位置/描边/阴影/动画配置、实时预览
- EditingPlanner 集成:状态管理、模板初始化映射、PreviewPlayer 适配、ClipPropertiesPanel 入口按钮
- ClipPropertiesPanel 更新:BGM 区域展示当前选中 BGM + 配置入口、字幕区域新增高级样式配置按钮
- EditingPlanner.css:BGM 选择器、字幕面板、ClipPropertiesPanel 新增样式(约 410 行)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 09:42:09 +08:00
CI Bot 72d77b2b9a feat(assets): 素材批量操作 UI 对接 — 批量删除/打标签/改分类/智能标记 + 结果 Drawer
- API 层新增 4 个批量操作函数(batchDeleteAssets/batchTagAssets/batchClassifyAssets/batchMarkAssets)
- 批量操作栏增加打标签、改分类、智能标记按钮
- 批量打标签弹窗支持 add/replace 模式切换 + 自定义标签输入
- 批量改分类弹窗支持分类下拉选择
- 批量智能标记弹窗支持推荐/慎用/高风险三选一
- 操作结果 Drawer 展示成功/失败明细
- 配套 CSS 样式(弹窗、Drawer、标签输入等)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 09:42:09 +08:00
CI Bot 445ba24ab5 feat: 模板库升级 + 剪辑计划管理页面
- 重写 TemplateLibrary:对接后端分页/筛选 API(category/keyword/duration_range),
  增强详情弹窗(segments 素材规则、subtitle/bgm/title config、aspect_ratio),
  新增复制模板和从模板生成功能
- 新建 EditPlans 剪辑计划管理页面:Ant Design Table + Tabs 状态筛选、
  模板筛选下拉、分页、一键重新生成、自动轮询进行中的计划
- 修改 editPlans.ts getEditPlans 返回分页响应(items/total/page/page_size)
- 扩展 templates.ts API:copyTemplate、generateFromTemplate、toggleFavoriteTemplate
- 添加 /app/edit-plans 路由和导航配置

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 09:42:09 +08:00
CI Bot 83137d5c2e feat: 任务中心页面 — 列表/筛选/重试/错误详情/分页
- 扩展 tasks API 模块:分页查询(getTasks)、重试(retryTask)、错误详情类型
- 新建 TaskCenter 页面:Ant Design Table 展示任务列表
- 顶部 Tabs 状态筛选(全部/等待中/进行中/已完成/失败/已取消)
- 下拉类型筛选(全部/生成任务/素材导入)
- 失败任务行显示重试按钮(Popconfirm 确认)
- 可展开行显示错误详情(错误类型/信息/失败阶段/堆栈)
- 分页(showSizeChanger/showQuickJumper/showTotal)
- 自动轮询:有 running/waiting 任务时每5秒刷新
- 添加路由 /app/tasks 和导航配置
2026-07-14 09:42:09 +08:00
CI Bot 3ce6d47d46 feat(products): 成片中心 UI 4 大功能升级
1. 封面预览 — 卡片已支持 thumbnailUrl 展示
2. 复核状态标签 — 右上角显示待复核(灰)/已通过(绿)/需修改(红),点击循环切换
3. 批量操作 — 批量下载改用 batch-download API + job_id 轮询
4. 筛选栏 — 新增按项目、按复核状态筛选 Select

API 层新增:
- updateReviewStatus: PATCH /products/{id}/review
- batchDownload: POST /products/batch-download
- getBatchDownloadStatus: GET /products/batch-download/{jobId}

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 09:42:09 +08:00