From 7d5bee80b8f85a437a1c399bfe62058cbd9141e4 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Tue, 15 Sep 2026 15:53:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../container-loading/pages/ContainerDetailView.vue | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/modules/container-loading/pages/ContainerDetailView.vue b/src/modules/container-loading/pages/ContainerDetailView.vue index b884bcd2..82ccf5c7 100644 --- a/src/modules/container-loading/pages/ContainerDetailView.vue +++ b/src/modules/container-loading/pages/ContainerDetailView.vue @@ -38,6 +38,7 @@ import { updateContainerPickupCode, } from '../api/platformContainerLoading' import { recordTerminalDrayageEmptyReturn } from '../api/terminalDrayages' +import { listContainerArrivalTimes, type ContainerArrivalTime } from '../api/containerArrivalTimes' import type { BusinessDocument, ContainerBookingResource, ContainerOverview, ContainerOverviewDocument, ContainerPlanStatus, ContainerWorkbenchAction, ContainerWorkbenchRow } from '../types' const props = withDefaults(defineProps<{ workbench?: 'DOMESTIC' | 'OVERSEAS' }>(), { workbench: 'DOMESTIC' }) @@ -82,6 +83,7 @@ async function rememberWorkbenchTab(tabName: string | number) { } } const workbenchDetail = ref(null) +const arrivalTime = ref(null) const hasAction = (action: ContainerWorkbenchAction) => Boolean(workbenchDetail.value?.allowedActions?.includes(action)) const canEdit = computed(() => isDomestic.value && access.can('platform:firstleg:container:edit') && hasAction('EDIT_CONTAINER')) const canManageCustoms = computed(() => isDomestic.value && access.can('platform:firstleg:customs:manage') && hasAction('MANAGE_CUSTOMS')) @@ -294,8 +296,13 @@ async function load() { if (!containerId.value) return loading.value = true; error.value = null; overviewError.value = null try { - const [resource, aggregate] = await Promise.all([getContainer(containerId.value, props.workbench), getContainerOverview(containerId.value)]) + const [resource, aggregate, arrivals] = await Promise.all([ + getContainer(containerId.value, props.workbench), + getContainerOverview(containerId.value), + isOverseas.value ? listContainerArrivalTimes([containerId.value]) : Promise.resolve([]), + ]) workbenchDetail.value = resource; detail.value = resource; overview.value = aggregate + arrivalTime.value = arrivals[0] || null if (activeTab.value === 'loading-list' && !canViewCurrentLoadingList.value) activeTab.value = 'overview' if (isDomestic.value && activeTab.value === 'loading-list') await loadLoadingDetail(resource, aggregate) if (isOverseas.value && resource.planStatus === 'COMPLETED' && canViewLoadingList.value) { @@ -575,7 +582,7 @@ onMounted(async () => { await load(); if (isOverseas.value && route.query.action

提柜、卸柜与还空

确认还柜
-
码头拖车状态
{{ workbenchDetail?.statusSummary?.terminalDrayageStatus || '—' }}
码头车队
{{ workbenchDetail?.terminalDrayage?.fleetSupplierName || '—' }}
预约提柜
{{ formatTime(workbenchDetail?.terminalDrayage?.pickupAppointmentAt) }}
实际提柜
{{ formatTime(workbenchDetail?.terminalDrayage?.actualPickupAt) }}
卸柜完成
{{ formatTime((workbenchDetail?.actualFacts?.unloadingCompletedAt || workbenchDetail?.terminalDrayage?.unloadingCompletedAt) as string | null) }}
实际还柜
{{ formatTime(workbenchDetail?.terminalDrayage?.actualEmptyReturnAt) }}
+
码头拖车状态
{{ workbenchDetail?.statusSummary?.terminalDrayageStatus || '—' }}
码头车队
{{ workbenchDetail?.terminalDrayage?.fleetSupplierName || '—' }}
预计到仓
{{ formatTime(arrivalTime?.estimatedWarehouseArrivalAt) }}
实际到仓
{{ formatTime(arrivalTime?.actualWarehouseArrivalAt) }}
卸柜完成
{{ formatTime((workbenchDetail?.actualFacts?.unloadingCompletedAt || workbenchDetail?.terminalDrayage?.unloadingCompletedAt) as string | null) }}
实际还柜
{{ formatTime(workbenchDetail?.terminalDrayage?.actualEmptyReturnAt) }}