feat(admin): 品牌管理 + 新建商品
品牌管理:列出品牌及引用商品数,支持改名、合并重复品牌(把源品牌的商品并入目标后删除源)、删除未被引用的品牌。新建商品:商品列表新增「新建商品」入口,填写名称/条码/品牌/品类后创建并进入详情页继续补全。 Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
@@ -61,6 +61,11 @@ export const api = {
|
||||
}>(`/products?q=${encodeURIComponent(q)}&page=${page}&size=${size}`),
|
||||
getProduct: (id: string) =>
|
||||
request<import("./types").ProductDetail>(`/products/${id}`),
|
||||
createProduct: (body: unknown) =>
|
||||
request<import("./types").ProductDetail>("/products", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(body),
|
||||
}),
|
||||
updateProduct: (id: string, body: unknown) =>
|
||||
request<import("./types").ProductDetail>(`/products/${id}`, {
|
||||
method: "PUT",
|
||||
@@ -102,6 +107,23 @@ export const api = {
|
||||
),
|
||||
listBrands: () =>
|
||||
request<{ items: import("./types").Brand[] }>("/brands"),
|
||||
createBrand: (name: string) =>
|
||||
request<import("./types").Brand>("/brands", {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ name }),
|
||||
}),
|
||||
updateBrand: (id: string, name: string) =>
|
||||
request<import("./types").Brand>(`/brands/${id}`, {
|
||||
method: "PUT",
|
||||
body: JSON.stringify({ name }),
|
||||
}),
|
||||
mergeBrands: (id: string, targetId: string) =>
|
||||
request<import("./types").Brand>(`/brands/${id}/merge`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ target_id: targetId }),
|
||||
}),
|
||||
deleteBrand: (id: string) =>
|
||||
request<{ status: string }>(`/brands/${id}`, { method: "DELETE" }),
|
||||
listCategories: () =>
|
||||
request<{ items: import("./types").Category[] }>("/categories"),
|
||||
createCategory: (body: import("./types").CategoryInput) =>
|
||||
|
||||
Reference in New Issue
Block a user