docs: 归档任务 #130
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# 130 设置页紧凑布局与管理端地址切换
|
||||
|
||||
- 工单号:#130
|
||||
- 标题:Client:紧凑排列设置字段并支持管理端地址统一切换
|
||||
- 类型:需求
|
||||
- 父级:#1
|
||||
- 所属版本:MVP 后续 / 设置页与在线更新
|
||||
- 状态:已完成
|
||||
- 日期:2026-08-11
|
||||
- Gitea 工单:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/130>
|
||||
|
||||
## 背景与目标
|
||||
|
||||
设置页多个短字段分别占行,纵向空间利用率较低;同时 Client 已支持读取 `admin.base_url`,但没有界面配置入口。本任务压缩当前设备和软件更新表单,并保证管理端地址保存后,设备登记、任务领取和结果提交统一使用新地址。
|
||||
|
||||
## 最终方案
|
||||
|
||||
- 当前设备第一行并排显示设备号和设备名,第二行显示管理端地址。
|
||||
- 软件更新清单地址独占一行,账号和密码在下一行按约 45:55 伸缩。
|
||||
- 保存前验证管理端地址,只接受不含账号、密码、查询参数和片段的 HTTP/HTTPS 地址。
|
||||
- 设备号、设备名和管理端地址通过一次 `set_many` 原子写入现有 `app_settings`,不增加数据库迁移。
|
||||
- 保存后使用新 Gateway 登记 Client,并通知 PDD 任务事件层切换 Gateway;正在执行的请求不强制中断,持久 Worker 从下一次请求开始使用新地址。
|
||||
- 测试注入的 Mock Gateway 保持不变,避免自动测试访问真实 Admin。
|
||||
|
||||
与建单方案一致。根据凭据保护红线,实施时补充了 URL 不能携带账号、密码、查询参数或片段的校验。
|
||||
|
||||
## 改了哪些
|
||||
|
||||
- `client/src/settings_ui.py`:重排当前设备和软件更新表单,增加管理端地址输入框。
|
||||
- `client/src/settings_ui_event.py`:加载、验证、保存管理端地址,并通知任务模块切换地址。
|
||||
- `client/src/current_client_service.py`:将 Client 身份和管理端地址原子保存。
|
||||
- `client/src/http_admin_gateway.py`:拒绝可能携带凭据的管理端 URL。
|
||||
- `client/src/pdd_ui_event.py`:为后续领取、执行和上报切换 Gateway。
|
||||
- `client/src/ui_main.py`:连接设置页与 PDD 任务事件层的地址变更信号。
|
||||
- `client/test/test_settings_ui_event.py`、`client/test/test_pdd_ui_event.py`:增加布局、校验、保存和持久 Worker 切换测试。
|
||||
- `docs/client/05-ui-specification.md`:同步设置页最终交互规范。
|
||||
|
||||
## 验收结果
|
||||
|
||||
| 验收标准 | 结果 |
|
||||
|---|---|
|
||||
| 设备号和设备名同一行,管理端地址位于下一行 | 通过 |
|
||||
| 管理端地址加载、验证和原子保存 | 通过 |
|
||||
| 无效或携带凭据的地址不保存、不登记 | 通过 |
|
||||
| 登记以及后续领取、结果提交统一切换地址 | 通过 |
|
||||
| 软件更新账号和密码同一行并按约 45:55 伸缩 | 通过 |
|
||||
| 密码保持隐藏且不改变凭据存储规则 | 通过 |
|
||||
| 标签、buddy、AccessibleName 和焦点恢复正确 | 通过 |
|
||||
| Client 自动测试和最小窗口离屏检查通过 | 通过 |
|
||||
|
||||
## 测试
|
||||
|
||||
- 执行的命令:
|
||||
- `C:/Python310/python.exe -m py_compile src/settings_ui.py src/settings_ui_event.py src/pdd_ui_event.py src/ui_main.py src/current_client_service.py`
|
||||
- `C:/Python310/python.exe -m unittest discover -s test -p "test_settings_ui_event.py" -v`
|
||||
- `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 -p "test_update_ui_event.py" -v`
|
||||
- `C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"`
|
||||
- 820×560 离屏窗口布局和密码回显检查。
|
||||
- 结果:语法检查通过;专项测试通过;Client 全量 359 项测试通过;最小窗口下设备号/设备名输入框约 260/259 像素,更新账号/密码约 244/299 像素,符合预期布局;密码保持隐藏。
|
||||
- **没验证到的部分**:没有在真实 100%、150%、200% Windows 显示缩放下人工查看;没有切换真实 Admin 后执行任务领取和提交;没有连接或操作 Android 设备,也没有执行采集、采购、下单或付款。
|
||||
|
||||
## 相关提交
|
||||
|
||||
- `cd2889d` 优化设置布局并支持管理端地址切换
|
||||
Reference in New Issue
Block a user