From b04b5a0390a6701e1ac19ea5948f1dc40352f1f5 Mon Sep 17 00:00:00 2001 From: YoungestSongMo <2130460579@qq.com> Date: Wed, 24 Jun 2026 19:26:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=97=A0=E9=99=90=E7=94=BB=E5=B8=83=20?= =?UTF-8?q?UI=20=E9=87=8D=E6=9E=84=20+=20=E9=A2=84=E8=A7=88=E9=94=AE?= =?UTF-8?q?=E7=9B=98=E6=8E=A7=E5=88=B6=20+=20=E6=8B=96=E6=8B=BD=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E4=BC=98=E5=8C=96=20(0.0.27)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CanvasPage: AntD Layout 双栏布局 (Sider+Content),预览状态提升解耦 DOM - CanvasSidebar (新): 项目/集数选择器 + 镜头搜索 + 列表 + 固定刷新按钮 - CategoryTabs (新): 双模式分类标签 (Assets/审核) + 数量徽标 + 媒体细分 - CanvasViewport: Ctrl/Cmd 拖拽平移 (pointerEvents:none 防误抓缩略图) - CanvasViewport: previewActiveRef 双守卫阻止预览穿透缩放/拖拽 - MediaPreview: 键盘控制 Space 暂停/播放、<- -> 快退快进 ±0.5s - electron/main.ts: local-media:// 协议 handler 转发 Range 头修复 seek - StageTabs: 无限画布入口按钮 + 全局字号上调 Range seek 调试: 之前 net.fetch 未转发 Range 头 → 浏览器 seek 时 返回 200 全文件而非 206 Partial Content → currentTime 赋值无法定位 → 播放位置回退到 0。修复: 提取 Range 头单向转发到 file:// handler。 Co-Authored-By: Claude --- CHANGELOG.md | 31 ++ TODO.md | 3 + electron/main.ts | 17 +- src/pages/infinite-canvas/CanvasPage.tsx | 182 ++++++---- .../infinite-canvas/core/CanvasViewport.tsx | 121 +++++-- .../infinite-canvas/core/MediaPreview.tsx | 65 +++- .../infinite-canvas/core/ViewportControls.tsx | 10 +- .../navigation/CanvasSidebar.tsx | 340 ++++++++++++++++++ .../navigation/EpisodeSelector.tsx | 2 +- .../navigation/ProjectSelector.tsx | 2 +- src/pages/infinite-canvas/navigation/index.ts | 1 + .../infinite-canvas/store/useCanvasStore.ts | 5 +- .../toolbar/CanvasFilterBar.tsx | 74 +--- .../infinite-canvas/toolbar/CanvasToolbar.tsx | 69 +--- .../infinite-canvas/toolbar/CategoryTabs.tsx | 253 +++++++++++++ .../infinite-canvas/toolbar/StageTabs.tsx | 57 ++- src/pages/infinite-canvas/toolbar/index.ts | 1 + 17 files changed, 994 insertions(+), 239 deletions(-) create mode 100644 src/pages/infinite-canvas/navigation/CanvasSidebar.tsx create mode 100644 src/pages/infinite-canvas/toolbar/CategoryTabs.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index f907680..6a5e84d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,37 @@ # 更新日志 > 每次发版前修改此文件,`npm run build:win` 打包后会自动读取生成 update-info.json。 +--- +## 0.0.27(2026-06-24) + +**无限画布 UI 重构 + 预览键盘控制 + 拖拽体验优化** + +### 无限画布 + +- **双栏布局重构**:AntD Layout(Sider + Content),左侧导航 + 右侧画布,页面级别渲染预览组件解耦 DOM +- **CanvasSidebar**:项目/集数选择器 + 镜头搜索 + 镜头列表(滚动条 + 底部固定刷新按钮)+ 工作区切换 +- **CategoryTabs 双模式**:Assets 阶段 → 全部/角色/道具/场景/收藏;其他阶段 → 所有[阶段名]/收藏/待审核/通过/返修/已弃用 +- **分类数量徽标**:每个标签显示数据计数,"收藏"标签额外显示媒体类型细分(视频/图片/音频) +- **Ctrl/Cmd + 拖拽平移**:替代 Space 键修饰,释放 Space 给媒体控制;`pointerEvents: none` 防止拖拽时误抓缩略图 +- **画布锁**:预览打开时 `previewActiveRef` 双守卫阻止穿透缩放/拖拽 +- **无限画布入口按钮**:StageTabs 右侧按钮,调用 `OPEN_CANVAS_WINDOW` IPC + +### 预览键盘控制 + +- **Space 暂停/播放**:capture 阶段拦截 + `stopPropagation`,避免与原生 `