diff --git a/src/modules/overseas-warehouse/api/lastMileOrders.ts b/src/modules/overseas-warehouse/api/lastMileOrders.ts index b1057285..859aaab3 100644 --- a/src/modules/overseas-warehouse/api/lastMileOrders.ts +++ b/src/modules/overseas-warehouse/api/lastMileOrders.ts @@ -72,6 +72,9 @@ export interface LastMileOrderSummaryDto { relabelOrderNo?: string | null relabelStatus?: string | null palletMergeFlag?: string | null + /** Optional grouping facts returned by newer last-leg services. */ + palletMergeBatchId?: string | null + palletMergeOrderNos?: string[] | null currentStatus?: string | null privateRemark?: string | null customerRemark?: string | null diff --git a/src/modules/overseas-warehouse/lastMilePresentation.ts b/src/modules/overseas-warehouse/lastMilePresentation.ts index d01d1ba8..591158f8 100644 --- a/src/modules/overseas-warehouse/lastMilePresentation.ts +++ b/src/modules/overseas-warehouse/lastMilePresentation.ts @@ -99,6 +99,9 @@ export function toLastMileOrderListItem(dto: LastMileOrderSummaryDto): LastMileO relabelStatus: lastMileStatusLabel(dto.relabelStatus), consolidated: palletMergeLabel(dto.palletMergeFlag), palletMergeFlag: String(dto.palletMergeFlag ?? '').trim(), + palletMergeRelation: Array.isArray(dto.palletMergeOrderNos) && dto.palletMergeOrderNos.length + ? dto.palletMergeOrderNos.map((value) => text(value)).join('、') + : dto.palletMergeBatchId ? `批次 ${text(dto.palletMergeBatchId)}` : '—', status: lastMileStatusLabel(dto.currentStatus), internalRemark: text(dto.privateRemark), customerRemark: text(dto.customerRemark), diff --git a/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue b/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue index 1091fb5f..67a1b931 100644 --- a/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue +++ b/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue @@ -89,6 +89,7 @@ const columns: DataTableColumn[] = [ { key: 'relabelOrderNo', prop: 'relabelOrderNo', label: '换标单号', minWidth: 150 }, { key: 'relabelStatus', prop: 'relabelStatus', label: '换标状态', width: 110 }, { key: 'consolidated', prop: 'consolidated', label: '合托标记', width: 100 }, + { key: 'palletMergeRelation', prop: 'palletMergeRelation', label: '合托关联订单', minWidth: 180 }, { key: 'status', prop: 'status', label: '当前状态', width: 110 }, { key: 'createdAt', prop: 'createdAt', label: '创建时间', minWidth: 170 }, { key: 'internalRemark', prop: 'internalRemark', label: '备注(仅自己)', minWidth: 160 }, @@ -197,6 +198,21 @@ async function batchPalletMerge() { } catch (error) { actionError.value = getApiErrorDetails(error, '批量合托标记失败,请重试') } finally { actionLoading.value = false } } +async function cancelBatchPalletMerge() { + const targets = selectedRows.value.filter((row) => row.palletMergeFlag === 'REQUIRED') + if (!targets.length) { ElMessage.warning('请选择至少 1 条待合托订单'); return } + try { + await ElMessageBox.confirm(`确定取消选中的 ${targets.length} 条订单合托标记吗?`, '取消合托标记', { type: 'warning', confirmButtonText: '确认取消', cancelButtonText: '返回' }) + } catch { return } + actionLoading.value = true; actionError.value = null + try { + await Promise.all(targets.map((row) => setLastMileOrderPalletMergeRequired(row.id, { palletMergeRequired: false }))) + selectedRows.value = [] + ElMessage.success(`已取消 ${targets.length} 条订单合托标记`) + await load() + } catch (error) { actionError.value = getApiErrorDetails(error, '取消合托标记失败,请重试') } + finally { actionLoading.value = false } +} async function submitTransfer() { if (!transferForm.warehouseId.trim() || !transferForm.warehouseCode.trim() || !transferForm.warehouseName.trim()) { ElMessage.warning('请填写目的仓 ID、代码和名称') @@ -244,7 +260,7 @@ onMounted(() => { void load() })
- +
diff --git a/src/modules/overseas-warehouse/types.ts b/src/modules/overseas-warehouse/types.ts index 05fe3258..9de832a2 100644 --- a/src/modules/overseas-warehouse/types.ts +++ b/src/modules/overseas-warehouse/types.ts @@ -37,6 +37,7 @@ export interface LastMileOrderListItem { relabelStatus: string consolidated: string palletMergeFlag: string + palletMergeRelation: string status: string internalRemark: string customerRemark: string