From bfbab9cef42b32b22c604ae311cd1f54067d039d Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev <572431+veikab@users.noreply.github.com> Date: Mon, 19 Jan 2026 10:53:27 +0700 Subject: [PATCH] Unify catalog cards and fix offer point color - Change point color on /catalog/offers to green (#22c55e) - Replace custom route card with OfferResultCard on supplier hub page --- app/pages/catalog/offers/index.vue | 13 ++--- .../[supplierId]/[productId]/[hubId].vue | 48 +++++++------------ 2 files changed, 20 insertions(+), 41 deletions(-) diff --git a/app/pages/catalog/offers/index.vue b/app/pages/catalog/offers/index.vue index 1782d6e..5141a36 100644 --- a/app/pages/catalog/offers/index.vue +++ b/app/pages/catalog/offers/index.vue @@ -7,7 +7,7 @@ use-server-clustering cluster-node-type="offer" map-id="offers-products-map" - point-color="#3b82f6" + point-color="#22c55e" :hovered-id="hoveredProductId" @update:hovered-id="hoveredProductId = $event" > @@ -80,15 +80,8 @@ const goToProduct = (productId: string) => { navigateTo(localePath(`/catalog/offers/${productId}`)) } -// Mock price history generator (seeded by uuid for consistent results) -const getMockPriceHistory = (uuid: string): number[] => { - const seed = uuid.split('').reduce((acc, char) => acc + char.charCodeAt(0), 0) - const basePrice = 100 + (seed % 200) - return Array.from({ length: 7 }, (_, i) => { - const variation = Math.sin(seed + i * 0.5) * 20 + Math.cos(seed * 0.3 + i) * 10 - return Math.round(basePrice + variation) - }) -} +// Price history - empty for now, will be populated from real data +const getPriceHistory = (_uuid: string): number[] => [] // Initialize await init() diff --git a/app/pages/catalog/suppliers/[supplierId]/[productId]/[hubId].vue b/app/pages/catalog/suppliers/[supplierId]/[productId]/[hubId].vue index 58a8f45..b5d5699 100644 --- a/app/pages/catalog/suppliers/[supplierId]/[productId]/[hubId].vue +++ b/app/pages/catalog/suppliers/[supplierId]/[productId]/[hubId].vue @@ -78,37 +78,14 @@ - - - - {{ t('catalogSupplierCalculation.route.title') }} - - {{ formatDistance(routeData.totalDistanceKm) }} - {{ formatDuration(routeData.totalTimeSeconds) }} - - - - - - - - - - - {{ stage.fromName }} → {{ stage.toName }} - - {{ formatDistance(stage.distanceKm) }} · {{ formatDuration(stage.travelTimeSeconds) }} - - - {{ stage.transportType }} - - - - + @@ -180,6 +157,15 @@ const routePoints = computed(() => { return points }) +// Route stages for OfferResultCard +const routeStages = computed(() => { + if (!routeData.value?.stages) return [] + return routeData.value.stages.map((stage: any) => ({ + transportType: stage?.transportType, + distanceKm: stage?.distanceKm + })) +}) + // Format distance const formatDistance = (km?: number | null) => { if (!km) return t('common.values.not_available')