来源:2026-09-16 本地验证 #290 时发现。用户原话:「syb商品搜索260818PAXYEV7V,不能勾选蝦皮44109310287的紫色来采集」。
SYB 商品页里,未关联 PDD 商品的明细无法勾选,因此永远进不了「图搜采集」。而图搜采集的用途恰恰就是给未关联 PDD 的虾皮商品找到 PDD 商品——入口条件与功能目的互相矛盾。
勾选框的开关只有一个判据(web/src/views/goauto/syb-products/index.vue:356):
web/src/views/goauto/syb-products/index.vue:356
isSelectableCandidate(row) { return this.isPurchaseCandidate(row) // processStage === 'purchase_ready' || this.isCollectionCandidate(row) // collectionEligible && pddProductId > 0 || this.isAIMatchCandidate(row) // aiMatchEligible }
三个判据里没有图搜,且三个全都要求虾皮商品已关联 PDD:
// server/app/goauto/purchase/collection_eligibility.go:21 if shopee.PDDProductID == nil { item.CollectionDisabledReason = "尚未关联 PDD 商品" return // CollectionEligible = false }
按钮自身的条件其实是对的,不要求 PDD:
imageSearchRows() { return this.selectedProducts.filter(row => row.shopeeProductId && row.imageUrl) }
但它作用在 selectedProducts 上,而未关联的行根本选不中,所以计数恒为 0。两处条件从未对齐。
selectedProducts
shopee_product 1528(虾皮 44109310287)pdd_product_id 为 NULL,其 23 条明细(含紫色 S/L/XL/2XL,订单 260818PAXYEV7V 等)三个判据全为 false,勾选框禁用。55550934512(14 色 35 条)同样。
shopee_product
44109310287
pdd_product_id
260818PAXYEV7V
55550934512
此前线上唯一一次图搜跑通,用的是已关联 PDD 的商品,走的是「图搜结果覆盖已有关联」那条路径。主场景(给未关联商品找货)从未被走通。
isSelectableCandidate 增加第四个判据:
isSelectableCandidate
isImageSearchCandidate(row) { return Boolean(row.shopeeProductId && row.imageUrl) }
只读前端已有字段,无服务端改动。
[必须] 不放宽任何采购门禁。可勾选不等于可采购:purchaseCandidates 仍由 isPurchaseCandidate 单独把关,collectionCandidates 仍由 isCollectionCandidate 把关。本次只让行可被勾选。
[必须]
purchaseCandidates
isPurchaseCandidate
collectionCandidates
isCollectionCandidate
collection_eligibility.go
Web 构建;本地以 260818PAXYEV7V 紫色明细人工核对上述五项。
仅前端可勾选条件,属于恢复既有设计意图的缺陷修复,无长期文档影响。
提交 2f1e88e,单文件改动 web/src/views/goauto/syb-products/index.vue(+7 −1)。
2f1e88e
web/src/views/goauto/syb-products/index.vue
新增 isImageSearchCandidate(row) { return Boolean(row.shopeeProductId && row.imageUrl) }, 接入 isSelectableCandidate 作为第四个判据。与 imageSearchRows 的过滤条件逐字一致。
imageSearchRows
未改服务端,collection_eligibility.go 未触碰。
npm run build:prod
web/dist/index.html
aiMatchCandidates
isAIMatchCandidate
:disabled
loadPurchaseReadiness
浏览器人工核对(可勾选、计数、三个按钮候选数不变)尚未执行,需本地重启 Web 后进行。
待验收。
No dependencies set.
The note is not visible to the blocked user.
问题
SYB 商品页里,未关联 PDD 商品的明细无法勾选,因此永远进不了「图搜采集」。而图搜采集的用途恰恰就是给未关联 PDD 的虾皮商品找到 PDD 商品——入口条件与功能目的互相矛盾。
根因
勾选框的开关只有一个判据(
web/src/views/goauto/syb-products/index.vue:356):三个判据里没有图搜,且三个全都要求虾皮商品已关联 PDD:
按钮自身的条件其实是对的,不要求 PDD:
但它作用在
selectedProducts上,而未关联的行根本选不中,所以计数恒为 0。两处条件从未对齐。证据
shopee_product1528(虾皮44109310287)pdd_product_id为 NULL,其 23 条明细(含紫色 S/L/XL/2XL,订单260818PAXYEV7V等)三个判据全为 false,勾选框禁用。55550934512(14 色 35 条)同样。此前线上唯一一次图搜跑通,用的是已关联 PDD 的商品,走的是「图搜结果覆盖已有关联」那条路径。主场景(给未关联商品找货)从未被走通。
方案
isSelectableCandidate增加第四个判据:只读前端已有字段,无服务端改动。
[必须]不放宽任何采购门禁。可勾选不等于可采购:purchaseCandidates仍由isPurchaseCandidate单独把关,collectionCandidates仍由isCollectionCandidate把关。本次只让行可被勾选。非目标
collection_eligibility.go的任何判据。验收
验证
Web 构建;本地以
260818PAXYEV7V紫色明细人工核对上述五项。文档影响
仅前端可勾选条件,属于恢复既有设计意图的缺陷修复,无长期文档影响。
实施
提交
2f1e88e,单文件改动web/src/views/goauto/syb-products/index.vue(+7 −1)。新增
isImageSearchCandidate(row) { return Boolean(row.shopeeProductId && row.imageUrl) },接入
isSelectableCandidate作为第四个判据。与imageSearchRows的过滤条件逐字一致。未改服务端,
collection_eligibility.go未触碰。已验证
npm run build:prod,产出web/dist/index.html)。purchaseCandidates/collectionCandidates/aiMatchCandidates三个 computed 未改动,各自仍用isPurchaseCandidate/isCollectionCandidate/isAIMatchCandidate过滤;三个按钮的:disabled绑定未改动。loadPurchaseReadiness在刷新后用isSelectableCandidate复选行,新判据对它是一致的。未验证
浏览器人工核对(可勾选、计数、三个按钮候选数不变)尚未执行,需本地重启 Web 后进行。
状态
待验收。