Skip to content

feat(buddy): 图片和流程图预览支持滚轮缩放 - #413

Open
QAyong wants to merge 1 commit into
useLexora:masterfrom
QAyong:codex/preview-wheel-zoom
Open

QAyong wants to merge 1 commit into
useLexora:masterfrom
QAyong:codex/preview-wheel-zoom

Conversation

@QAyong

@QAyong QAyong commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

背景与关联 / Context and related issue

  • 问题或目标 / Problem or goal: 图片预览和流程图(Mermaid)放大面板目前只能点工具栏的放大、缩小按钮缩放,滚动滚轮没有反应,查看大图或复杂流程图时操作不顺手。希望在预览浮层内直接用滚轮缩放。
  • 关联 Issue / Related issue: N/A

主要改动 / Changes

  • 变更 / Change:
    • 新增 usePreviewWheelZoom:在图片预览(.n-image-preview-container)和流程图放大面板(.mermaid-modal-panel)内滚动滚轮时,触发对应的放大或缩小按钮,沿用组件自己的缩放状态,不另存一份缩放值。多个预览共用一个监听,最后一个卸载时释放。
    • 滚动处理:横向滚动、按住 Shift 和增量为 0 的滚动不处理;鼠标滚轮的行、页单位会换算成像素;触控板的小增量会累积后再触发,并限制连续触发的间隔,避免一次手势缩放过多;方向反转或停顿超过 200 ms 时丢弃之前的累积。
    • BuddyImagePreview.vue:给放大、缩小按钮加上 data-preview-zoom,作为滚轮缩放的查找依据;其余行为不变。
    • DesktopMermaidBlock.vue:启用 usePreviewWheelZoom,同时把内联视图的 enable-wheel-zoom 保持为关闭,避免干扰页面滚动,只在放大面板里用滚轮缩放。
    • 流程图放大面板的按钮没有可用的属性,只能按 markstream-vue 2.0.19 工具栏的固定顺序(放大、缩小、重置、关闭)取按钮,不按翻译文字匹配;升级该依赖时需要重新确认,新增的测试里有用真实组件覆盖这一点。

验证 / Verification

  • 自动检查 / Automated checks: 新增 usePreviewWheelZoom.spec.ts(10 个用例):只缩放当前打开的预览并阻止背景滚动;鼠标滚轮的行、页单位换算;内联图和无关内容不受影响;横向、Shift、零增量滚动被忽略;触控板增量累积、连发限频、反向与过期动作丢弃;共享监听及最后一个使用者卸载后释放;用真实的图片预览工具栏和现有缩放状态;用真实的 Mermaid 放大面板工具栏且不启用内联滚轮缩放。本地未单独运行,以 CI 为准。
  • 手动验证 / Manual verification: 未在本次提交前再做手动验证。
  • 未执行 / Not run: 本地完整测试和 E2E;macOS 和 Linux 上的触控板手感。

兼容与风险 / Compatibility and risks

  • 不涉及数据、配置、授权或迁移。
  • 重点检查:流程图放大面板按固定顺序取按钮这一处,对 markstream-vue 版本敏感。

界面变更 / UI changes

没有新增控件,行为变化是预览内滚轮可缩放。暂未附录屏。

🤖 Generated with Claude Code

图片预览和流程图放大面板只能点工具栏的放大、缩小按钮缩放,滚动滚轮没有反应。
新增 usePreviewWheelZoom:在预览浮层内滚动滚轮时触发对应的缩放按钮,多个预览共用一个监听,最后一个卸载时释放。
横向滚动、按住 Shift 和增量为 0 的滚动不处理;触控板的小增量会累积,并限制连续触发的频率。
流程图内联视图仍关闭自带的滚轮缩放,避免干扰页面滚动。

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
@shanyuhai123

shanyuhai123 commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

其实目前这个图片、流程图预览的控件做的不好,例如大部分时候箭头应该在左右方便切换,支持滚轮,要不整个替换掉?

@QAyong

QAyong commented Oct 21, 2026

Copy link
Copy Markdown
Contributor Author

流程图预览的控件做的不好,例如大部分时候箭头应该在左右方便切换,支持滚轮

不是很理解这个意思,不过我觉得图片预览优化做好,咱们可以用成熟的组件

@shanyuhai123

Copy link
Copy Markdown
Contributor

流程图预览的控件做的不好,例如大部分时候箭头应该在左右方便切换,支持滚轮

不是很理解这个意思,不过我觉得图片预览优化做好,咱们可以用成熟的组件

那我这个暂时保留,等后续切换成熟的组件替换了再关闭

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants