docs: 归档任务 #5
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# 5 实现设置页设备管理 UI 与事件接口
|
||||
|
||||
- 类型:需求
|
||||
- 父级大工单:#1
|
||||
- 所属 MVP / 版本:#2 / MVP
|
||||
- 状态:已完成
|
||||
- 日期:2026-08-06
|
||||
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/5
|
||||
|
||||
## 背景与目标
|
||||
|
||||
原设备管理是独立导航页,只提供无线地址和连接按钮,设置页还是占位内容。本任务把设备管理并入设置页,完成可独立测试的界面、互斥设备选择模型和事件接口,为后续设备号、SQLite 与 ADB 服务接入提供稳定边界。
|
||||
|
||||
## 最终方案
|
||||
|
||||
- 设置页使用可滚动布局,包含“当前设备”和“Android 设备”两组。
|
||||
- 当前设备显示只读设备号和可编辑设备名,设备号在服务接入前显示“待生成”。
|
||||
- Android 设备组提供无线地址、搜索、连接、保存、删除和六列表格。
|
||||
- 表格使用 `TableView + QAbstractTableModel`,以 Android 序列号作为稳定身份。
|
||||
- 左侧复选框表示待保存的当前设备,和普通行选择分离,同一时间最多勾选一台正常设备。
|
||||
- `SettingsPageEventBinder` 负责按钮和勾选事件,向应用层发出搜索、连接、保存和删除信号。
|
||||
- 页面不执行 ADB、SQLite 或硬件信息读取;这些阻塞操作由后续服务工单处理。
|
||||
- 主窗口移除独立设备页面,只保留“PDD 任务”和“设置”两个顶级模块。
|
||||
|
||||
本任务属于现有页面的局部扩展,布局和交互已通过文字方案确认,因此没有制作 HTML 原型。
|
||||
|
||||
## 改了哪些
|
||||
|
||||
- `client/src/settings_ui.py`:新增设备视图模型、互斥勾选表格、两组设备管理界面和更新方法。
|
||||
- `client/src/settings_ui_event.py`:新增搜索、连接、保存、删除事件绑定、输入校验和忙碌状态控制。
|
||||
- `client/src/ui_main.py`:移除独立设备页面的导入、创建和导航项。
|
||||
|
||||
## 验收结果
|
||||
|
||||
| 验收标准 | 结果 |
|
||||
|---|---|
|
||||
| 主窗口只保留 PDD 任务和设置两个顶级模块 | 通过 |
|
||||
| 设置页包含当前设备和 Android 设备两组 | 通过 |
|
||||
| 当前设备包含只读设备号和可编辑设备名 | 通过 |
|
||||
| Android 设备组包含无线地址和四个命令按钮 | 通过 |
|
||||
| 表格显示选择、设备号、连接方式、型号、Android 版本和状态 | 通过 |
|
||||
| 使用 `TableView + QAbstractTableModel` 且最多勾选一台 | 通过 |
|
||||
| 四类组件事件由 `settings_ui_event.py` 绑定并发出 | 通过 |
|
||||
| 空设备列表仍保留表格和表头 | 通过 |
|
||||
| 未执行真实 ADB、SQLite 或硬件信息读取 | 通过 |
|
||||
|
||||
## 测试
|
||||
|
||||
- 执行的命令:
|
||||
|
||||
```powershell
|
||||
C:/Python310/python.exe -m py_compile src/settings_ui.py src/settings_ui_event.py src/ui_main.py
|
||||
```
|
||||
|
||||
```powershell
|
||||
$env:QT_QPA_PLATFORM="offscreen"
|
||||
# 创建 SettingsPage 和 MainWindow,注入 USB、Wi-Fi、离线模拟设备,
|
||||
# 验证互斥勾选、按钮事件、空表格及设备导航已移除。
|
||||
Remove-Item Env:QT_QPA_PLATFORM
|
||||
```
|
||||
|
||||
- 结果:语法检查通过;离屏界面与事件测试输出 `SETTINGS_DEVICE_UI_OK`;`git diff --check` 通过。
|
||||
- **没验证到的部分**:未执行真实 ADB 搜索、无线连接、USB/Wi-Fi 删除、设备号生成、SQLite 保存或真机测试;未人工验证 200% 缩放、深色、高对比度和 Narrator。离屏环境存在既有的 PyQt5 字体目录缺失警告,不影响断言。
|
||||
|
||||
## 遗留问题
|
||||
|
||||
- 后续工单实现稳定设备号生成和非敏感设置持久化。
|
||||
- 后续工单使用后台线程接入真实 ADB 搜索、连接、保存选择和删除语义。
|
||||
|
||||
## 相关提交
|
||||
|
||||
- `41f7cbb` 实现设置页设备管理界面与事件接口
|
||||
Reference in New Issue
Block a user