hbsmUniapp/src/api/order.ts
2025-08-27 20:45:34 +08:00

272 lines
4.8 KiB
TypeScript

import type { PageResult, TabItem } from '@/types/global'
import type {
orderResult,
orderCreateParams,
orderCreateResult,
orderPreResult,
orderListResult,
orderListParams,
orderPreParams,
orderEvaluateParams,
orderEvaluateListParams,
orderEvaluateListResult,
orderRefundRequest,
orderRefundDetailResult,
orderRefundListResult,
orderDeliveryResult,
} from '@/types/order'
import { request } from '@/utils/request'
const orderUrl = 'shop/order'
const refundUrl = 'shop/orderRefund'
const evaluateUrl = 'shop/orderEvaluate'
/**
* 获取购物车下单前信息
* @param id
* @returns
*/
export const getCartOrderPreApi = (data: {
address_id: string | number
coupon_id: string | number
}) => {
return request<orderPreResult>({
method: 'GET',
url: `${orderUrl}/preCart`,
data,
})
}
/**
* 获取订单下单前信息
* @param data
* @returns
*/
export const getOrderPreApi = (data: orderPreParams) => {
return request<orderPreResult>(
{
method: 'GET',
url: `${orderUrl}/pre`,
data,
},
false,
)
}
/**
* 提交订单
* @returns
*/
export const postOrderApi = (data: orderCreateParams) => {
return request<orderCreateResult>({
method: 'POST',
url: `${orderUrl}/create`,
data,
})
}
/**
* 填写订单-再次购买
* @param id 订单id
*/
export const getRepurchaseOrderPreByOrderIdApi = (data: {
id: number | string
address_id: string | number
coupon_id: string | number
}) => {
return request<orderPreResult>({
method: 'GET',
url: `${orderUrl}/preRepurchase`,
data,
})
}
/**
* 确认收货
* @param id 订单id
*/
export const receiveOrderById = (id: number) => {
return request<orderResult>({
method: 'POST',
url: `${orderUrl}/receive`,
data: {
id,
},
})
}
/**
* 获取订单物流
* @param id 订单id
*/
export const getOrderDeliveryByIdApi = (id: number) => {
return request<orderDeliveryResult[]>({
method: 'GET',
url: `${orderUrl}/delivery`,
data: {
id,
},
})
}
/**
* 删除订单
* @param data 订单id集合
* @returns
*/
export const deleteOrderApi = (data: { id: number[] }) => {
return request({
method: 'POST',
url: `${orderUrl}/delete`,
data,
})
}
/**
* 取消订单
* @param id 订单id
* @param data cancelReason 取消理由
*/
export const putOrderCancelByIdApi = (data: {
id: number | number
cancel_reason?: string
time_out?: boolean //是否超时取消
}) => {
return request<orderResult>({
method: 'POST',
url: `${orderUrl}/cancel`,
data,
})
}
/**
* 获取订单列表
* @param data orderState 订单状态
*/
export const getOrderListApi = (data: orderListParams) => {
return request<
PageResult<orderListResult> & {
tabs: TabItem[]
}
>({
method: 'GET',
url: `${orderUrl}/list`,
data,
})
}
export const getOrderTabsApi = () => {
return request<TabItem[]>({
method: 'GET',
url: `${orderUrl}/tabs`,
})
}
/**
* 根据ID获取订单详情
* @param id
* @returns
*/
export const getOrderDetailByIdApi = (id: number) => {
return request<orderResult>({
method: 'GET',
url: `${orderUrl}/detail`,
data: {
id,
},
})
}
/**
* 添加商品评价
* @param data
* @returns
*/
export const postOrderEvaluateApi = (data: orderEvaluateParams) => {
return request({
method: 'POST',
url: `${evaluateUrl}/add`,
data,
})
}
/**
* 获取订单评价列表
* @param data
* @returns
*/
export const getOrderEvaluateListApi = (data: orderEvaluateListParams) => {
return request<PageResult<orderEvaluateListResult[]>>({
method: 'GET',
url: `${evaluateUrl}/list`,
data,
})
}
/**
* 获取订单评价tab项
* @returns
*/
export const getOrderEvaluateTabsApi = (data: { goods_id: string }) => {
return request<TabItem[]>({
method: 'GET',
url: `${evaluateUrl}/tabs`,
data,
})
}
/**
* 提交售后申请
* @param data
* @returns
*/
export const postOrderRefundApi = (data: orderRefundRequest) => {
return request({
method: 'POST',
url: `${refundUrl}/refund`,
data,
})
}
/**
* 获取售后列表
* @param status
* @returns
*/
export const getOrderRefundListApi = (data: { status: string | number }) => {
return request<PageResult<orderRefundListResult[]>>({
method: 'GET',
url: `${refundUrl}/list`,
data,
})
}
/**
* 售后详情
* @param data
* @returns
*/
export const getOrderRefundDetailApi = (data: { id: number }) => {
return request<orderRefundDetailResult>({
method: 'GET',
url: `${refundUrl}/detail`,
data,
})
}
/**
* 用户退货
*/
export const postOrderRefundReturnApi = (data: {
id: number
delivery_company_id: number
delivery_no: string
delivery_company: string
}) => {
return request({
method: 'POST',
url: `${refundUrl}/refundReturn`,
data,
})
}