Files
cmautobuy/docs/task/117-安全设置采购数量并关闭输入法遮挡.md
T

60 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# #117 安全设置采购数量并关闭输入法遮挡
- 工单号:#117
- 类型:缺陷修复
- 父级:#1 Client 拼多多任务采集与采购客户端
- 版本:Client 采购自动化
- 状态:已完成,用户验收通过
- 日期:2026-08-10
- Gitea:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/117>
- 实现提交:`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 项通过。
未验证到的部分:未操作真实手机,未执行真实采购或点击真实下单按钮;需要用户
使用真机演练任务验证不同输入法实现下的显示与关闭效果。