3.2 KiB
3.2 KiB
#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.pyclient/test/test_pdd_u2_purchase_adapter.pydocs/client/06-quality-security.md
实现提交:ad9f4e6
验收结果
- 繁体任务颜色和简体 PDD 颜色继续按唯一繁简等价规则匹配。
- 无维度名摘要、纵向列表停在中部时可以用强结构证据触发归位。
- 归位后只点击唯一的简体 E01 卡片并确认选中。
- 单规格尺码面板不会被误判为颜色列表。
- 标题上方只有一个候选或存在多个滚动容器时不会触发归位。
- 归位和查找均有次数上限,不循环滑动或猜测点击。
- 当前真实设备控件树只读判定结果为
RESTORE_REQUIRED=True,未执行滑动或点击。
测试
在 client/ 目录执行:
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;未执行真实规格选择、提交订单或付款。