Skip to content

fix: restore point visibility after overlap updates - #4686

Merged
xile611 merged 1 commit into
developfrom
codex/fix-symbol-overlap-update-spec
Sep 16, 2026
Merged

xile611 merged 1 commit into
developfrom
codex/fix-symbol-overlap-update-spec

Conversation

@xile611

@xile611 xile611 commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

🤔 这个分支是...

  • Bug fix
  • 测试 case 更新

🔗 相关 issue 链接

无独立 GitHub issue。

🔗 相关的 PR 链接

无。

🐞 Bugserver 用例 id

6746cd6971189400b2ec8dbe

💡 问题的背景&解决方案

开启 markOverlap 后,通过 updateSpec 将密集数据切换为稀疏数据,复用的点图元仍可能保持旧的 visible: false。原用例绿色点更新后只有 6/21 可见,直接渲染相同新 spec 则为 21/21;有无 setSelected 都可复现。

  • BaseMark.clearBeforeReInit() 清空样式后重新调用默认样式初始化,使新一轮编码恢复正常可见性,系列及用户配置继续按原优先级覆盖默认值。
  • symbolOverlap 基于本轮完整编码结果判断可见性,移除跨轮次隐藏标记与 reset,避免旧算法隐藏结果覆盖本轮显式隐藏配置。
  • 新增 11 条回归,覆盖图元复用、密疏往返、显式隐藏、横向布局、updateData、resize、更新后 hover 和动画终态。

修复后,原用例在有无 setSelected 两条路径下,绿色与橙色点均为 21/21,点属性与直接渲染新 spec 一致。本次保持现有 VRender 依赖及状态、动画属性提交流程。

📝 Changelog

Language Changelog
🇺🇸 English Fix points remaining hidden after overlap updates and preserve explicitly configured visibility.
🇨🇳 Chinese 修复开启点防重叠时更新后部分点持续隐藏,以及旧防重叠结果覆盖当前可见性配置的问题。

已运行 rush change-all --message 'fix: restore point visibility after overlap updates' --type patch --not-commit,并提交生成的变更日志。

☑️ 自测

  • 文档提供了,或者更新,或者不需要:既有 API 行为修复。
  • Demo 提供了,或者更新,或者不需要:原 BugServer 用例及精简回归已验证。
  • Ts 类型定义提供了,或者更新,或者不需要:公共类型未变化。
  • Changelog 提供了,或者不需要:已通过 rush change-all 生成。

验证结果:

  • pre-push 的 rush test --only tag:package 通过:VChart 87 个套件、482 项测试全部通过,vutils-extension 的 1 项测试通过。
  • TypeScript 检查通过;提交钩子的 ESLint、Prettier、commitlint 通过。
  • 默认样式恢复影响所有 mark,已覆盖现有高亮保持、状态动画过渡、被禁止的更新动画静态属性持久化等回归。
  • 本地 10k 点和 10 chart × 1k 点性能对照,预热 3 次、测量 7 次;render/updateSpec/updateData/resize/release 未触发退化复核阈值(中位数同时增加超过 5% 且超过 1ms)。

🚀 Summary

copilot:summary

🔍 Walkthrough

copilot:walkthrough

@xile611
xile611 merged commit 3b3a4ef into develop Sep 16, 2026
8 of 10 checks passed
@xile611
xile611 deleted the codex/fix-symbol-overlap-update-spec branch September 16, 2026 05:53
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