任务错误提示调整为窗口顶部居中 #87

Closed
opened 2026-08-10 10:03:22 +08:00 by ila · 4 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#1
  • 所属 MVP / 版本:#2 Client 可运行任务闭环(MVP)
  • 阶段:PDD 任务反馈体验

要解决什么

任务错误提示目前显示在软件右上角。用户注意和鼠标移动距离都偏向窗口边缘,即使提示与按钮已经放大,仍不如窗口中间容易发现和操作。

做什么 / 不做什么

  • 做:把自动采集/采购、重新采集和设备不可用错误提示调整到软件窗口顶部水平居中;保留大尺寸、明显按钮、5 秒自动关闭和同类提示不堆叠。
  • 不做:不放到窗口正中央遮挡任务表格;不改成模态对话框;不修改任务流程、Admin 接口、数据库、pdd_data 或采购安全逻辑。

怎么做

  • client/src/pdd_ui_event.py:将相关错误 InfoBar 的位置由 TOP_RIGHT 改为 Fluent 组件自带的 TOP,由组件相对所属页面自动水平居中,不计算固定坐标。
  • client/test/test_pdd_ui_event.py:验证采集/采购、重新采集和设备提示都使用顶部居中位置,并保留尺寸、按钮、自动关闭和替换行为。
  • docs/client/05-ui-specification.md:记录窗口顶部居中的稳定交互规则。

验收标准

  • 采集/采购错误提示显示在软件窗口顶部水平居中。
  • 重新采集错误提示显示在软件窗口顶部水平居中。
  • Android 设备不可用提示显示在软件窗口顶部水平居中。
  • 提示不位于窗口正中央,不遮挡任务表格主要区域。
  • 520×112 最小尺寸、120×40 操作按钮和 5 秒自动关闭保持不变。
  • 同类提示仍只保留一条,底部状态仍保留完整错误。
  • Client 专项测试和全量回归通过。

怎么验证

从 client/ 执行:

C:/Python310/python.exe -m py_compile src/pdd_ui_event.py test/test_pdd_ui_event.py
C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_ui_event.py" -v
C:/Python310/python.exe -m unittest discover -s test -v

人工运行 Client,分别触发采集/采购、重新采集和设备断开错误,确认提示位于窗口顶部居中,且 5 秒后关闭。不执行真实采购、下单或付款。

风险和回退

风险较低。窄窗口下提示宽度可能接近内容区宽度,需要离屏和人工缩放检查。出现布局问题时回退本工单提交,即恢复右上角显示,不影响任务数据或执行状态。

## 基本信息 - 类型:需求 - 父级大工单:#1 - 所属 MVP / 版本:#2 Client 可运行任务闭环(MVP) - 阶段:PDD 任务反馈体验 ## 要解决什么 任务错误提示目前显示在软件右上角。用户注意和鼠标移动距离都偏向窗口边缘,即使提示与按钮已经放大,仍不如窗口中间容易发现和操作。 ## 做什么 / 不做什么 - 做:把自动采集/采购、重新采集和设备不可用错误提示调整到软件窗口顶部水平居中;保留大尺寸、明显按钮、5 秒自动关闭和同类提示不堆叠。 - 不做:不放到窗口正中央遮挡任务表格;不改成模态对话框;不修改任务流程、Admin 接口、数据库、`pdd_data` 或采购安全逻辑。 ## 怎么做 - `client/src/pdd_ui_event.py`:将相关错误 `InfoBar` 的位置由 `TOP_RIGHT` 改为 Fluent 组件自带的 `TOP`,由组件相对所属页面自动水平居中,不计算固定坐标。 - `client/test/test_pdd_ui_event.py`:验证采集/采购、重新采集和设备提示都使用顶部居中位置,并保留尺寸、按钮、自动关闭和替换行为。 - `docs/client/05-ui-specification.md`:记录窗口顶部居中的稳定交互规则。 ## 验收标准 - [ ] 采集/采购错误提示显示在软件窗口顶部水平居中。 - [ ] 重新采集错误提示显示在软件窗口顶部水平居中。 - [ ] Android 设备不可用提示显示在软件窗口顶部水平居中。 - [ ] 提示不位于窗口正中央,不遮挡任务表格主要区域。 - [ ] 520×112 最小尺寸、120×40 操作按钮和 5 秒自动关闭保持不变。 - [ ] 同类提示仍只保留一条,底部状态仍保留完整错误。 - [ ] Client 专项测试和全量回归通过。 ## 怎么验证 从 `client/` 执行: ```powershell C:/Python310/python.exe -m py_compile src/pdd_ui_event.py test/test_pdd_ui_event.py C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_ui_event.py" -v C:/Python310/python.exe -m unittest discover -s test -v ``` 人工运行 Client,分别触发采集/采购、重新采集和设备断开错误,确认提示位于窗口顶部居中,且 5 秒后关闭。不执行真实采购、下单或付款。 ## 风险和回退 风险较低。窄窗口下提示宽度可能接近内容区宽度,需要离屏和人工缩放检查。出现布局问题时回退本工单提交,即恢复右上角显示,不影响任务数据或执行状态。
Author
Owner

已完成,等待验收

实现结果:

  • 自动采集/采购、重新采集、Android 设备不可用错误提示均改为 InfoBarPosition.TOP,相对软件页面顶部水平居中。
  • 没有放到窗口正中央,不会遮挡任务表格主要区域。
  • 520×112 提示、120×40 操作按钮、5 秒自动关闭、同类提示替换和底部完整状态均保持不变。
  • 普通警告和任务详情提示没有改动。

提交:

  • bf816bc fix: 任务错误提示改为顶部居中 (#87)
  • 5a0a011 docs: 归档任务 #87
  • 归档:docs/task/87-任务错误提示顶部居中.md

验证:PDD 页面事件测试 32 项通过,Client 全量 224 项通过。

未在真实可见窗口中人工检查不同宽度和 100%–200% 缩放效果;未执行真实采购、下单或付款。工单保持开启,等待用户验收后关闭并同步 #1、#2。

## 已完成,等待验收 实现结果: - 自动采集/采购、重新采集、Android 设备不可用错误提示均改为 `InfoBarPosition.TOP`,相对软件页面顶部水平居中。 - 没有放到窗口正中央,不会遮挡任务表格主要区域。 - 520×112 提示、120×40 操作按钮、5 秒自动关闭、同类提示替换和底部完整状态均保持不变。 - 普通警告和任务详情提示没有改动。 提交: - `bf816bc` `fix: 任务错误提示改为顶部居中 (#87)` - `5a0a011` `docs: 归档任务 #87` - 归档:`docs/task/87-任务错误提示顶部居中.md` 验证:PDD 页面事件测试 32 项通过,Client 全量 224 项通过。 未在真实可见窗口中人工检查不同宽度和 100%–200% 缩放效果;未执行真实采购、下单或付款。工单保持开启,等待用户验收后关闭并同步 #1、#2。
Author
Owner

验收缺陷:重新执行前置校验提示仍在右侧

用户复验发现,点击“重新执行”后部分报错仍显示在右上角。

根因:#87 只把后台执行失败的 _show_rerun_error() 改为 InfoBarPosition.TOP,但“自动获取正在运行、Admin 未初始化、设备信息缺失、任务状态不允许重新执行”等前置校验统一调用 _show_rerun_warning(),该方法仍使用 TOP_RIGHT。用户视角下二者都是“重新执行失败”,不应因代码内部严重级别不同而改变位置。原测试先创建警告再创建错误,但只断言了第二条错误的位置,因此没有覆盖遗漏。

修正范围:

  • _show_rerun_warning() 改为 InfoBarPosition.TOP,与重新执行后台错误保持一致。
  • 保留警告颜色、520×112 最小尺寸、120×40 关闭按钮、5 秒自动关闭和不堆叠行为。
  • 新增直接测试,单独断言重新执行前置校验警告位于顶部居中;原后台错误位置测试继续保留。
  • 更新 UI 基线和 #87 本地归档。

本次继续使用 #87 修复,不创建重复工单;不改任务流程、数据库、Admin 接口或采购安全逻辑。

## 验收缺陷:重新执行前置校验提示仍在右侧 用户复验发现,点击“重新执行”后部分报错仍显示在右上角。 根因:#87 只把后台执行失败的 `_show_rerun_error()` 改为 `InfoBarPosition.TOP`,但“自动获取正在运行、Admin 未初始化、设备信息缺失、任务状态不允许重新执行”等前置校验统一调用 `_show_rerun_warning()`,该方法仍使用 `TOP_RIGHT`。用户视角下二者都是“重新执行失败”,不应因代码内部严重级别不同而改变位置。原测试先创建警告再创建错误,但只断言了第二条错误的位置,因此没有覆盖遗漏。 修正范围: - `_show_rerun_warning()` 改为 `InfoBarPosition.TOP`,与重新执行后台错误保持一致。 - 保留警告颜色、520×112 最小尺寸、120×40 关闭按钮、5 秒自动关闭和不堆叠行为。 - 新增直接测试,单独断言重新执行前置校验警告位于顶部居中;原后台错误位置测试继续保留。 - 更新 UI 基线和 #87 本地归档。 本次继续使用 #87 修复,不创建重复工单;不改任务流程、数据库、Admin 接口或采购安全逻辑。
Author
Owner

验收缺陷已修复,等待再次验收

修正结果:

  • _show_rerun_warning() 已由 TOP_RIGHT 改为 TOP。
  • “暂时不能重新执行”“重新执行不可用”“不能重新执行”等前置校验提示现在与后台“重新采集失败”一样位于软件窗口顶部水平居中。
  • 警告颜色、大尺寸、明显关闭按钮、5 秒自动关闭和不堆叠行为均保留。
  • 新增独立断言,直接检查前置校验警告的位置,避免只测试后台错误。

提交:

  • 977af34 fix: 统一重新执行提示位置 (#87)
  • a1ecaa2 docs: 更新任务 #87 验收缺陷归档

验证:语法检查通过;PDD 页面事件 32 项通过;Client 全量 224 项通过。

未执行真实采购、下单或付款。请重新启动 Client 后触发同一条重新执行前置校验错误,确认提示位于顶部居中。

## 验收缺陷已修复,等待再次验收 修正结果: - `_show_rerun_warning()` 已由 `TOP_RIGHT` 改为 `TOP`。 - “暂时不能重新执行”“重新执行不可用”“不能重新执行”等前置校验提示现在与后台“重新采集失败”一样位于软件窗口顶部水平居中。 - 警告颜色、大尺寸、明显关闭按钮、5 秒自动关闭和不堆叠行为均保留。 - 新增独立断言,直接检查前置校验警告的位置,避免只测试后台错误。 提交: - `977af34` `fix: 统一重新执行提示位置 (#87)` - `a1ecaa2` `docs: 更新任务 #87 验收缺陷归档` 验证:语法检查通过;PDD 页面事件 32 项通过;Client 全量 224 项通过。 未执行真实采购、下单或付款。请重新启动 Client 后触发同一条重新执行前置校验错误,确认提示位于顶部居中。
Author
Owner

用户已于 2026-08-11 明确验收通过。

  • 本地归档状态已更新为“已完成,用户验收通过”
  • 验收记录提交:eca9289
  • 本工单按项目流程关闭
用户已于 2026-08-11 明确验收通过。 - 本地归档状态已更新为“已完成,用户验收通过” - 验收记录提交:`eca9289` - 本工单按项目流程关闭
ila closed this issue 2026-08-11 10:58:17 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#87