docs: 归档任务 #6

This commit is contained in:
chengma
2026-08-06 15:58:35 +08:00
parent 4f920f9d8b
commit 2fafa05d91
@@ -0,0 +1,68 @@
# 6 为当前设备增加保存与设备号生成
- 类型:需求
- 父级大工单:#1
- 所属 MVP / 版本:#2 / MVP
- 状态:已完成
- 日期:2026-08-06
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/6
## 背景与目标
设置页的“当前设备”组原来只有设备号和设备名,没有独立保存按钮。此次增加当前设备保存入口,并在首次保存时生成设备号;已有设备号不会被重新生成。
## 最终方案
- 在“当前设备”组右下方增加独立的 Fluent 保存按钮。
- 事件层新增 `currentDeviceSaveRequested(device_id, device_name)`,不与 Android 设备保存信号混用。
- 设备号为空或为“待生成”时,组合本机系统名称、主机名称、机器架构和硬件节点信息,再用 SHA-256 生成 `CLIENT-<16位十六进制>`。
- 只显示摘要后的设备号,不显示原始系统或硬件信息。
- 已有设备号时直接复用;设备名去除首尾空格后随信号发出。
- 忙碌状态下禁用当前设备保存按钮。
本任务只增加 UI 与事件接口,不接入 SQLite。后续持久化服务接收保存信号并落库。
这是已确认设置页的小型局部调整,没有制作 HTML 原型。
## 改了哪些
- `client/src/settings_ui.py`:增加当前设备保存按钮并放入当前设备卡片。
- `client/src/settings_ui_event.py`:增加设备号生成函数、当前设备保存信号和按钮事件。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 当前设备组显示独立保存按钮 | 通过 |
| 首次保存生成并回填格式正确的设备号 | 通过 |
| 重复保存时设备号保持不变 | 通过 |
| 已有设备号不会被重新生成 | 通过 |
| 保存信号包含设备号和去除首尾空格后的设备名 | 通过 |
| 当前设备保存与 Android 设备保存使用不同按钮和信号 | 通过 |
| 忙碌状态下当前设备保存按钮不可用 | 通过 |
| 语法检查和主窗口离屏装配通过 | 通过 |
## 测试
- 执行的命令:
```powershell
C:/Python310/python.exe -m py_compile src/settings_ui.py src/settings_ui_event.py
```
```powershell
$env:QT_QPA_PLATFORM="offscreen"
# 创建 SettingsPage,验证首次生成、重复保存、已有设备号、信号隔离和忙碌状态。
# 创建 MainWindow,验证当前设备保存按钮装配。
```
- 结果:语法检查和 `git diff --check` 通过;事件测试输出 `CURRENT_DEVICE_SAVE_OK`;主窗口测试输出 `MAIN_WINDOW_CURRENT_DEVICE_SAVE_OK`。
- **没验证到的部分**:没有接入 SQLite,因此没有验证重启后的设备号读取和设备名持久化;没有人工验证 200% 缩放、高对比度和 Narrator。离屏环境的既有 PyQt5 字体目录警告不影响断言。
## 遗留问题
- 后续 SQLite 工单负责接收当前设备保存信号、写入本地设置并在启动时回填页面。
## 相关提交
- `ed66390` 增加当前设备保存与设备号生成