feat(product-create): upload-first 建商品 —— 图拖入即进桶,创建时带 asset 一块落库
- 抽屉拖入/选图 → 立刻 POST /api/assets/upload/ 传进 TOS 桶拿 asset id(每张带上传中/完成/失败态, 首图标「主图」=cover_asset);上传未完成禁用「创建商品」 - 点创建 → POST /api/products/ 直接带 cover_asset + images inline 落库,一步到位,不再「先建后传图」 (那条因传图接口需先有商品 ID,与「创建必须带图」校验天然冲突 → 建商品恒 400「商品创建失败」) - 同步读取 File:addImages 一进来就 Array.from 取文件,避免 pickImage 紧接的 input.value="" 清空 input.files 导致「第一次点没反应、第二次才上传」;选好即发起上传,不靠会滞后的 effect - 后端保留「创建必须带图」校验(upload-first 下可满足、且正确) 真实接口验:独立上传 201 → 带 cover+images 创建 201(落库)→ 无图创建 400;tsc/build/后端测试通过。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
6916f9c877
commit
f02c8053a1
@@ -217,6 +217,9 @@ export const api = {
|
||||
description?: string;
|
||||
specs?: Record<string, unknown>;
|
||||
selling_points?: Array<{ title: string; detail: string; sort_order: number }>;
|
||||
// upload-first:创建时带上已传进桶的图(cover_asset = 主图 asset id;images = 全部图)
|
||||
cover_asset?: string;
|
||||
images?: Array<{ asset: string; sort_order: number; is_primary?: boolean }>;
|
||||
}) {
|
||||
return request<Product>("/api/products/", { method: "POST", body: JSON.stringify(payload) });
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user