diff --git a/app/pages/clientarea/orders/index.vue b/app/pages/clientarea/orders/index.vue index 49eaf7b..3376a85 100644 --- a/app/pages/clientarea/orders/index.vue +++ b/app/pages/clientarea/orders/index.vue @@ -94,21 +94,43 @@ const { const selectedOrderId = ref() const hoveredOrderId = ref() -// Map items for CatalogPage (use source location coordinates) +// Map items for CatalogPage - two points per order (source + destination) const itemsForMap = computed(() => { - return filteredItems.value.map(order => ({ - ...order, - uuid: order.uuid, - name: order.name || `#${order.uuid.slice(0, 8)}`, - latitude: order.sourceLatitude, - longitude: order.sourceLongitude, - country: order.sourceLocationName - })) + const result: any[] = [] + filteredItems.value.forEach(order => { + // Source point + if (order.sourceLatitude && order.sourceLongitude) { + result.push({ + ...order, + uuid: `${order.uuid}-source`, + name: `📦 ${order.sourceLocationName}`, + latitude: order.sourceLatitude, + longitude: order.sourceLongitude, + country: order.sourceLocationName, + orderUuid: order.uuid + }) + } + // Destination point - get from last stage + const lastStage = order.stages?.[order.stages.length - 1] + if (lastStage?.destinationLatitude && lastStage?.destinationLongitude) { + result.push({ + ...order, + uuid: `${order.uuid}-dest`, + name: `🏁 ${order.destinationLocationName}`, + latitude: lastStage.destinationLatitude, + longitude: lastStage.destinationLongitude, + country: order.destinationLocationName, + orderUuid: order.uuid + }) + } + }) + return result }) const onSelectOrder = (item: any) => { - selectedOrderId.value = item.uuid - navigateTo(localePath(`/clientarea/orders/${item.uuid}`)) + const orderUuid = item.orderUuid || item.uuid + selectedOrderId.value = orderUuid + navigateTo(localePath(`/clientarea/orders/${orderUuid}`)) } await init()