Изменения в логике получения данных по датчикам из бэкенда, изменение тултипа сенсора для исправления получения данных на реальные

This commit is contained in:
2026-02-04 00:02:37 +03:00
parent 79e4845870
commit f275db88c9
15 changed files with 2644 additions and 83 deletions

View File

@@ -56,8 +56,6 @@ export interface ModelViewerProps {
onSensorPick?: (sensorId: string | null) => void
highlightAllSensors?: boolean
sensorStatusMap?: Record<string, string>
showStats?: boolean
onToggleStats?: () => void
}
const ModelViewer: React.FC<ModelViewerProps> = ({
@@ -923,49 +921,8 @@ const ModelViewer: React.FC<ModelViewerProps> = ({
panActive={panActive}
onToggleSensorHighlights={useNavigationStore.getState().toggleSensorHighlights}
sensorHighlightsActive={useNavigationStore.getState().showSensorHighlights}
onToggleStats={onToggleStats}
statsActive={showStats}
/>
{/* Блок статистики датчиков */}
{showStats && sensorStatusMap && (
<div className="absolute top-24 left-8 z-[60] pointer-events-none">
<div className="bg-[#161824] rounded-[15px] border border-white/10 shadow-[0_8px_32px_rgba(0,0,0,0.3)] py-3 px-4">
<div className="flex flex-col gap-2 text-gray-300">
{/* Всего датчиков */}
<div className="flex items-center justify-between gap-4">
<span className="text-xs">Всего:</span>
<span className="text-sm font-semibold">{Object.keys(sensorStatusMap).length}</span>
</div>
<div className="h-px bg-white/10"></div>
{/* Нормальный */}
<div className="flex items-center justify-between gap-4">
<span className="text-xs">Норма:</span>
<span className="text-sm font-semibold">
{Object.values(sensorStatusMap).filter(s => s === '#4ade80' || s.toLowerCase() === 'normal').length}
</span>
</div>
{/* Предупреждение */}
<div className="flex items-center justify-between gap-4">
<span className="text-xs">Предупр.:</span>
<span className="text-sm font-semibold">
{Object.values(sensorStatusMap).filter(s => s === '#fb923c' || s.toLowerCase() === 'warning').length}
</span>
</div>
{/* Критический */}
<div className="flex items-center justify-between gap-4">
<span className="text-xs">Критич.:</span>
<span className="text-sm font-semibold">
{Object.values(sensorStatusMap).filter(s => s === '#ef4444' || s.toLowerCase() === 'critical').length}
</span>
</div>
</div>
</div>
</div>
)}
</>
)}
{/* UPDATED: Interactive overlay circles with hover effects */}