xianyu-freedom-front/src/api/items.ts
2026-02-05 00:30:15 +08:00

76 lines
3.1 KiB
TypeScript

import { get, post, put, del } from '@/utils/request'
import type { Item, ItemReply, ApiResponse } from '@/types'
// 获取商品列表
export const getItems = async (goofishId?: string): Promise<{ success: boolean; data: Item[] }> => {
const url = goofishId ? `/products/account/${goofishId}` : '/products'
const result = await get<{ items?: Item[] } | Item[]>(url)
// 后端返回 { items: [...] } 或直接返回数组
const items = Array.isArray(result) ? result : (result.items || [])
return { success: true, data: items }
}
// 删除商品
export const deleteItem = (cookieId: string, itemId: string): Promise<ApiResponse> => {
return del(`/items/${cookieId}/${itemId}`)
}
// 批量删除商品
export const batchDeleteItems = (ids: { cookie_id: string; item_id: string }[]): Promise<ApiResponse> => {
return del('/items/batch', { data: { items: ids } })
}
// 从账号获取商品(分页)
export const fetchItemsFromAccount = (cookieId: string, page?: number): Promise<ApiResponse> => {
return post('/items/get-by-page', { cookie_id: cookieId, page: page || 1 })
}
// 获取账号所有页商品
export const fetchAllItemsFromAccount = (cookieId: string): Promise<ApiResponse> => {
return post('/products/get-all-from-account', { goofish_id: cookieId })
}
// 更新商品
export const updateItem = (cookieId: string, itemId: string, data: Partial<Item>): Promise<ApiResponse> => {
return put(`/items/${cookieId}/${itemId}`, data)
}
// 获取商品回复列表
export const getItemReplies = async (cookieId?: string): Promise<{ success: boolean; data: ItemReply[] }> => {
const params = cookieId ? `/cookie/${cookieId}` : ''
const result = await get<{ items?: ItemReply[] } | ItemReply[]>(`/itemReplays${params}`)
// 后端返回 { items: [...] } 格式
const items = Array.isArray(result) ? result : (result.items || [])
return { success: true, data: items }
}
// 添加商品回复
export const addItemReply = (cookieId: string, itemId: string, data: Partial<ItemReply>): Promise<ApiResponse> => {
return put(`/item-reply/${cookieId}/${itemId}`, data)
}
// 更新商品回复
export const updateItemReply = (cookieId: string, itemId: string, data: Partial<ItemReply>): Promise<ApiResponse> => {
return put(`/item-reply/${cookieId}/${itemId}`, data)
}
// 删除商品回复
export const deleteItemReply = (cookieId: string, itemId: string): Promise<ApiResponse> => {
return del(`/item-reply/${cookieId}/${itemId}`)
}
// 批量删除商品回复
export const batchDeleteItemReplies = (items: { cookie_id: string; item_id: string }[]): Promise<ApiResponse> => {
return del('/item-reply/batch', { data: { items } })
}
// 更新商品多数量发货状态
export const updateItemMultiQuantityDelivery = (cookieId: string, itemId: string, enabled: boolean): Promise<ApiResponse> => {
return put(`/items/${cookieId}/${itemId}/multi-quantity-delivery`, { multi_quantity_delivery: enabled })
}
// 更新商品多规格状态
export const updateItemMultiSpec = (cookieId: string, itemId: string, enabled: boolean): Promise<ApiResponse> => {
return put(`/items/${cookieId}/${itemId}/multi-spec`, { is_multi_spec: enabled })
}