refactor: R&D Labs 메뉴를 DB 기반 동적 렌더링으로 전환
- 하드코딩된 Labs 메뉴를 DB에서 가져오도록 변경 - labs-menu.blade.php 컴포넌트 생성 (탭 UI 유지) - options.meta.tab 값(S/A/M)으로 메뉴 분류 - Labs 메뉴가 없으면 섹션 자체가 렌더링되지 않음
This commit is contained in:
185
resources/views/components/sidebar/labs-menu.blade.php
Normal file
185
resources/views/components/sidebar/labs-menu.blade.php
Normal file
@@ -0,0 +1,185 @@
|
||||
@props(['menus'])
|
||||
|
||||
@php
|
||||
// Labs 메뉴가 없으면 렌더링하지 않음
|
||||
if ($menus->isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// R&D Labs 그룹 메뉴 찾기
|
||||
$labsGroup = $menus->first();
|
||||
if (!$labsGroup || !isset($labsGroup->menuChildren)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 자식 메뉴들을 탭별로 분류
|
||||
$sMenus = collect();
|
||||
$aMenus = collect();
|
||||
$mMenus = collect();
|
||||
|
||||
foreach ($labsGroup->menuChildren as $menu) {
|
||||
$tab = $menu->getMeta('tab') ?? 'S';
|
||||
match ($tab) {
|
||||
'S' => $sMenus->push($menu),
|
||||
'A' => $aMenus->push($menu),
|
||||
'M' => $mMenus->push($menu),
|
||||
default => $sMenus->push($menu),
|
||||
};
|
||||
}
|
||||
|
||||
// 모든 탭이 비어있으면 렌더링하지 않음
|
||||
if ($sMenus->isEmpty() && $aMenus->isEmpty() && $mMenus->isEmpty()) {
|
||||
return;
|
||||
}
|
||||
@endphp
|
||||
|
||||
{{-- R&D Labs 그룹 (탭 스타일 + 플라이아웃) --}}
|
||||
<li class="lab-menu-container pt-4 pb-1 border-t border-gray-200 mt-2" id="lab-menu-container">
|
||||
<!-- 확장 상태: 헤더 + 탭 + 메뉴 -->
|
||||
<div class="lab-expanded-view">
|
||||
<button onclick="toggleGroup('lab-group'); scrollSidebarToBottom();" class="sidebar-group-header lab-group-header w-full flex items-center justify-between px-3 py-2 text-xs font-bold text-gray-700 uppercase tracking-wider rounded">
|
||||
<span class="flex items-center gap-2">
|
||||
<svg class="w-4 h-4 text-amber-600 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z" />
|
||||
</svg>
|
||||
<span class="sidebar-text">R&D Labs</span>
|
||||
</span>
|
||||
<svg id="lab-group-icon" class="w-3 h-3 transition-transform sidebar-text" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<!-- 탭 + 메뉴 콘텐츠 -->
|
||||
<div id="lab-group" class="mt-2">
|
||||
<!-- S | A | M 탭 버튼 -->
|
||||
<div class="lab-tabs flex mx-2 mb-2 bg-gray-100 rounded-lg p-1">
|
||||
<button type="button" onclick="switchLabTab('s')" id="lab-tab-s" class="lab-tab active flex-1 py-1.5 text-xs font-bold rounded-md transition-all text-blue-600">
|
||||
S
|
||||
</button>
|
||||
<button type="button" onclick="switchLabTab('a')" id="lab-tab-a" class="lab-tab flex-1 py-1.5 text-xs font-bold rounded-md transition-all text-purple-600">
|
||||
A
|
||||
</button>
|
||||
<button type="button" onclick="switchLabTab('m')" id="lab-tab-m" class="lab-tab flex-1 py-1.5 text-xs font-bold rounded-md transition-all text-green-600">
|
||||
M
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- S. Strategy 메뉴 -->
|
||||
<ul id="lab-panel-s" class="lab-panel space-y-1">
|
||||
@foreach($sMenus as $menu)
|
||||
<li>
|
||||
<a href="{{ $menu->getRouteName() ? route($menu->getRouteName()) : $menu->url }}"
|
||||
class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors"
|
||||
title="{{ $menu->name }}">
|
||||
<x-sidebar.menu-icon :icon="$menu->icon" class="w-4 h-4 flex-shrink-0" />
|
||||
<span class="font-medium sidebar-text">{{ $menu->name }}</span>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<!-- A. AI/Automation 메뉴 -->
|
||||
<ul id="lab-panel-a" class="lab-panel space-y-1 hidden">
|
||||
@foreach($aMenus as $menu)
|
||||
<li>
|
||||
<a href="{{ $menu->getRouteName() ? route($menu->getRouteName()) : $menu->url }}"
|
||||
class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors"
|
||||
title="{{ $menu->name }}">
|
||||
<x-sidebar.menu-icon :icon="$menu->icon" class="w-4 h-4 flex-shrink-0" />
|
||||
<span class="font-medium sidebar-text">{{ $menu->name }}</span>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<!-- M. Management 메뉴 -->
|
||||
<ul id="lab-panel-m" class="lab-panel space-y-1 hidden">
|
||||
@foreach($mMenus as $menu)
|
||||
<li>
|
||||
<a href="{{ $menu->getRouteName() ? route($menu->getRouteName()) : $menu->url }}"
|
||||
class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors"
|
||||
title="{{ $menu->name }}">
|
||||
<x-sidebar.menu-icon :icon="$menu->icon" class="w-4 h-4 flex-shrink-0" />
|
||||
<span class="font-medium sidebar-text">{{ $menu->name }}</span>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 축소 상태: 아이콘 + 플라이아웃 -->
|
||||
<div class="lab-collapsed-view hidden">
|
||||
<div class="lab-flyout-trigger relative">
|
||||
<button type="button" class="flex items-center justify-center w-full p-2 rounded-lg hover:bg-amber-50 transition-colors" title="R&D Labs">
|
||||
<svg class="w-5 h-5 text-amber-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<!-- 플라이아웃 팝업 -->
|
||||
<div class="lab-flyout hidden fixed w-56 bg-white rounded-lg shadow-xl border border-gray-200 z-[9999]">
|
||||
<!-- 화살표 -->
|
||||
<div class="absolute -left-2 top-3 w-0 h-0 border-t-8 border-b-8 border-r-8 border-transparent border-r-white"></div>
|
||||
<div class="absolute -left-[9px] top-3 w-0 h-0 border-t-8 border-b-8 border-r-8 border-transparent border-r-gray-200"></div>
|
||||
|
||||
<!-- 헤더 -->
|
||||
<div class="px-3 py-2 bg-gradient-to-r from-amber-50 to-amber-100 rounded-t-lg border-b border-amber-200">
|
||||
<span class="text-xs font-bold text-amber-800 uppercase tracking-wider">R&D Labs</span>
|
||||
</div>
|
||||
|
||||
<!-- 탭 -->
|
||||
<div class="flex p-2 bg-gray-50 border-b border-gray-100">
|
||||
<button type="button" onclick="switchLabFlyoutTab('s')" id="lab-flyout-tab-s" class="lab-flyout-tab active flex-1 py-1.5 text-xs font-bold rounded transition-all text-blue-600">
|
||||
S
|
||||
</button>
|
||||
<button type="button" onclick="switchLabFlyoutTab('a')" id="lab-flyout-tab-a" class="lab-flyout-tab flex-1 py-1.5 text-xs font-bold rounded transition-all text-purple-600">
|
||||
A
|
||||
</button>
|
||||
<button type="button" onclick="switchLabFlyoutTab('m')" id="lab-flyout-tab-m" class="lab-flyout-tab flex-1 py-1.5 text-xs font-bold rounded transition-all text-green-600">
|
||||
M
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- 메뉴 패널들 -->
|
||||
<div class="p-2 max-h-64 overflow-y-auto">
|
||||
<!-- S. Strategy -->
|
||||
<ul id="lab-flyout-panel-s" class="lab-flyout-panel space-y-0.5">
|
||||
@foreach($sMenus as $menu)
|
||||
<li>
|
||||
<a href="{{ $menu->getRouteName() ? route($menu->getRouteName()) : $menu->url }}"
|
||||
class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">
|
||||
{{ $menu->name }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<!-- A. AI/Automation -->
|
||||
<ul id="lab-flyout-panel-a" class="lab-flyout-panel space-y-0.5 hidden">
|
||||
@foreach($aMenus as $menu)
|
||||
<li>
|
||||
<a href="{{ $menu->getRouteName() ? route($menu->getRouteName()) : $menu->url }}"
|
||||
class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">
|
||||
{{ $menu->name }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<!-- M. Management -->
|
||||
<ul id="lab-flyout-panel-m" class="lab-flyout-panel space-y-0.5 hidden">
|
||||
@foreach($mMenus as $menu)
|
||||
<li>
|
||||
<a href="{{ $menu->getRouteName() ? route($menu->getRouteName()) : $menu->url }}"
|
||||
class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">
|
||||
{{ $menu->name }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@@ -34,188 +34,8 @@ class="sidebar-collapsed-only hidden w-full p-2 text-xl font-bold text-gray-900
|
||||
{{-- Main Section Menus (Dynamic from DB) --}}
|
||||
<x-sidebar.menu-tree :menus="$mainMenus" />
|
||||
|
||||
{{-- R&D Labs 그룹 (탭 스타일 + 플라이아웃) - 기존 방식 유지 --}}
|
||||
<li class="lab-menu-container pt-4 pb-1 border-t border-gray-200 mt-2" id="lab-menu-container">
|
||||
<!-- 확장 상태: 헤더 + 탭 + 메뉴 -->
|
||||
<div class="lab-expanded-view">
|
||||
<button onclick="toggleGroup('lab-group'); scrollSidebarToBottom();" class="sidebar-group-header lab-group-header w-full flex items-center justify-between px-3 py-2 text-xs font-bold text-gray-700 uppercase tracking-wider rounded">
|
||||
<span class="flex items-center gap-2">
|
||||
<svg class="w-4 h-4 text-amber-600 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z" />
|
||||
</svg>
|
||||
<span class="sidebar-text">R&D Labs</span>
|
||||
</span>
|
||||
<svg id="lab-group-icon" class="w-3 h-3 transition-transform sidebar-text" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<!-- 탭 + 메뉴 콘텐츠 -->
|
||||
<div id="lab-group" class="mt-2">
|
||||
<!-- S | A | M 탭 버튼 -->
|
||||
<div class="lab-tabs flex mx-2 mb-2 bg-gray-100 rounded-lg p-1">
|
||||
<button type="button" onclick="switchLabTab('s')" id="lab-tab-s" class="lab-tab active flex-1 py-1.5 text-xs font-bold rounded-md transition-all text-blue-600">
|
||||
S
|
||||
</button>
|
||||
<button type="button" onclick="switchLabTab('a')" id="lab-tab-a" class="lab-tab flex-1 py-1.5 text-xs font-bold rounded-md transition-all text-purple-600">
|
||||
A
|
||||
</button>
|
||||
<button type="button" onclick="switchLabTab('m')" id="lab-tab-m" class="lab-tab flex-1 py-1.5 text-xs font-bold rounded-md transition-all text-green-600">
|
||||
M
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- S. Strategy 메뉴 -->
|
||||
<ul id="lab-panel-s" class="lab-panel space-y-1">
|
||||
<li><a href="{{ route('lab.strategy.tax') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="세무 전략"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z" /></svg><span class="font-medium sidebar-text">세무 전략</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.labor') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="노무 전략"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z" /></svg><span class="font-medium sidebar-text">노무 전략</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.debt') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="채권추심 전략"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg><span class="font-medium sidebar-text">채권추심 전략</span></a></li>
|
||||
<li class="border-t border-gray-100 pt-1 mt-1"></li>
|
||||
<li><a href="{{ route('lab.strategy.stablecoin') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="스테이블코인 보고서"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" /></svg><span class="font-medium sidebar-text">스테이블코인 보고서</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.mrp-overseas') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="MRP 해외사례"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg><span class="font-medium sidebar-text">MRP 해외사례</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.chatbot') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="상담용 챗봇 전략"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" /></svg><span class="font-medium sidebar-text">상담용 챗봇 전략</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.kodata-vs-nice') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="KoDATA vs NICE API 비교"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" /></svg><span class="font-medium sidebar-text">KoDATA vs NICE API</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.barobill-vs-popbill') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="바로빌 vs 팝빌 API"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" /></svg><span class="font-medium sidebar-text">바로빌 vs 팝빌 API</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.knowledge-search') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="사내 지식 검색 시스템"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" /></svg><span class="font-medium sidebar-text">사내 지식 검색 시스템</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.chatbot-compare') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="챗봇 솔루션 비교 분석"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" /></svg><span class="font-medium sidebar-text">챗봇 솔루션 비교 분석</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.rag-startups') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="RAG 스타트업 현황"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" /></svg><span class="font-medium sidebar-text">RAG 스타트업 현황</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.douzone') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="더존비즈온 분석"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" /></svg><span class="font-medium sidebar-text">더존비즈온 분석</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.confluence-vs-notion') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="Confluence vs Notion"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7v8a2 2 0 002 2h6M8 7V5a2 2 0 012-2h4.586a1 1 0 01.707.293l4.414 4.414a1 1 0 01.293.707V15a2 2 0 01-2 2h-2M8 7H6a2 2 0 00-2 2v10a2 2 0 002 2h8a2 2 0 002-2v-2" /></svg><span class="font-medium sidebar-text">Confluence vs Notion</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.qa-solution') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="차세대 QA 솔루션"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg><span class="font-medium sidebar-text">차세대 QA 솔루션</span></a></li>
|
||||
<li><a href="{{ route('lab.strategy.sales-strategy') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="SAM 영업전략"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" /></svg><span class="font-medium sidebar-text">SAM 영업전략</span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- A. AI/Automation 메뉴 -->
|
||||
<ul id="lab-panel-a" class="lab-panel space-y-1 hidden">
|
||||
<li><a href="{{ route('lab.ai.business-ocr') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="사업자등록증 OCR"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" /></svg><span class="font-medium sidebar-text">사업자등록증 OCR</span></a></li>
|
||||
<li><a href="{{ route('lab.ai.web-recording') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="웹 녹음 AI 요약"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z" /></svg><span class="font-medium sidebar-text">웹 녹음 AI 요약</span></a></li>
|
||||
<li><a href="{{ route('lab.ai.meeting-summary') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="회의록 AI 요약"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" /></svg><span class="font-medium sidebar-text">회의록 AI 요약</span></a></li>
|
||||
<li><a href="{{ route('lab.ai.work-memo-summary') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="업무협의록 AI 요약"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" /></svg><span class="font-medium sidebar-text">업무협의록 AI 요약</span></a></li>
|
||||
<li class="border-t border-gray-100 pt-1 mt-1"></li>
|
||||
<li><a href="{{ route('lab.ai.operator-chatbot') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="운영자용 챗봇"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" /></svg><span class="font-medium sidebar-text">운영자용 챗봇</span></a></li>
|
||||
<li><a href="{{ route('lab.ai.vertex-rag') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="Vertex RAG 챗봇"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" /></svg><span class="font-medium sidebar-text">Vertex RAG 챗봇</span></a></li>
|
||||
<li><a href="{{ route('lab.ai.tenant-knowledge') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="테넌트 지식 업로드"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" /></svg><span class="font-medium sidebar-text">테넌트 지식 업로드</span></a></li>
|
||||
<li><a href="{{ route('lab.ai.tenant-chatbot') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="테넌트 챗봇"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z" /></svg><span class="font-medium sidebar-text">테넌트 챗봇</span></a></li>
|
||||
<li class="border-t border-gray-100 pt-1 mt-1"></li>
|
||||
<li><a href="{{ route('lab.ai.sam-ai-menu') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="SAM AI 메뉴 이동"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" /></svg><span class="font-medium sidebar-text">SAM AI 메뉴 이동</span></a></li>
|
||||
<li><a href="{{ route('lab.ai.sam-ai-alarm') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="SAM AI 알람음 제작"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z" /></svg><span class="font-medium sidebar-text">SAM AI 알람음 제작</span></a></li>
|
||||
<li class="border-t border-gray-100 pt-1 mt-1"></li>
|
||||
<li><a href="{{ route('lab.ai.gps-attendance') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="GPS 출퇴근 관리"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z" /><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z" /></svg><span class="font-medium sidebar-text">GPS 출퇴근 관리</span></a></li>
|
||||
<li><a href="{{ route('lab.ai.company-overview') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="기업개황 조회"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" /></svg><span class="font-medium sidebar-text">기업개황 조회</span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- M. Management 메뉴 -->
|
||||
<ul id="lab-panel-m" class="lab-panel space-y-1 hidden">
|
||||
<li><a href="{{ route('lab.management.barobill-tenant') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="바로빌 테넌트 관리"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" /></svg><span class="font-medium sidebar-text">바로빌 테넌트 관리</span></a></li>
|
||||
<li><a href="{{ route('lab.management.tax-invoice-strategy') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="전자세금계산서 전략"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 14l6-6m-5.5.5h.01m4.99 5h.01M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16l3.5-2 3.5 2 3.5-2 3.5 2z" /></svg><span class="font-medium sidebar-text">전자세금계산서 전략</span></a></li>
|
||||
<li><a href="{{ route('lab.management.tax-invoice') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="전자세금계산서"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 14l6-6m-5.5.5h.01m4.99 5h.01M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16l3.5-2 3.5 2 3.5-2 3.5 2zM10 8.5a.5.5 0 11-1 0 .5.5 0 011 0zm5 5a.5.5 0 11-1 0 .5.5 0 011 0z" /></svg><span class="font-medium sidebar-text">전자세금계산서</span></a></li>
|
||||
<li><a href="{{ route('lab.management.business-verify') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="사업자등록번호 진위 확인"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" /></svg><span class="font-medium sidebar-text">사업자등록번호 진위 확인</span></a></li>
|
||||
<li><a href="{{ route('lab.management.sales-meeting') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="영업관리 & 매니저 미팅관리"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z" /></svg><span class="font-medium sidebar-text">영업관리 & 매니저 미팅관리</span></a></li>
|
||||
<li class="border-t border-gray-100 pt-1 mt-1"></li>
|
||||
<li><a href="{{ route('lab.management.card-tax-matching') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="카드 세무항목 매칭 전략"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" /></svg><span class="font-medium sidebar-text">카드 세무항목 매칭 전략</span></a></li>
|
||||
<li><a href="{{ route('lab.management.card-api-report') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="한국 카드사 API 보고서"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" /></svg><span class="font-medium sidebar-text">한국 카드사 API 보고서</span></a></li>
|
||||
<li><a href="{{ route('lab.management.card-usage-matching') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="카드 사용내역 수집 후 매칭"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4" /></svg><span class="font-medium sidebar-text">카드 사용내역 수집 후 매칭</span></a></li>
|
||||
<li><a href="{{ route('lab.management.account-api') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="계좌입출금 내역 조회 API"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3" /></svg><span class="font-medium sidebar-text">계좌입출금 내역 조회 API</span></a></li>
|
||||
<li class="border-t border-gray-100 pt-1 mt-1"></li>
|
||||
<li><a href="{{ route('lab.management.sales-scenario') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="영업관리 시나리오"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" /></svg><span class="font-medium sidebar-text">영업관리 시나리오</span></a></li>
|
||||
<li><a href="{{ route('lab.management.manager-scenario') }}" class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-gray-600 hover:bg-gray-100 hover:text-gray-900 transition-colors" title="매니저 시나리오"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" /></svg><span class="font-medium sidebar-text">매니저 시나리오</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 축소 상태: 아이콘 + 플라이아웃 -->
|
||||
<div class="lab-collapsed-view hidden">
|
||||
<div class="lab-flyout-trigger relative">
|
||||
<button type="button" class="flex items-center justify-center w-full p-2 rounded-lg hover:bg-amber-50 transition-colors" title="R&D Labs">
|
||||
<svg class="w-5 h-5 text-amber-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<!-- 플라이아웃 팝업 -->
|
||||
<div class="lab-flyout hidden fixed w-56 bg-white rounded-lg shadow-xl border border-gray-200 z-[9999]">
|
||||
<!-- 화살표 -->
|
||||
<div class="absolute -left-2 top-3 w-0 h-0 border-t-8 border-b-8 border-r-8 border-transparent border-r-white"></div>
|
||||
<div class="absolute -left-[9px] top-3 w-0 h-0 border-t-8 border-b-8 border-r-8 border-transparent border-r-gray-200"></div>
|
||||
|
||||
<!-- 헤더 -->
|
||||
<div class="px-3 py-2 bg-gradient-to-r from-amber-50 to-amber-100 rounded-t-lg border-b border-amber-200">
|
||||
<span class="text-xs font-bold text-amber-800 uppercase tracking-wider">R&D Labs</span>
|
||||
</div>
|
||||
|
||||
<!-- 탭 -->
|
||||
<div class="flex p-2 bg-gray-50 border-b border-gray-100">
|
||||
<button type="button" onclick="switchLabFlyoutTab('s')" id="lab-flyout-tab-s" class="lab-flyout-tab active flex-1 py-1.5 text-xs font-bold rounded transition-all text-blue-600">
|
||||
S
|
||||
</button>
|
||||
<button type="button" onclick="switchLabFlyoutTab('a')" id="lab-flyout-tab-a" class="lab-flyout-tab flex-1 py-1.5 text-xs font-bold rounded transition-all text-purple-600">
|
||||
A
|
||||
</button>
|
||||
<button type="button" onclick="switchLabFlyoutTab('m')" id="lab-flyout-tab-m" class="lab-flyout-tab flex-1 py-1.5 text-xs font-bold rounded transition-all text-green-600">
|
||||
M
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- 메뉴 패널들 -->
|
||||
<div class="p-2 max-h-64 overflow-y-auto">
|
||||
<!-- S. Strategy -->
|
||||
<ul id="lab-flyout-panel-s" class="lab-flyout-panel space-y-0.5">
|
||||
<li><a href="{{ route('lab.strategy.tax') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">세무 전략</a></li>
|
||||
<li><a href="{{ route('lab.strategy.labor') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">노무 전략</a></li>
|
||||
<li><a href="{{ route('lab.strategy.debt') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">채권추심 전략</a></li>
|
||||
<li class="border-t border-gray-100 my-1"></li>
|
||||
<li><a href="{{ route('lab.strategy.stablecoin') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">스테이블코인 보고서</a></li>
|
||||
<li><a href="{{ route('lab.strategy.mrp-overseas') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">MRP 해외사례</a></li>
|
||||
<li><a href="{{ route('lab.strategy.chatbot') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">상담용 챗봇 전략</a></li>
|
||||
<li><a href="{{ route('lab.strategy.kodata-vs-nice') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">KoDATA vs NICE API</a></li>
|
||||
<li><a href="{{ route('lab.strategy.barobill-vs-popbill') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">바로빌 vs 팝빌 API</a></li>
|
||||
<li><a href="{{ route('lab.strategy.knowledge-search') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">사내 지식 검색 시스템</a></li>
|
||||
<li><a href="{{ route('lab.strategy.chatbot-compare') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">챗봇 솔루션 비교 분석</a></li>
|
||||
<li><a href="{{ route('lab.strategy.rag-startups') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">RAG 스타트업 현황</a></li>
|
||||
<li><a href="{{ route('lab.strategy.douzone') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">더존비즈온 분석</a></li>
|
||||
<li><a href="{{ route('lab.strategy.confluence-vs-notion') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">Confluence vs Notion</a></li>
|
||||
<li><a href="{{ route('lab.strategy.qa-solution') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">차세대 QA 솔루션</a></li>
|
||||
<li><a href="{{ route('lab.strategy.sales-strategy') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">SAM 영업전략</a></li>
|
||||
</ul>
|
||||
<!-- A. AI/Automation -->
|
||||
<ul id="lab-flyout-panel-a" class="lab-flyout-panel space-y-0.5 hidden">
|
||||
<li><a href="{{ route('lab.ai.business-ocr') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">사업자등록증 OCR</a></li>
|
||||
<li><a href="{{ route('lab.ai.web-recording') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">웹 녹음 AI 요약</a></li>
|
||||
<li><a href="{{ route('lab.ai.meeting-summary') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">회의록 AI 요약</a></li>
|
||||
<li><a href="{{ route('lab.ai.work-memo-summary') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">업무협의록 AI 요약</a></li>
|
||||
<li class="border-t border-gray-100 my-1"></li>
|
||||
<li><a href="{{ route('lab.ai.operator-chatbot') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">운영자용 챗봇</a></li>
|
||||
<li><a href="{{ route('lab.ai.vertex-rag') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">Vertex RAG 챗봇</a></li>
|
||||
<li><a href="{{ route('lab.ai.tenant-knowledge') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">테넌트 지식 업로드</a></li>
|
||||
<li><a href="{{ route('lab.ai.tenant-chatbot') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">테넌트 챗봇</a></li>
|
||||
<li class="border-t border-gray-100 my-1"></li>
|
||||
<li><a href="{{ route('lab.ai.sam-ai-menu') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">SAM AI 메뉴 이동</a></li>
|
||||
<li><a href="{{ route('lab.ai.sam-ai-alarm') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">SAM AI 알람음 제작</a></li>
|
||||
<li class="border-t border-gray-100 my-1"></li>
|
||||
<li><a href="{{ route('lab.ai.gps-attendance') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">GPS 출퇴근 관리</a></li>
|
||||
<li><a href="{{ route('lab.ai.company-overview') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">기업개황 조회</a></li>
|
||||
</ul>
|
||||
<!-- M. Management -->
|
||||
<ul id="lab-flyout-panel-m" class="lab-flyout-panel space-y-0.5 hidden">
|
||||
<li><a href="{{ route('lab.management.barobill-tenant') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">바로빌 테넌트 관리</a></li>
|
||||
<li><a href="{{ route('lab.management.tax-invoice-strategy') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">전자세금계산서 전략</a></li>
|
||||
<li><a href="{{ route('lab.management.tax-invoice') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">전자세금계산서</a></li>
|
||||
<li><a href="{{ route('lab.management.business-verify') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">사업자등록번호 진위 확인</a></li>
|
||||
<li><a href="{{ route('lab.management.sales-meeting') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">영업관리 & 매니저 미팅</a></li>
|
||||
<li class="border-t border-gray-100 my-1"></li>
|
||||
<li><a href="{{ route('lab.management.card-tax-matching') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">카드 세무항목 매칭 전략</a></li>
|
||||
<li><a href="{{ route('lab.management.card-api-report') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">한국 카드사 API 보고서</a></li>
|
||||
<li><a href="{{ route('lab.management.card-usage-matching') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">카드 사용내역 수집 후 매칭</a></li>
|
||||
<li><a href="{{ route('lab.management.account-api') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">계좌입출금 내역 조회 API</a></li>
|
||||
<li class="border-t border-gray-100 my-1"></li>
|
||||
<li><a href="{{ route('lab.management.sales-scenario') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">영업관리 시나리오</a></li>
|
||||
<li><a href="{{ route('lab.management.manager-scenario') }}" class="block px-2 py-1 text-xs text-gray-600 rounded hover:bg-gray-100 hover:text-gray-900">매니저 시나리오</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{{-- R&D Labs Section (Dynamic from DB with Tab UI) --}}
|
||||
<x-sidebar.labs-menu :menus="$labsMenus" />
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user