feat: 平台管理员可在前端分配商品给商户
后端: - service: 新增 ListProductCatalog(自营商户商品目录)、ListMerchantProductsByAdmin、AssignProducts(按目录ID批量同步商户商品,未勾选的已有商品会被移除) - handler + router: 新增 GET /platform/product-catalog、GET /platform/merchants/:id/products、POST /platform/merchants/:id/products/assign 三个管理员路由 前端: - types: 新增 ProductCatalogItem 类型 - api: platformApi 新增 productCatalog / merchantProducts / assignProducts - PlatformMerchants: 商户列表操作列新增「分配商品」按钮,弹窗内以表格+复选框展示平台商品目录,支持全选/清空/重置,打开时按已有商品预选,保存后同步分配结果 实测:创建商户自动获得27个默认商品,管理员可随时增减调整
This commit is contained in:
@@ -11,6 +11,7 @@ import type {
|
||||
MerchantMember,
|
||||
MerchantProduct,
|
||||
PageResult,
|
||||
ProductCatalogItem,
|
||||
User,
|
||||
WalletAccount,
|
||||
WalletLedgerEntry,
|
||||
@@ -112,4 +113,10 @@ export const platformApi = {
|
||||
merchantId: number,
|
||||
data: { user_id: number; role: MerchantMember['role']; is_default?: boolean },
|
||||
) => request.post(`/platform/merchants/${merchantId}/members`, data).then((r) => r.data.data as MerchantMember),
|
||||
productCatalog: () =>
|
||||
request.get('/platform/product-catalog').then((r) => r.data.data as ProductCatalogItem[]),
|
||||
merchantProducts: (merchantId: number) =>
|
||||
request.get(`/platform/merchants/${merchantId}/products`).then((r) => r.data.data as ProductCatalogItem[]),
|
||||
assignProducts: (merchantId: number, catalogIds: number[]) =>
|
||||
request.post(`/platform/merchants/${merchantId}/products/assign`, { catalog_ids: catalogIds }).then((r) => r.data.data as { assigned: number }),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user