From c1ae984fcc8ea1a3f26c2730786be0c7b56fbfc8 Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev <572431+veikab@users.noreply.github.com> Date: Wed, 21 Jan 2026 14:52:01 +0700 Subject: [PATCH] Add KycProfileCard component with full company info - New KycProfileCard shows full KYC profile data (INN, OGRN, director, capital, activities) - Added to offer detail page /catalog/suppliers/[supplierId]/[productId]/[hubId] - Uses kycProfileFull endpoint for authorized detailed company info --- app/components/CalcResultContent.vue | 12 ++ app/components/KycProfileCard.vue | 155 ++++++++++++++++++ .../[supplierId]/[productId]/[hubId].vue | 5 +- 3 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 app/components/KycProfileCard.vue diff --git a/app/components/CalcResultContent.vue b/app/components/CalcResultContent.vue index 8211973..fe2e185 100644 --- a/app/components/CalcResultContent.vue +++ b/app/components/CalcResultContent.vue @@ -27,6 +27,7 @@ :unit="getOfferData(option.sourceUuid)?.unit" :stages="getRouteStages(option)" :kyc-profile-uuid="getKycProfileUuid(option.sourceUuid)" + @select="navigateToOffer(option.sourceUuid)" /> @@ -68,6 +69,7 @@ import type { RouteStageItem } from '~/components/RouteStagesList.vue' import { GetOfferDocument, GetSupplierProfileByTeamDocument } from '~/composables/graphql/public/exchange-generated' const route = useRoute() +const localePath = useLocalePath() const searchStore = useSearchStore() const { execute } = useGraphQL() @@ -175,6 +177,16 @@ const getKycProfileUuid = (offerUuid?: string | null) => { return supplier?.kycProfileUuid || null } +// Navigate to offer detail page +const navigateToOffer = (offerUuid?: string | null) => { + if (!offerUuid) return + const offer = offersData.value.get(offerUuid) + if (!offer?.teamUuid || !productUuid.value || !destinationUuid.value) return + + // Navigate to /catalog/suppliers/[supplierId]/[productId]/[hubId] + navigateTo(localePath(`/catalog/suppliers/${offer.teamUuid}/${productUuid.value}/${destinationUuid.value}`)) +} + // Load offer details for prices const loadOfferDetails = async (options: ProductRouteOption[]) => { if (options.length === 0) { diff --git a/app/components/KycProfileCard.vue b/app/components/KycProfileCard.vue new file mode 100644 index 0000000..4cbf5c8 --- /dev/null +++ b/app/components/KycProfileCard.vue @@ -0,0 +1,155 @@ + + + diff --git a/app/pages/catalog/suppliers/[supplierId]/[productId]/[hubId].vue b/app/pages/catalog/suppliers/[supplierId]/[productId]/[hubId].vue index e54d704..fc5acdd 100644 --- a/app/pages/catalog/suppliers/[supplierId]/[productId]/[hubId].vue +++ b/app/pages/catalog/suppliers/[supplierId]/[productId]/[hubId].vue @@ -45,11 +45,12 @@
Верифицирован
- - + + +