From ac5d0d0b008ade2f71f8211920fe1dd8cc86ce9a Mon Sep 17 00:00:00 2001 From: iv_vuytsik Date: Thu, 11 Sep 2025 08:12:18 +0300 Subject: [PATCH] =?UTF-8?q?AEB-55=20/=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BB=D0=BE=D0=B3=D0=BE=20=D0=B8=20?= =?UTF-8?q?=D0=B8=D0=BA=D0=BE=D0=BD=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/.gitignore | 3 + frontend/app/(protected)/model/page.tsx | 2 +- frontend/app/(protected)/navigation/page.tsx | 4 +- frontend/app/(protected)/objects/page.tsx | 1 - frontend/app/(protected)/reports/page.tsx | 2 - frontend/components/alerts/DetectorList.tsx | 11 +- frontend/components/dashboard/Dashboard.tsx | 7 +- frontend/components/model/ModelViewer.tsx | 10 +- .../components/navigation/DetectorMenu.tsx | 6 +- .../NotificationDetectorInfo.tsx | 3 +- frontend/components/ui/LoadingSpinner.tsx | 16 +- frontend/components/ui/Sidebar.tsx | 131 +- frontend/public/icons/BellDot.png | Bin 0 -> 346 bytes frontend/public/icons/BookOpen.png | Bin 0 -> 286 bytes frontend/public/icons/Bot.png | Bin 0 -> 328 bytes frontend/public/icons/CircleDot.png | Bin 0 -> 319 bytes frontend/public/icons/History.png | Bin 0 -> 363 bytes frontend/public/icons/Settings2.png | Bin 0 -> 324 bytes frontend/public/icons/SquareTerminal.png | Bin 0 -> 302 bytes frontend/public/icons/logo.png | Bin 0 -> 21008 bytes frontend/public/icons/logo.svg | 9 - ...Viewer_Expo2017Astana_20250908_L_+1430.glb | Bin 0 -> 4129408 bytes .../models/EXPO_АР_PostRecon_level.gltf | 47800 ---------------- frontend/public/models/result.bin | Bin 8021664 -> 0 bytes frontend/services/navigationService.ts | 7 +- 25 files changed, 78 insertions(+), 47934 deletions(-) create mode 100644 frontend/public/icons/BellDot.png create mode 100644 frontend/public/icons/BookOpen.png create mode 100644 frontend/public/icons/Bot.png create mode 100644 frontend/public/icons/CircleDot.png create mode 100644 frontend/public/icons/History.png create mode 100644 frontend/public/icons/Settings2.png create mode 100644 frontend/public/icons/SquareTerminal.png create mode 100644 frontend/public/icons/logo.png delete mode 100644 frontend/public/icons/logo.svg create mode 100644 frontend/public/models/AerBIM-Monitor_ASM-HT-Viewer_Expo2017Astana_20250908_L_+1430.glb delete mode 100644 frontend/public/models/EXPO_АР_PostRecon_level.gltf delete mode 100644 frontend/public/models/result.bin diff --git a/frontend/.gitignore b/frontend/.gitignore index d83c234..c424a30 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -43,3 +43,6 @@ next-env.d.ts # Include data and models folders !/data/ !/public/models/ + +# Exclude models directory (use public/models instead) +/models/ diff --git a/frontend/app/(protected)/model/page.tsx b/frontend/app/(protected)/model/page.tsx index 027d2da..43ee2fe 100644 --- a/frontend/app/(protected)/model/page.tsx +++ b/frontend/app/(protected)/model/page.tsx @@ -24,7 +24,7 @@ export default function Home() { return (
diff --git a/frontend/app/(protected)/navigation/page.tsx b/frontend/app/(protected)/navigation/page.tsx index f59ff96..2e6ce11 100644 --- a/frontend/app/(protected)/navigation/page.tsx +++ b/frontend/app/(protected)/navigation/page.tsx @@ -219,15 +219,13 @@ const NavigationPage: React.FC = () => { Навигация
- -
diff --git a/frontend/app/(protected)/objects/page.tsx b/frontend/app/(protected)/objects/page.tsx index ef574ca..4d99ca5 100644 --- a/frontend/app/(protected)/objects/page.tsx +++ b/frontend/app/(protected)/objects/page.tsx @@ -107,7 +107,6 @@ const ObjectsPage: React.FC = () => {
) } - return (
diff --git a/frontend/app/(protected)/reports/page.tsx b/frontend/app/(protected)/reports/page.tsx index 2b81eda..b2e999a 100644 --- a/frontend/app/(protected)/reports/page.tsx +++ b/frontend/app/(protected)/reports/page.tsx @@ -32,8 +32,6 @@ const ReportsPage: React.FC = () => { // TODO: добавить функционал по экспорту отчетов console.log(`Exporting reports as ${format}`) } - - return (
diff --git a/frontend/components/alerts/DetectorList.tsx b/frontend/components/alerts/DetectorList.tsx index 0d0339f..74c3269 100644 --- a/frontend/components/alerts/DetectorList.tsx +++ b/frontend/components/alerts/DetectorList.tsx @@ -12,8 +12,7 @@ interface Detector { floor: number checked: boolean } - -// Interface for raw detector data from JSON + interface RawDetector { detector_id: number name: string @@ -53,9 +52,7 @@ const DetectorList: React.FC = ({ objectId, selectedDetectors }, [objectId]) - - - + const filteredDetectors = detectors.filter(detector => { const matchesSearch = detector.name.toLowerCase().includes(searchTerm.toLowerCase()) || detector.location.toLowerCase().includes(searchTerm.toLowerCase()) @@ -67,9 +64,7 @@ const DetectorList: React.FC = ({ objectId, selectedDetectors return matchesSearch }) - - - + return (
diff --git a/frontend/components/dashboard/Dashboard.tsx b/frontend/components/dashboard/Dashboard.tsx index 475a54d..7f26cf5 100644 --- a/frontend/components/dashboard/Dashboard.tsx +++ b/frontend/components/dashboard/Dashboard.tsx @@ -51,17 +51,14 @@ const Dashboard: React.FC = () => { return acc }, { critical: 0, warning: 0, normal: 0 }) - const handleNavigationClick = () => { - // Close all submenus before navigating + const handleNavigationClick = () => { closeMonitoring() closeFloorNavigation() closeNotifications() setCurrentSubmenu(null) router.push('/navigation') } - - // No custom sidebar handling needed - using unified navigation service - + return (
= ({ const [showModel, setShowModel] = useState(false) const isInitializedRef = useRef(false) const isDisposedRef = useRef(false) - - + useEffect(() => { isDisposedRef.current = false @@ -154,7 +153,11 @@ const ModelViewer: React.FC = ({ setLoadingProgress(100) console.log('GLTF Model loaded successfully!') - + console.log('\n=== Complete Model Object ===') + console.log(result) + console.log('\n=== Structure Overview ===') + console.log('Meshes:', result.meshes?.length || 0) + console.log('Transform Nodes:', result.transformNodes?.length || 0) if (result.meshes.length > 0) { const boundingBox = result.meshes[0].getHierarchyBoundingVectors() @@ -165,7 +168,6 @@ const ModelViewer: React.FC = ({ camera.radius = maxDimension * 2 camera.target = result.meshes[0].position - onModelLoaded?.({ meshes: result.meshes, boundingBox: { diff --git a/frontend/components/navigation/DetectorMenu.tsx b/frontend/components/navigation/DetectorMenu.tsx index 6f892ac..9bcffa2 100644 --- a/frontend/components/navigation/DetectorMenu.tsx +++ b/frontend/components/navigation/DetectorMenu.tsx @@ -26,7 +26,6 @@ const DetectorMenu: React.FC = ({ detector, isOpen, onClose, return (
- {/* Header */}

Датч.{detector.name} @@ -47,7 +46,7 @@ const DetectorMenu: React.FC = ({ detector, isOpen, onClose,

- {/* Detector Information Table */} + {/* Таблица детекторов */}
@@ -79,8 +78,7 @@ const DetectorMenu: React.FC = ({ detector, isOpen, onClose,
- - {/* Close Button */} +