Files
StellarX-kaifa/开发记录/BUG/BUG-20260929-0001-Table运行期重置后页码标签被旧分页按钮快照覆盖.md
T

55 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BUG-20260929-0001
> 适用场景:记录问题本身,不展开完整修复方案。修复内容写入对应的 Fix 文档。
## 基本信息
- ID: BUG-20260929-0001
- 标题: Table 运行期重置后页码标签被旧分页按钮快照覆盖
- 状态:已修复
- 严重性:S2
- 优先级:P1
- 模块: Table / Label / Button / 背景快照
- 版本 / 分支: 当前工作区
- 环境: Windows / EasyX / KEY1
- 发现人: 用户
- 关联 Fix ID: Fix-BUG-20260929-0001
## 问题描述
- 现象: KEY1 页签 1 中点击页内按钮重置表头和数据后,分页区中间的页码标签只显示一部分;触发表格重绘或与其他页签按钮进行 hover 交互后恢复完整。
- 影响范围: Table 运行期数据变化导致表格宽度及分页控件位置同时变化的场景。
- 期望结果: 重置后的首帧立即完整显示新页码,不依赖后续 hover、翻页或页签重绘修复。
- 实际结果: 页码已经绘制,但随后移动的分页按钮回贴旧位置背景快照,覆盖了新页码的一部分。
## 复现信息
- 前置条件: 启动 KEY1 并进入页签 1。
- 复现步骤:
1. 点击页签 1 内用于重置表格的“按钮”。
2. 不移动鼠标,立即观察“上一页”和“下一页”之间的页码标签。
3. 对表格或页签 2 按钮进行 hover 交互,触发后续重绘。
- 复现概率:稳定复现
- 最小复现 Demo:KEY1 页签 1
- 证据:用户截图中重置后的页码标签首帧显示不全,后续重绘恢复。
## 初步分析
- 疑似位置: `Table::drawPageNum()`、`Table::drawButton()` 和内部控件 `Control::setX()` 的调用顺序。
- 触发条件: 新旧表格宽度不同,分页 Label 和分页按钮需要同时横向移动。
- 相关线索:
- 旧顺序先绘制页码,再在 `drawButton()` 中移动分页按钮。
- 分页按钮移动时会通过 `discardBackground()` 回贴旧背景。
- 旧按钮区域与新页码区域相交,导致新页码被局部擦除。
- 最近相关改动:[可选] Table 页码强制设脏和分页按钮整表重绘链已经存在,但未覆盖内部控件同帧搬移后的旧快照覆盖。
## 跟踪信息
- 首次发现时间: 2026-09-29
- 最后更新时间: 2026-09-30
- 修复版本: 当前工作区
- 验证版本: 2026-09-29 非 UI 全矩阵通过;2026-09-30 用户完成 KEY1 至 KEY6 手工回归,暂未发现明显问题
- 备注:[可选]