docs: 归档任务 #180

This commit is contained in:
chengma
2026-08-12 11:14:31 +08:00
parent 669f144a9d
commit 8c7be7bd07
@@ -0,0 +1,54 @@
# 180 修复地址后缀分割并兼容保存后的 ColorOS 浮层
- 类型:缺陷
- 父级大工单:#1
- 所属 MVP / 版本:#2
- 状态:已完成,待用户验收
- 日期:2026-08-12
- Gitea 工单:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/180>
## 背景与目标
正式采购已经成功进入地址编辑页并点击保存,但旧地址中不符合白名单格式的下划线后缀不会被替换;保存后 OPPO/ColorOS 密码本浮层又占据控件树,使程序无法识别背后的收货地址面板。本任务按已确认业务规则重建地址,并安全处理该系统浮层后返回规格确认页。
## 最终方案
- 使用第一个 `-` 或 `_` 分割原地址,取第一段作为地址主体,再拼接 `_` 和当前采购编号。
- 保存按钮保持单次点击。
- 保存后优先检查已知 `com.coloros.codebook` 可见焦点浮层,连续读取三次仍存在时最多按一次系统返回键,不点击浮层内容。
- 浮层自行消失时不按返回;返回键无效时不再按第二次,最终安全超时。
- 非 ColorOS 密码本的未知页面不按返回、不继续点击。
- PDD 地址面板优先使用完整新地址确认;地址全文未暴露时,使用“收货地址标题 + 唯一修改按钮 + 唯一返回按钮”的组合证据。
- 若系统返回键竞态导致已经回到规格确认页,直接结束地址更新,不重复导航。
- 超时诊断增加浮层是否出现、系统返回次数和脱敏控件树。
## 改了哪些
- `client/src/pdd_u2_purchase_adapter.py`:实现首个分隔符地址规则、可靠地址面板证据及保存后 ColorOS 浮层有界状态机。
- `client/test/test_pdd_u2_purchase_adapter.py`:覆盖任意旧后缀、隐藏地址全文、浮层自行消失、一次返回成功、一次返回无效和未知页面安全停止。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 任意 `-` 或 `_` 后缀按首个分隔符截断并追加采购编号 | 通过 |
| 保存按钮仍只点击一次 | 通过 |
| ColorOS 浮层自行消失时不按返回、不点击浮层 | 通过 |
| 持续浮层最多按一次系统返回键 | 通过 |
| 未知页面不按返回、不继续点击 | 通过 |
| 地址全文未暴露时仍可用可靠组合证据识别 | 通过 |
| 返回地址面板后继续回到规格确认页 | 通过 |
| 不可逆下单门禁未修改 | 通过 |
| Client 全量测试通过 | 通过 |
## 测试
- 执行的命令:在 `client` 目录执行 `C:/Python310/python.exe -m unittest discover -s test -p 'test_pdd_u2_purchase_adapter.py'`
- 结果:38 个采购 Adapter 测试全部通过。
- 执行的命令:在 `client` 目录执行 `$env:QT_QPA_PLATFORM='offscreen'; C:/Python310/python.exe -m unittest discover -s test -p 'test_*.py'`
- 结果:456 个 Client 测试全部通过;仅有测试环境 Qt 字体目录警告。
- **没验证到的部分**:未在真机执行地址修改、保存、系统返回、提交订单或任何不可逆操作。
## 相关提交
- `669f144` fix: 兼容地址保存系统浮层 (#180)