docs: 归档任务 #268

This commit is contained in:
chengma
2026-08-18 14:43:12 +08:00
parent ad9f4e6eea
commit d2acbd821c
@@ -0,0 +1,66 @@
# #268 Client:兼容无维度名摘要的纵向颜色列表归位
- 工单号:#268
- 类型:缺陷修复
- 父级大工单:#96(关联 #1)
- 所属 MVP:#97
- 状态:待验收
- 日期:2026-08-18
- Gitea:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/268>
## 背景与目标
采购目标颜色为繁体 `寵粉誘惑-E01【一件】`,PDD 控件树显示简体规格。现有繁简归一化能够得到同一比较键,但规格面板记住了纵向颜色列表中部位置,只显示 E09~E16;“已选”摘要不包含“颜色分类”维度名,导致 Client 没有把列表归位到包含 E01 的顶部,最终误报目标不可见。
## 最终方案
- 保留现有 Windows `LCMapStringEx` 繁简归一化和唯一候选规则,不修改目标原文。
- “已选”摘要包含颜色维度名时继续使用原归位规则。
- 摘要不包含维度名时,只有以下结构证据全部成立才允许归位:
- 当前存在第二规格标题;
- 规格面板只有一个可靠的纵向滚动容器;
- 第二规格标题位于该容器内;
- 标题上方至少存在两个完整、可见、可点击且不是操作控件的规格卡片。
- 证据成立后复用既有有界向顶部滑动,看到正式颜色标题和可靠颜色选项即停止。
- 归位后继续用精确或唯一繁简等价规则匹配目标颜色;不按编号或近似文字猜测。
- 单规格、候选不足、多个滚动容器或无法到达颜色标题时安全停止。
## 改了哪些文件
- `client/src/pdd_u2_purchase_adapter.py`
- `client/test/test_pdd_u2_purchase_adapter.py`
- `docs/client/06-quality-security.md`
实现提交:`ad9f4e6`
## 验收结果
- [x] 繁体任务颜色和简体 PDD 颜色继续按唯一繁简等价规则匹配。
- [x] 无维度名摘要、纵向列表停在中部时可以用强结构证据触发归位。
- [x] 归位后只点击唯一的简体 E01 卡片并确认选中。
- [x] 单规格尺码面板不会被误判为颜色列表。
- [x] 标题上方只有一个候选或存在多个滚动容器时不会触发归位。
- [x] 归位和查找均有次数上限,不循环滑动或猜测点击。
- [x] 当前真实设备控件树只读判定结果为 `RESTORE_REQUIRED=True`,未执行滑动或点击。
## 测试
在 `client/` 目录执行:
```powershell
C:/Python310/python.exe -m py_compile src/pdd_u2_purchase_adapter.py
C:/Python310/python.exe -m pytest -q test/test_pdd_u2_purchase_adapter.py test/test_select_color_size.py
C:/Python310/python.exe -m pytest -q test
$env:QT_QPA_PLATFORM="offscreen"
C:/Python310/python.exe -c "from src.ui_main import MainWindow; from PyQt5.QtWidgets import QApplication; app=QApplication([]); w=MainWindow(); print('OK'); app.quit()"
Remove-Item Env:QT_QPA_PLATFORM
```
结果:
- 语法检查通过。
- 定向测试 83 项全部通过。
- Client 全量测试 532 项通过、2 项失败;失败是工作区现有 `src/version.py` 为 `0.1.2`,两项旧测试仍期待 `0.1.0`,与本任务无关。
- 离屏 UI 冒烟打印 `OK`。
未验证到的部分:未在真实 Android 设备执行颜色列表归位或点击 E01;未执行真实规格选择、提交订单或付款。