diff --git a/src/modules/inbounds/components/InboundTaskList.vue b/src/modules/inbounds/components/InboundTaskList.vue index 22feb1c0..6824b4ef 100644 --- a/src/modules/inbounds/components/InboundTaskList.vue +++ b/src/modules/inbounds/components/InboundTaskList.vue @@ -19,7 +19,7 @@ import LineClampText from '@/shared/components/LineClampText.vue' import QueryToolbar, { type QueryField, type QueryModel } from '@/shared/components/QueryToolbar.vue' import { firstLegBusinessTypeLabel } from '@/shared/utils/firstLegBusinessLabels' import { listPlatformInbounds } from '../core/api' -import type { InboundOrderSummary } from '../core/types' +import type { InboundOrderSummary, InboundPageResult } from '../core/types' import InboundMeasurementDialog from '../measurement/InboundMeasurementDialog.vue' import MeasurementReviewPanel from '../review/MeasurementReviewPanel.vue' import { approveMeasurement, getMeasurementReviewDetail } from '../review/api' @@ -33,7 +33,11 @@ type FilterModel = QueryModel & { expectedArrivalRange: string[] } -const props = defineProps<{ mode: InboundTaskMode; title?: string }>() +const props = defineProps<{ + mode: InboundTaskMode + title?: string + taskLoader?: (pagination: { page: number; size: number }) => Promise +}>() const emit = defineEmits<{ changed: [] }>() const router = useRouter() const access = useAccessPreviewStore() @@ -143,6 +147,7 @@ function dateParam(value: string | undefined, end = false) { } async function loadOptions() { + if (props.taskLoader) return const serial = ++optionsRequestSerial customerLoadError.value = null try { @@ -169,7 +174,7 @@ async function loadTasks() { loadError.value = null const applied = appliedFilters.value try { - const response = await listPlatformInbounds(applied.customerId || undefined, buildInboundTaskQuery(props.mode, { + const response = props.taskLoader ? await props.taskLoader({ page: page.value, size: pageSize.value }) : await listPlatformInbounds(applied.customerId || undefined, buildInboundTaskQuery(props.mode, { page: page.value, size: pageSize.value, warehouseId: applied.warehouseId || undefined, @@ -328,6 +333,12 @@ function clearSelectedInbound() { reviewNavigationLoading.value = false } +function reload() { + if (page.value === 1) return loadTasks() + page.value = 1 +} +defineExpose({ reload }) + watch([page, pageSize], () => { void loadTasks() }) onMounted(() => { void loadOptions(); void loadTasks() }) onActivated(() => { @@ -363,6 +374,7 @@ onBeforeUnmount(() => { disposed = true; requestSerial += 1; optionsRequestSeria >