diff --git a/docs/task/180-修复地址后缀分割并兼容保存浮层.md b/docs/task/180-修复地址后缀分割并兼容保存浮层.md new file mode 100644 index 0000000..024dcff --- /dev/null +++ b/docs/task/180-修复地址后缀分割并兼容保存浮层.md @@ -0,0 +1,54 @@ +# 180 修复地址后缀分割并兼容保存后的 ColorOS 浮层 + +- 类型:缺陷 +- 父级大工单:#1 +- 所属 MVP / 版本:#2 +- 状态:已完成,待用户验收 +- 日期:2026-08-12 +- Gitea 工单: + +## 背景与目标 + +正式采购已经成功进入地址编辑页并点击保存,但旧地址中不符合白名单格式的下划线后缀不会被替换;保存后 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)