Skip to content

fix(datazoom): skip previews with degenerate scales - #4684

Merged
xile611 merged 1 commit into
developfrom
codex/fix-datazoom-preview-scale
Sep 15, 2026
Merged

xile611 merged 1 commit into
developfrom
codex/fix-datazoom-preview-scale

Conversation

@xile611

@xile611 xile611 commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

🤔 这个分支是...

  • Bug fix
  • 测试 case 更新

🔗 相关 issue 链接

#4186:本次保留数据更新后的 domain 刷新,并补充纯 VChart 回归测试。

🔗 相关的 PR 链接

#4527

🐞 Bugserver 用例 id

6503dac997ee1ad37a86235a — lock-domain

💡 问题的背景&解决方案

分类 X 轴、数值 Y 轴图表的竖向 DataZoom 会多显示一条预览线:该预览的 value domain 为 [0, 0],所有点映射到滑轨中间。#4527 中的 2533b828e 删除了预览比例尺有效性检查,导致这类退化预览也被绘制。

恢复 _isScaleValid(xScale) && _isScaleValid(yScale),同时保留 _handleDataCollectionChange 中的 _initAfterLayout()。更新时先刷新 domain/range,再判断预览是否可绘制;单条数据更新为多条后,预览和缩放过滤仍能正常恢复。底部正常预览保持一致。

预期效果(原 case 的标准图,本地修复后已完成视觉核对):

原 case 标准图

🧪 回归验证

  • 新增组件测试:竖向退化预览隐藏、横向正常预览可见;updateSpecSync / updateDataSync 从单条更新为多条后恢复预览和完整数据范围。
  • 新增 [Bug] 拖动datazoom动画流程出问题,图元没销毁 #4186 纯 VChart 测试:复用原 issue 的数据和动画参数,在数据更新动画中连续缩放,并比较整个场景树中柱图元的数据、数量和几何位置。
  • 使用各历史提交锁定的依赖进行对照;同一序列下,部分范围预期 30 个柱图元,恢复完整范围预期 36 个:
构建 VRender 版本 部分范围 恢复完整范围
#4527784a405c3 1.0.41 6,失败 6,失败
#4527 合入后 f49734a6e 1.0.44 30,通过 36,通过
本次修复后 1.1.8 30,通过 36,通过

通过版本的图元数据和几何位置均与静态参考图一致。

本地检查通过(在 packages/vchart 执行):

./node_modules/.bin/jest __tests__/unit/component/data-zoom __tests__/unit/core/update-effects.test.ts __tests__/unit/animation/manual-ticker.test.ts --runInBand
./node_modules/.bin/eslint src/component/data-zoom/data-zoom/data-zoom.ts __tests__/unit/component/data-zoom/data-zoom.test.ts __tests__/unit/animation/manual-ticker.test.ts --quiet
./node_modules/.bin/tsc --noEmit --project tsconfig.json

定向检查:4 个测试套件、145 个测试通过。更新至最新 develop 后,推送钩子执行 rush test --only tag:package:VChart 82 个测试套件、448 个测试通过,vutils-extension 的 1 个测试通过。提交钩子的 ESLint、Prettier、commitlint 均通过。完整验证记录见 docs/superpowers/plans/2026-09-15-datazoom-preview-regression.md

📝 Changelog

Language Changelog
🇺🇸 English Fix extra DataZoom preview lines when preview scales have degenerate domains.
🇨🇳 Chinese 修复预览比例尺退化时 DataZoom 显示多余预览线的问题。

☑️ 自测

  • 文档提供了,或者更新,或者不需要
  • Demo 提供了,或者更新,或者不需要
  • Ts 类型定义提供了,或者更新,或者不需要
  • Changelog 提供了,或者不需要

🚀 Summary

copilot:summary

🔍 Walkthrough

copilot:walkthrough

@xile611
xile611 merged commit a22e26d into develop Sep 15, 2026
7 of 9 checks passed
@xile611
xile611 deleted the codex/fix-datazoom-preview-scale branch September 15, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants