order.ts 3.5 KB
import { request } from '../utils/request'

// 订单相关类型定义
export interface OrderInfo {
  orderId: number
  orderNo: string
  dealerCode: string
  dealerName: string
  orderDate: string
  totalAmount: number
  rebateAmount?: number
  deliveryStatus: number
  invoiceStatus: number
  rebateCalcFlag: number
  dataSource?: string
  verifyStatus: number
  uploadTime?: string
  createBy?: string
  createTime?: string
  updateBy?: string
  updateTime?: string
  orderItems?: OrderItemInfo[]
}

export interface OrderItemInfo {
  itemId?: number
  orderId?: number
  productCode: string
  productName: string
  productQty: number
  unitPrice: number
  itemAmount: number
}

export interface OrderQueryReq {
  orderNo?: string
  dealerCode?: string
  dealerName?: string
  deliveryStatus?: number
  invoiceStatus?: number
  rebateCalcFlag?: number
  dataSource?: string
  verifyStatus?: number
  orderStartDate?: string
  orderEndDate?: string
  minAmount?: number
  maxAmount?: number
  pageNum?: number
  pageSize?: number
}

export interface OrderAddReq {
  orderNo: string
  dealerCode: string
  dealerName: string
  orderDate: string
  totalAmount: number
  rebateAmount?: number
  deliveryStatus?: number
  invoiceStatus?: number
  rebateCalcFlag?: number
  dataSource?: string
  verifyStatus?: number
  uploadTime?: string
  orderItems: OrderItemAddReq[]
}

export interface OrderItemAddReq {
  productCode: string
  productName: string
  productQty: number
  unitPrice: number
  itemAmount: number
}

export interface OrderUpdateReq {
  orderId: number
  orderNo: string
  dealerCode: string
  dealerName: string
  orderDate: string
  totalAmount: number
  rebateAmount?: number
  deliveryStatus?: number
  invoiceStatus?: number
  rebateCalcFlag?: number
  dataSource?: string
  verifyStatus?: number
  uploadTime?: string
  orderItems: OrderItemUpdateReq[]
}

export interface OrderItemUpdateReq {
  itemId?: number
  productCode: string
  productName: string
  productQty: number
  unitPrice: number
  itemAmount: number
}

// 订单API接口
export const orderApi = {
  // 分页查询订单列表
  getOrderList: (params: OrderQueryReq) => {
    return request.get('/order/list', params)
  },

  // 获取订单详情
  getOrderDetail: (orderId: number) => {
    return request.get(`/order/${orderId}`)
  },

  // 新增订单
  addOrder: (data: OrderAddReq) => {
    return request.post('/order', data)
  },

  // 修改订单
  updateOrder: (data: OrderUpdateReq) => {
    return request.post('/order/update', data)
  },

  // 删除订单
  deleteOrder: (orderId: number) => {
    return request.delete(`/order/${orderId}`)
  },

  // 批量删除订单
  batchDeleteOrders: (orderIds: number[]) => {
    return request.post('/order/batchDelete', orderIds)
  },

  // 修改订单出库状态
  updateDeliveryStatus: (orderId: number, deliveryStatus: number) => {
    return request.post(`/order/${orderId}/deliveryStatus`, null, {
      params: { deliveryStatus }
    })
  },

  // 修改订单开票状态
  updateInvoiceStatus: (orderId: number, invoiceStatus: number) => {
    return request.post(`/order/${orderId}/invoiceStatus`, null, {
      params: { invoiceStatus }
    })
  },

  // 修改订单返利计算状态
  updateRebateCalcFlag: (orderId: number, rebateCalcFlag: number) => {
    return request.post(`/order/${orderId}/rebateCalcFlag`, null, {
      params: { rebateCalcFlag }
    })
  },

  // 导出订单数据
  exportOrders: (params: OrderQueryReq) => {
    return request.post('/order/export', params, { responseType: 'blob' })
  }
}