50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { get, post, put } from '@/utils/request'
|
||
import type { PaginatedData } from '@/types/api'
|
||
import type { OrderCreateResult, OrderDetail, OrderListItem, OrderStatus } from '@/types/order'
|
||
|
||
/** 下单明细行(金额一律服务端重算,前端不传金额) */
|
||
export interface OrderItemParam {
|
||
product_id: number
|
||
quantity: number
|
||
}
|
||
|
||
/** 下单参数 */
|
||
export interface CreateOrderParams {
|
||
items: OrderItemParam[]
|
||
/** 订单备注(≤255 字符) */
|
||
remark?: string
|
||
}
|
||
|
||
/** 订单列表查询参数 */
|
||
export interface OrderListParams {
|
||
/** 订单状态,不传=全部 */
|
||
status?: OrderStatus
|
||
/** 订货日期起(Y-m-d) */
|
||
start_date?: string
|
||
/** 订货日期止(Y-m-d),不得早于 start_date */
|
||
end_date?: string
|
||
page?: number
|
||
/** 每页数量,默认 10,最大 50 */
|
||
pageSize?: number
|
||
}
|
||
|
||
/** 下单:POST /mini/order */
|
||
export function createOrderApi(params: CreateOrderParams) {
|
||
return post<OrderCreateResult>('/mini/order', params)
|
||
}
|
||
|
||
/** 历史订单列表(强制本店隔离,按订货日期倒序):GET /mini/order */
|
||
export function getOrderListApi(params: OrderListParams = {}) {
|
||
return get<PaginatedData<OrderListItem>>('/mini/order', { data: params })
|
||
}
|
||
|
||
/** 订单详情(校验本店归属,含完整明细):GET /mini/order/{id} */
|
||
export function getOrderDetailApi(id: number) {
|
||
return get<OrderDetail>(`/mini/order/${id}`)
|
||
}
|
||
|
||
/** 取消订单(仅待接单可取消):PUT /mini/order/{id}/cancel */
|
||
export function cancelOrderApi(id: number) {
|
||
return put(`/mini/order/${id}/cancel`)
|
||
}
|