速卖通配方快照:补 Vue+Pinia 模型自检(字段映射)+ 类目弹窗未关会丢字段的兜底
This commit is contained in:
1 parent
9bc7792464
commit
c0fa1ce434
1 file changed
+43
@@ -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 命名同构(`<platform>` = smt / shopeeGlobal / tiktokGlobal / ozonProduct):
|
||||
`<platform>AddStore`(编排+描述)· `BasicStore` · `ProductStore` · `AttrStore` · `OtherStore`
|
||||
· `SkuDataStore`/`SkuAttrStore`(变种)· `PackageStore`/`DescStore`(Shopee/Ozon)。
|
||||
公共:`activity` `global` `user` `userPlatforms` `batchImageTaskStore` `*Translate*`。
|
||||
用 `vueStores(c)` 列全部、`readPinia(c, storeId, path)` 读任意字段。
|
||||
Reference in new issue
Block a user