diff --git a/app/Http/Controllers/Juil/PlanningController.php b/app/Http/Controllers/Juil/PlanningController.php index 97baaf3d..7de5f8db 100644 --- a/app/Http/Controllers/Juil/PlanningController.php +++ b/app/Http/Controllers/Juil/PlanningController.php @@ -48,6 +48,15 @@ public function constructionPmis(Request $request): View|Response return view('juil.construction-pmis'); } + public function bimViewer(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('juil.construction-pmis.bim-viewer')); + } + + return view('juil.bim-viewer'); + } + public function pmisWeather(WeatherService $weatherService): JsonResponse { $forecasts = $weatherService->getWeeklyForecast(); diff --git a/resources/views/juil/bim-viewer.blade.php b/resources/views/juil/bim-viewer.blade.php new file mode 100644 index 00000000..c8f22db4 --- /dev/null +++ b/resources/views/juil/bim-viewer.blade.php @@ -0,0 +1,551 @@ +@extends('layouts.app') + +@section('title', 'BIM 뷰어') + +@section('content') +
+@endsection + +@push('scripts') + + + + +@include('partials.react-cdn') + +@endpush diff --git a/resources/views/juil/construction-pmis.blade.php b/resources/views/juil/construction-pmis.blade.php index 04b5088c..91ab51e2 100644 --- a/resources/views/juil/construction-pmis.blade.php +++ b/resources/views/juil/construction-pmis.blade.php @@ -20,7 +20,9 @@ ════════════════════════════════════════════════ */ const PMIS_MENUS = [ - { icon: 'ri-building-2-line', label: 'BIM 관리', id: 'bim' }, + { icon: 'ri-building-2-line', label: 'BIM 관리', id: 'bim', children: [ + { label: 'BIM 뷰어', url: '/juil/construction-pmis/bim-viewer' }, + ]}, { icon: 'ri-line-chart-line', label: '시공관리', id: 'construction' }, { icon: 'ri-file-list-3-line', label: '품질관리', id: 'quality' }, { icon: 'ri-shield-check-line', label: '안전관리', id: 'safety' }, @@ -29,6 +31,7 @@ function PmisSidebar({ onOpenProfile }) { const [profile, setProfile] = useState(null); + const [expandedMenu, setExpandedMenu] = useState(null); useEffect(() => { fetch('/juil/construction-pmis/profile', { headers: { 'Accept': 'application/json' } }) @@ -73,16 +76,28 @@ className="absolute top-3 right-3 p-1 rounded-lg text-gray-400 hover:text-gray-6 {/* 네비게이션 메뉴 */}