Обновлены компоненты для обработки необязательных свойств и добавлены заглушки для случаев отсутствия данных о транспортном средстве и деталях. Изменены условия пропуска запросов в компонентах InfoVin, KnotIn, KnotParts, VinCategory и VinLeftbar.

This commit is contained in:
Bivekich
2025-06-30 17:42:36 +03:00
parent 6af1ed325c
commit 8e7c398b95
5 changed files with 83 additions and 27 deletions

View File

@ -5,10 +5,10 @@ import { GET_LAXIMO_UNIT_INFO, GET_LAXIMO_UNIT_IMAGE_MAP } from '@/lib/graphql';
import BrandSelectionModal from '../BrandSelectionModal';
interface KnotInProps {
catalogCode: string;
vehicleId: string;
catalogCode?: string;
vehicleId?: string;
ssd?: string;
unitId: string;
unitId?: string;
unitName?: string;
parts?: Array<{
detailid?: string;
@ -46,8 +46,8 @@ const KnotIn: React.FC<KnotInProps> = ({ catalogCode, vehicleId, ssd, unitId, un
const { data: unitInfoData, loading: unitInfoLoading, error: unitInfoError } = useQuery(
GET_LAXIMO_UNIT_INFO,
{
variables: { catalogCode, vehicleId, unitId, ssd: ssd || '' },
skip: !catalogCode || vehicleId === undefined || vehicleId === null || !unitId,
variables: { catalogCode: catalogCode || '', vehicleId: vehicleId || '', unitId: unitId || '', ssd: ssd || '' },
skip: !catalogCode || !vehicleId || !unitId,
errorPolicy: 'all',
}
);
@ -55,12 +55,22 @@ const KnotIn: React.FC<KnotInProps> = ({ catalogCode, vehicleId, ssd, unitId, un
const { data: imageMapData, loading: imageMapLoading, error: imageMapError } = useQuery(
GET_LAXIMO_UNIT_IMAGE_MAP,
{
variables: { catalogCode, vehicleId, unitId, ssd: ssd || '' },
skip: !catalogCode || vehicleId === undefined || vehicleId === null || !unitId,
variables: { catalogCode: catalogCode || '', vehicleId: vehicleId || '', unitId: unitId || '', ssd: ssd || '' },
skip: !catalogCode || !vehicleId || !unitId,
errorPolicy: 'all',
}
);
// Если нет необходимых данных, показываем заглушку
if (!catalogCode || !vehicleId || !unitId) {
return (
<div className="text-center py-8 text-gray-500">
<div className="text-lg font-medium mb-2">Схема узла</div>
<div className="text-sm">Выберите узел для отображения схемы</div>
</div>
);
}
const unitInfo = unitInfoData?.laximoUnitInfo;
const coordinates = imageMapData?.laximoUnitImageMap?.coordinates || [];
const imageUrl = unitInfo?.imageurl ? getImageUrl(unitInfo.imageurl, selectedImageSize) : '';