44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
import { get, post, put } from '@/utils/request'
|
|
import type { PaginatedData } from '@/types/api'
|
|
import type { Order, OrderCreateResult, OrderSummary } from '@/types/order'
|
|
|
|
/** 下单明细行(金额一律服务端重算,前端不传金额) */
|
|
export interface OrderItemParam {
|
|
product_id: number
|
|
quantity: number
|
|
}
|
|
|
|
/** 下单参数 */
|
|
export interface CreateOrderParams {
|
|
items: OrderItemParam[]
|
|
/** 订单备注(≤255 字符) */
|
|
remark?: string
|
|
}
|
|
|
|
/** 下单:POST /mini/order */
|
|
export function createOrderApi(params: CreateOrderParams) {
|
|
return post<OrderCreateResult>('/mini/order', params)
|
|
}
|
|
|
|
/** 历史订单列表(强制本店隔离):GET /mini/order */
|
|
export function getOrderListApi(
|
|
params: { status?: number; page?: number; pageSize?: number } = {},
|
|
) {
|
|
return get<PaginatedData<Order>>('/mini/order', { data: params })
|
|
}
|
|
|
|
/** 周期汇总:GET /mini/order/summary */
|
|
export function getOrderSummaryApi(period: 'day' | 'week' | 'month' = 'month') {
|
|
return get<OrderSummary>('/mini/order/summary', { data: { period } })
|
|
}
|
|
|
|
/** 订单详情(校验本店归属):GET /mini/order/{id} */
|
|
export function getOrderDetailApi(id: number) {
|
|
return get<Order>(`/mini/order/${id}`)
|
|
}
|
|
|
|
/** 取消订单(仅待汇总可取消):PUT /mini/order/{id}/cancel */
|
|
export function cancelOrderApi(id: number) {
|
|
return put(`/mini/order/${id}/cancel`)
|
|
}
|