From 036fbfbe3bcbf6afe7bbf4b581973e2be23d5ca3 Mon Sep 17 00:00:00 2001 From: chengma Date: Mon, 10 Aug 2026 18:53:11 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=BD=92=E6=A1=A3=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?#117?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../117-安全设置采购数量并关闭输入法遮挡.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 docs/task/117-安全设置采购数量并关闭输入法遮挡.md diff --git a/docs/task/117-安全设置采购数量并关闭输入法遮挡.md b/docs/task/117-安全设置采购数量并关闭输入法遮挡.md new file mode 100644 index 0000000..bfa08b1 --- /dev/null +++ b/docs/task/117-安全设置采购数量并关闭输入法遮挡.md @@ -0,0 +1,59 @@ +# #117 安全设置采购数量并关闭输入法遮挡 + +- 工单号:#117 +- 类型:缺陷修复 +- 父级:#1 Client 拼多多任务采集与采购客户端 +- 版本:Client 采购自动化 +- 状态:待用户验收 +- 日期:2026-08-10 +- Gitea: +- 实现提交:`b182eff` + +## 背景与目标 + +原数量设置代码总是聚焦数量输入框。即使页面默认数量已经正确,也会弹出安卓 +输入法并遮挡规格面板底部的下单按钮。目标是优先避免输入法;必须使用输入框时, +只在确认输入法显示后安全关闭,并重新核对提交前页面。 + +## 最终方案 + +1. 先从最新控件树读取当前数量,等于目标数量时直接返回。 +2. 数量差不超过 5 时,逐次使用“增加数量”或“减少数量”按钮;每次点击前重新 + 定位唯一按钮,点击后校验数量。 +3. 数量差较大或初始控件树没有唯一加减按钮时,才使用输入框。 +4. 输入框写入后通过 `dumpsys input_method` 判断输入法状态。只有明确显示时才按 + 一次返回键;状态未知时不盲目操作。 +5. 输入法关闭后重新核对规格面板、颜色、尺码、数量、价格和唯一提交按钮。 + 输入法无法关闭或规格面板丢失时安全停止。 + +实现与建单方案一致,无 Admin 接口和数据库结构变化,不执行付款操作。 + +## 改了哪些文件 + +- `client/src/pdd_u2_purchase_adapter.py`:增加数量按钮策略、输入法检测和面板恢复校验。 +- `client/test/test_pdd_u2_purchase_adapter.py`:补充数量与输入法安全路径测试。 +- `docs/client/06-quality-security.md`:记录采购数量输入的稳定安全约束。 + +## 验收结果 + +- [x] 目标数量等于当前数量时不聚焦输入框。 +- [x] 5 次以内的数量差优先逐次点击加减按钮并校验。 +- [x] 输入框兜底仅在确认输入法显示时按一次返回键。 +- [x] 输入法关闭后重新校验规格、数量、价格和唯一提交目标。 +- [x] 输入法无法关闭、状态未知或规格面板丢失时安全停止。 +- [x] 演练测试没有点击最终提交,live 测试仍只点击一次最终提交。 +- [ ] 等待用户在真机演练任务中验收输入法和规格面板恢复效果。 + +## 测试 + +从 `client` 目录执行: + +```powershell +C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_u2_purchase_adapter.py" +C:/Python310/python.exe -m unittest discover -s test -p "test_*.py" +``` + +结果:专项 19 项通过;Client 全量 337 项通过。 + +未验证到的部分:未操作真实手机,未执行真实采购或点击真实下单按钮;需要用户 +使用真机演练任务验证不同输入法实现下的显示与关闭效果。