From c0fa1ce434ab2636450ac7487fb4e7e548397f56 Mon Sep 17 00:00:00 2001 From: agent Date: Sun, 4 Oct 2026 17:34:11 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9F=E5=8D=96=E9=80=9A=E9=85=8D=E6=96=B9?= =?UTF-8?q?=E5=BF=AB=E7=85=A7=EF=BC=9A=E8=A1=A5=20Vue+Pinia=20=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E8=87=AA=E6=A3=80=EF=BC=88=E5=AD=97=E6=AE=B5=E6=98=A0?= =?UTF-8?q?=E5=B0=84=EF=BC=89+=20=E7=B1=BB=E7=9B=AE=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E6=9C=AA=E5=85=B3=E4=BC=9A=E4=B8=A2=E5=AD=97=E6=AE=B5=E7=9A=84?= =?UTF-8?q?=E5=85=9C=E5=BA=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 速卖通建品/RECIPE-2026-09-30.md | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/速卖通建品/RECIPE-2026-09-30.md b/速卖通建品/RECIPE-2026-09-30.md index 800c879..ccc045f 100644 --- a/速卖通建品/RECIPE-2026-09-30.md +++ b/速卖通建品/RECIPE-2026-09-30.md @@ -72,6 +72,15 @@ 7. **`pageList` 不返回 `detail` / `packageWeight` / `packageLength`**(100 行全空)→ **不能**用它判断描述/重量/尺寸是否存进去,只能看保存时有没有报错。别把空值当「没保存」。 +### ⚠ 类目弹窗「点了行但没关窗」→ 后面所有字段都填不进去(2026-09-30 实测) + +`pickCategoryBySearch` 点结果行后**有时弹窗不关**。不关的弹窗会挡住后续所有点击: +标题/价格/库存/来源URL 全部写不进去(但类目已选,看起来「像成功了」)—— +上一版就是这样,保存时报的却是别的字段,或直接存成空字段。 +**现在两处兜底**:① `closeCategoryModal()` 主动确认并 Esc/点「关闭」强关; +② **模型自检** `smtModelGaps()` 会在保存前报出 `subject(标题)/skuPrice(价格)/ipmSkuStock(库存)` 为空 → 跳过保存。 +实测四个品修完后 `gaps=[]`(title 115–127 / price 5.3–15.9 / stock 999 / desc 1990–3252)。 + ## 3. 脚本 ```bash @@ -124,3 +133,37 @@ XAGOKS9C ✅ 待发布 1 | 草稿 0 | 托特包 ¥15.90 图6 ★ **页面上的店铺下拉是子集**:速卖通页只列 10 家,`shopMap` 里是 61 家。 判断「这个登录有没有某平台店铺」用 `readAccountShops`;判断「这个店能不能在这个页面选到」才用 `listShopOptions`。 + +## 附二:Vue 3 + Pinia 模型层自检(2026-09-30 加,**保存前必做**) + +店小秘所有平台添加页都是 **Vue 3.5.4 + Pinia**(`#app.__vue_app__.config.globalProperties.$pinia`)。 +**DOM 里显示的值 ≠ 表单模型里的值**;填了 DOM 而模型为空时点保存会「静默失败」或存成空字段。 +→ 保存前读模型自检:`smtModelSnapshot(c)` + `smtModelGaps(model)`,**gaps 非空则跳过保存**。 + +速卖通的字段映射(实测,`smtAddBasicStore.formState` / `smtAddProductStore.formState`): + +| 业务字段 | 模型路径 | +|---|---| +| 店铺 / 类目 / 标题 | `smtAddBasicStore.formState.{shopId,categoryId,subject}` | +| 价格 / **货值** / 库存 / 编码 | `smtAddProductStore.formState.{skuPrice,cargoPrice,ipmSkuStock,skuCode}` | +| 重量 / 尺寸(长宽高) | `packageWeight` / `packageLength,packageWidth,packageHeight` | +| 是否原箱 | `originalBox`("0"=否) | +| **物流属性** | `specialProductTypeList`(普货 = `["1983471271:2025103"]`) | +| 图片 | `imageList[]` | +| **描述** | `smtAddStore.describeInfoData.detail`(PC端)/ `mobileDetail`(无线端) | + +一次干净的 dry 实测(RV8I478D): +``` +shopId=135223 categoryId=201717001 subjectLen=121 +skuPrice=6.65 cargoPrice=5.5 ipmSkuStock=999 skuCode=ZSJLQ_1be +packageWeight=0.10 dims=28/16/1 originalBox=0 +specialProductTypeList=["1983471271:2025103"] images=6 descLen=1935 → gaps=[] +``` +结论:**描述确实是写进模型的**(1935 字符,在 `describeInfoData.detail`);**物流属性的 UI 路径也确实会提交到模型**。 +之前「描述可能没保存」的疑虑到此消除;`pageList` 不返回这些字段只是列表投影问题。 + +其它平台 store 命名同构(`` = smt / shopeeGlobal / tiktokGlobal / ozonProduct): +`AddStore`(编排+描述)· `BasicStore` · `ProductStore` · `AttrStore` · `OtherStore` +· `SkuDataStore`/`SkuAttrStore`(变种)· `PackageStore`/`DescStore`(Shopee/Ozon)。 +公共:`activity` `global` `user` `userPlatforms` `batchImageTaskStore` `*Translate*`。 +用 `vueStores(c)` 列全部、`readPinia(c, storeId, path)` 读任意字段。