Files
lilishop-uniapp/utils/orderDelivery.js
田香琪 651d1106da refactor(logistics): 重构物流信息展示与处理逻辑
- 更新物流详情页面,简化数据获取流程,增强用户体验。
- 优化订单详情页面,动态展示物流信息,支持不同配送状态。
- 新增配送工具函数,提升代码复用性与可读性。
- 调整样式以改善界面布局,确保信息清晰可读。
2026-08-13 17:23:25 +08:00

48 lines
1.4 KiB
JavaScript

/**
* 订单配送展示工具(整单 / 拆单 / 无需配送)
*/
export function shouldLoadDelivery(order) {
return (
order?.deliveryMethod === 'LOGISTICS' &&
order?.allowOperationVO?.showLogistics === true
)
}
export function isNoDelivery(packageItem) {
return (
packageItem?.fulfillmentMode === 'NO_DELIVERY' ||
packageItem?.logisticsRequired === false
)
}
export function getPackageTitle(packageItem, index) {
if (isNoDelivery(packageItem)) return '无需配送'
if (packageItem?.fulfillmentMode === 'WHOLE') return '整单发货'
if (packageItem?.fulfillmentMode === 'SPLIT') return `包裹 ${index + 1}`
return `包裹 ${index + 1}`
}
export function getDeliveryEntryText(packages, orderStatus, legacyTraces) {
if (packages?.length) {
const allNoDelivery = packages.every(isNoDelivery)
if (allNoDelivery) return '查看配送说明'
if (orderStatus === 'PARTS_DELIVERED') {
return `已发出 ${packages.length} 个包裹,剩余商品待发货`
}
return `${packages.length} 个配送包裹`
}
const traces = legacyTraces?.traces
if (Array.isArray(traces) && traces.length) {
const latest = traces[0]
return latest?.AcceptStation || '商家已发货,物流信息同步中'
}
return '商家已发货,物流信息同步中'
}
export function getOrderAllowOperation(order, orderDetail) {
return order?.allowOperationVO || orderDetail?.allowOperationVO || {}
}