Files
cmautobuy/docs/task/6-为当前设备增加保存与设备号生成.md
T
2026-08-06 15:58:35 +08:00

2.9 KiB

6 为当前设备增加保存与设备号生成

  • 类型:需求
  • 父级大工单:#1
  • 所属 MVP / 版本:#2 / MVP
  • 状态:已完成
  • 日期:2026-08-06
  • Gitea 工单:#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 设备保存使用不同按钮和信号 通过
忙碌状态下当前设备保存按钮不可用 通过
语法检查和主窗口离屏装配通过 通过

测试

  • 执行的命令:

    C:/Python310/python.exe -m py_compile src/settings_ui.py src/settings_ui_event.py
    
    $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 增加当前设备保存与设备号生成