delivery.ts 2.2 KB
import { request } from '../utils/request'

// 出库相关类型定义
export interface DeliveryInfo {
  deliveryId: number
  orderId: number
  orderNo: string
  dealerCode: string
  dealerName: string
  deliveryDate: string
  totalAmount: number
  deliveryStatus: number
  createBy?: string
  createTime?: string
  updateBy?: string
  updateTime?: string
  deliveryItems?: DeliveryItemInfo[]
}

export interface DeliveryItemInfo {
  itemId?: number
  deliveryId?: number
  productCode: string
  productName: string
  productQty: number
  unitPrice: number
  totalPrice: number
  createBy?: string
  createTime?: string
}

export interface DeliveryQueryReq {
  pageNum?: number
  pageSize?: number
  orderNo?: string
  dealerCode?: string
  dealerName?: string
  deliveryStartDate?: string
  deliveryEndDate?: string
  deliveryStatus?: number
}

export interface DeliveryAddReq {
  orderId: number
  deliveryDate: string
  deliveryItems: Omit<DeliveryItemInfo, 'itemId' | 'deliveryId' | 'createBy' | 'createTime'>[]
}

export interface DeliveryUpdateReq {
  deliveryId: number
  deliveryDate?: string
  deliveryStatus?: number
  deliveryItems?: Omit<DeliveryItemInfo, 'itemId' | 'deliveryId' | 'createBy' | 'createTime'>[]
}

// 出库API接口
export const deliveryApi = {
  // 分页查询出库列表
  getDeliveryList: (params: DeliveryQueryReq) => {
    return request.get('/api/delivery/list', { params })
  },

  // 获取出库详情
  getDeliveryDetail: (deliveryId: number) => {
    return request.get(`/api/delivery/${deliveryId}`)
  },

  // 新增出库
  addDelivery: (data: DeliveryAddReq) => {
    return request.post('/api/delivery/add', data)
  },

  // 更新出库
  updateDelivery: (data: DeliveryUpdateReq) => {
    return request.post('/api/delivery/update', data)
  },

  // 删除出库
  deleteDelivery: (deliveryId: number) => {
    return request.delete(`/api/delivery/${deliveryId}`)
  },

  // 批量删除出库
  batchDeleteDelivery: (deliveryIds: number[]) => {
    return request.post('/api/delivery/batchDelete', deliveryIds)
  },

  // 导出出库数据
  exportDelivery: (params: DeliveryQueryReq) => {
    return request.get('/api/delivery/export', { params, responseType: 'blob' })
  }
}

export default deliveryApi