레거시(sam/sales/barobill/registration)를 Laravel 스타일로 마이그레이션 - Migration: barobill_members 테이블 생성 - Model: BarobillMember (상태 라벨, 사업자번호 포맷팅 등) - API Controller: CRUD + 통계 조회 (HTMX HTML 반환 지원) - API Routes: /api/admin/barobill/members/* - Views: - index.blade.php (통계 카드, 필터, 테이블, 모달) - partials/table.blade.php (HTMX 테이블) - partials/stats.blade.php (통계 카드) - partials/modal-form.blade.php (등록/수정 폼, 자동완성) 기능: - 회원사 목록 조회 (검색, 상태 필터) - 회원사 등록 (사업자번호 중복 체크) - 회원사 수정 (모달) - 회원사 삭제 (확인 후) - 테스트 데이터 자동완성 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
56 lines
3.0 KiB
PHP
56 lines
3.0 KiB
PHP
<!-- 연동 회원사 -->
|
|
<div class="bg-white rounded-lg p-6 shadow-sm border border-gray-100">
|
|
<div class="flex items-start justify-between mb-2">
|
|
<h3 class="text-xs font-semibold text-gray-400 uppercase">연동 회원사</h3>
|
|
<div class="p-1.5 rounded-lg bg-blue-50 text-blue-600">
|
|
<svg class="w-5 h-5" 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>
|
|
</div>
|
|
</div>
|
|
<div class="text-2xl font-bold text-gray-900">{{ number_format($stats['total']) }}</div>
|
|
<div class="text-xs text-gray-400 mt-1">DB 실시간 합계</div>
|
|
</div>
|
|
|
|
<!-- 활성 회원사 -->
|
|
<div class="bg-white rounded-lg p-6 shadow-sm border border-gray-100">
|
|
<div class="flex items-start justify-between mb-2">
|
|
<h3 class="text-xs font-semibold text-gray-400 uppercase">활성 회원사</h3>
|
|
<div class="p-1.5 rounded-lg bg-green-50 text-green-600">
|
|
<svg class="w-5 h-5" 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>
|
|
</div>
|
|
</div>
|
|
<div class="text-2xl font-bold text-gray-900">{{ number_format($stats['active']) }}</div>
|
|
<div class="text-xs text-gray-400 mt-1">정상 운영 중</div>
|
|
</div>
|
|
|
|
<!-- 비활성 회원사 -->
|
|
<div class="bg-white rounded-lg p-6 shadow-sm border border-gray-100">
|
|
<div class="flex items-start justify-between mb-2">
|
|
<h3 class="text-xs font-semibold text-gray-400 uppercase">비활성</h3>
|
|
<div class="p-1.5 rounded-lg bg-gray-100 text-gray-600">
|
|
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636" />
|
|
</svg>
|
|
</div>
|
|
</div>
|
|
<div class="text-2xl font-bold text-gray-900">{{ number_format($stats['inactive']) }}</div>
|
|
<div class="text-xs text-gray-400 mt-1">일시 중지</div>
|
|
</div>
|
|
|
|
<!-- 대기중 -->
|
|
<div class="bg-white rounded-lg p-6 shadow-sm border border-gray-100">
|
|
<div class="flex items-start justify-between mb-2">
|
|
<h3 class="text-xs font-semibold text-gray-400 uppercase">대기중</h3>
|
|
<div class="p-1.5 rounded-lg bg-yellow-50 text-yellow-600">
|
|
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
|
|
</svg>
|
|
</div>
|
|
</div>
|
|
<div class="text-2xl font-bold text-gray-900">{{ number_format($stats['pending']) }}</div>
|
|
<div class="text-xs text-gray-400 mt-1">승인 대기</div>
|
|
</div>
|