Skip to content

fix(crosshair): restore pointer values on stacked measure axes - #4683

Merged
xile611 merged 1 commit into
developfrom
codex/fix-stacked-crosshair-4561
Sep 15, 2026
Merged

xile611 merged 1 commit into
developfrom
codex/fix-stacked-crosshair-4561

Conversation

@xile611

@xile611 xile611 commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

💡 问题的背景&解决方案

#4561 放宽了 crosshair 区间匹配的端点顺序,用于修复马赛克图的矩形高亮。普通堆叠柱图、面积图的数值轴也使用内部 STACK_END / STACK_START 字段,因此会误入区间匹配:仅按数值扫描全部系列数据,取到其他类目的第一个匹配区间,既改变标签,也把辅助线移到该区间中点。

例如悬停 Mascara / EU,鼠标对应 Y=22000 时:

行为 修复前 修复后
数值轴标签 11659 ~ 24473(来自 Nail polish / USA 22000
辅助线所在 Y 值 18066(错误区间中点) 22000

本次使用现有 series.getStack()series.direction 识别堆叠数值轴,跳过区间查找,保留鼠标对应的坐标轴值、位置和标签格式化流程。马赛克、堆叠直方图维度轴继续使用区间匹配、矩形定位和升序标签。

堆叠数值轴交互不再读取、扫描系列数据;新增测试同时验证这一点,避免在鼠标移动热路径引入数据量相关开销。

🤔 这个分支是...

  • Bug fix
  • 测试 case 更新

🔗 相关的 PR 链接

#4561

🐞 Bugserver 用例 id

65115a4575f95aebb64ca5d9

📝 Changelog

Language Changelog
🇺🇸 English Fix range labels and misplaced crosshairs on stacked measure axes while preserving dimension range highlighting for mosaic and histogram charts.
🇨🇳 Chinese 修复堆叠数值轴 crosshair 错误显示范围标签及位置偏移,保留马赛克和直方图的维度区间高亮。

☑️ 自测

  • 修复前:7 个真实堆叠图场景复现单值标签断言失败。
  • 修复后:Electron 环境下 crosshair 两套测试全部通过,共 34 项,包含 11 个新增真实图表场景。
  • 推送前仓库钩子执行 rush test --only tag:package:VChart 全量 82 套测试、455 项用例通过,vutils-extension 的 1 项测试通过。
  • 覆盖横向、纵向、双数值轴、inverse、负数、百分比、堆叠面积图,以及马赛克和堆叠直方图的维度高亮。
  • 补生成本地 vutils-extension 类型声明后,VChart 全量 tsc --noEmit 通过。
  • 修改文件的 ESLint、Prettier 和 git diff --check 通过。
  • 已添加 patch changelog;公共 API 和类型定义无变化。

🚀 Summary

copilot:summary

🔍 Walkthrough

copilot:walkthrough

@xile611
xile611 merged commit 7607b1a into develop Sep 15, 2026
8 of 10 checks passed
@xile611
xile611 deleted the codex/fix-stacked-crosshair-4561 branch September 15, 2026 07:20
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