daShangDao_psiWebApp/backups/shipping-order.js.bak
97694731 0543936df8
Some checks failed
CI / build (20.x) (push) Waiting to run
CI / lint (push) Waiting to run
CI / test (push) Waiting to run
CI / deploy-preview (push) Blocked by required conditions
CI / security (push) Waiting to run
CI / build (18.x) (push) Has been cancelled
change store
2026-06-04 11:18:46 +08:00

94 lines
3.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import request from '@/utils/request'
/** 发货单 API 基础路径 */
const API_BASE = '/shipping-order'
/**
* 标准化列表接口返回的数据格式
* @param {Object} payload - 接口返回的原始响应对象
* @returns {{ list: Array, total: number }} 标准化后的列表数据
*/
const normalizeListResponse = (payload) => {
const data = payload?.data
if (!data) return { list: [], total: 0 }
if (Array.isArray(data)) return { list: data, total: data.length }
return {
list: Array.isArray(data.list) ? data.list : [],
total: typeof data.total === 'number' ? data.total : 0
}
}
/**
* 获取发货单列表(支持分页和筛选)
* @param {Object} params - 请求参数
* @param {string} [params.check_no] - 搜索关键字(发货单号)
* @param {number} [params.status] - 状态筛选
* @param {number} [params.customer_id] - 客户ID筛选
* @param {number} [params.warehouse_id] - 仓库ID筛选
* @param {number} [params.sales_order_id] - 销售订单ID筛选
* @param {number} [params.wave_task_id] - 波次任务ID筛选
* @param {number} [params.page] - 当前页码
* @param {number} [params.pageSize] - 每页条数
* @returns {Promise<{ list: Array, total: number }>} 标准化后的发货单列表
*/
export const fetchShippingOrderList = async ({ check_no, status, customer_id, warehouse_id, sales_order_id, wave_task_id, page, pageSize }) => {
const params = {
check_no: check_no || undefined,
status,
customer_id,
warehouse_id,
sales_order_id,
wave_task_id,
page,
page_size: pageSize
}
const response = await request.get(`${API_BASE}/list`, { params })
return normalizeListResponse(response)
}
/**
* 获取单个发货单详情(含明细行)
* @param {string|number} id - 发货单ID
* @returns {Promise<Object|null>} 发货单详情对象
*/
export const fetchShippingOrderDetail = async (id) => {
const response = await request.get(`${API_BASE}/detail`, { params: { id } })
return response?.data || null
}
/**
* 生成发货单form-data 格式)
* @param {Object} params
* @param {number} params.total - 选中的出库单数量
* @param {number[]} params.outbound_order_ids - 选中的出库单 ID 数组
* @returns {Promise}
*/
export const createShippingOrder = async ({ total, outbound_order_ids }) => {
// 手动构建 FormData按照 outbound_order_ids[0]={id} 的格式
const formData = new FormData()
formData.append('total', String(total))
outbound_order_ids.forEach((id, index) => {
formData.append(`order_ids[${index}]`, String(id))
})
return request.post(`${API_BASE}/create`, formData)
}
/**
* 更新发货单物流信息form-data 格式)
* @param {Object} params
* @param {number} params.shipping_order_id - 发货单ID
* @param {number} params.sales_order_item_id - 销售订单明细ID
* @param {string} params.logistics_company - 物流公司
* @param {string} params.logistics_no - 物流单号
* @returns {Promise}
*/
export const updateShippingOrderLogistics = async ({ shipping_order_id, sales_order_item_id, logistics_company, logistics_no }) => {
const formData = new FormData()
formData.append('shipping_order_id', String(shipping_order_id))
formData.append('total', '1')
formData.append('sales_order_item_id', String(sales_order_item_id))
formData.append('logistics_company', logistics_company)
formData.append('logistics_no', logistics_no)
return request.post(`${API_BASE}/update`, formData)
}