fix: 任务错误提示改为顶部居中 (#87)

This commit is contained in:
chengma
2026-08-10 10:05:45 +08:00
parent 663c5ee666
commit bf816bce02
3 changed files with 10 additions and 6 deletions
+3 -3
View File
@@ -513,7 +513,7 @@ class PDDTaskPageEvent(QObject):
content=content,
isClosable=True,
duration=ERROR_FEEDBACK_DURATION_MS,
position=InfoBarPosition.TOP_RIGHT,
position=InfoBarPosition.TOP,
parent=self._page,
)
self._replace_rerun_feedback(bar)
@@ -801,7 +801,7 @@ class PDDTaskPageEvent(QObject):
content=content,
isClosable=True,
duration=ERROR_FEEDBACK_DURATION_MS,
position=InfoBarPosition.TOP_RIGHT,
position=InfoBarPosition.TOP,
parent=self._page,
)
self._claim_feedback = bar
@@ -840,7 +840,7 @@ class PDDTaskPageEvent(QObject):
content=content,
isClosable=True,
duration=ERROR_FEEDBACK_DURATION_MS,
position=InfoBarPosition.TOP_RIGHT,
position=InfoBarPosition.TOP,
parent=self._page,
)
self._device_feedback = bar
+4
View File
@@ -11,6 +11,7 @@ from unittest.mock import patch
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
from PyQt5.QtWidgets import QApplication
from qfluentwidgets import InfoBarPosition
from src.android_device_service import AndroidDeviceSearchError
from src.pdd_ui import PDDTaskPage
@@ -468,6 +469,7 @@ class PDDTaskPageEventTest(unittest.TestCase):
events._show_rerun_error("重新采集失败", "测试错误")
second = events._rerun_feedback
self.assertIsNot(first, second)
self.assertEqual(second.position, InfoBarPosition.TOP)
self.assertEqual(second.duration, ERROR_FEEDBACK_DURATION_MS)
close_buttons = [
@@ -502,6 +504,7 @@ class PDDTaskPageEventTest(unittest.TestCase):
second = events._claim_feedback
self.assertIsNot(first, second)
self.assertEqual(second.position, InfoBarPosition.TOP)
self.assertEqual(second.duration, ERROR_FEEDBACK_DURATION_MS)
self.assertGreaterEqual(second.minimumWidth(), ERROR_FEEDBACK_MIN_WIDTH)
self.assertGreaterEqual(second.minimumHeight(), ERROR_FEEDBACK_MIN_HEIGHT)
@@ -616,6 +619,7 @@ class PDDTaskPageEventTest(unittest.TestCase):
events._show_device_unavailable("第二条")
second = events._device_feedback
self.assertIsNot(first, second)
self.assertEqual(second.position, InfoBarPosition.TOP)
self.assertEqual(second.duration, ERROR_FEEDBACK_DURATION_MS)
self.assertGreaterEqual(second.minimumWidth(), ERROR_FEEDBACK_MIN_WIDTH)
self.assertGreaterEqual(second.minimumHeight(), ERROR_FEEDBACK_MIN_HEIGHT)
+3 -3
View File
@@ -70,7 +70,7 @@
- 补交本地 Outbox 不依赖手机,可以在 Android 设备断开时继续执行。
- 执行本地任务或向 Admin 领取新任务前,工作线程必须用 `adb devices -l` 检查已保存的精确设备号。USB 和 Wi-Fi 设备都只接受 `device` 状态。
- 设备未连接、`offline`、`unauthorized` 或 ADB 检查失败时,立即停止本轮和自动获取;不得领取新任务,也不得启动本地任务。
- 采集、采购、重新采集和设备错误使用较大的 `InfoBar` 提示,5 秒后自动关闭,并提供明显的“关闭提示”按钮。设备错误另外提供“打开设置”;重复错误替换旧提示,不得堆叠。完整错误原因保留在底部状态区。
- 采集、采购、重新采集和设备错误使用较大的 `InfoBar` 提示,显示在软件窗口顶部水平居中,5 秒后自动关闭,并提供明显的“关闭提示”按钮。设备错误另外提供“打开设置”;重复错误替换旧提示,不得堆叠。完整错误原因保留在底部状态区。
### 4.2 搜索与筛选
@@ -295,8 +295,8 @@ class TaskTableModel(QAbstractTableModel):
| 领取到新任务 | 更新表格和状态区,不弹模态框 |
| 暂时没有可领取的任务 | 只更新状态区,**不要连续弹提示** |
| 搜索无结果 | 表格空状态和清除条件入口 |
| Admin 暂时离线 | 较大信息条,5 秒后自动关闭;底部保留错误,本地数据继续可用 |
| 设备断开 | 较大信息条,提供打开设置和关闭提示,5 秒后自动关闭 |
| Admin 暂时离线 | 窗口顶部居中的较大信息条,5 秒后自动关闭;底部保留错误,本地数据继续可用 |
| 设备断开 | 窗口顶部居中的较大信息条,提供打开设置和关闭提示,5 秒后自动关闭 |
| 任务运行 | 底部状态区和必要进度,不阻塞整个窗口 |
| 任务失败 | 行状态、详情和信息条,不显示原始堆栈 |
| 多个订单候选 | 状态改为“需要人工处理”,打开详情决策 |