- 가망고객(prospect) 모드에서 영업담당자 이름이 나오도록 수정 - tenantProspect.registeredBy 관계 eager loading 추가 - 매니저가 없으면 영업담당자 이름으로 표시 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
102 lines
5.7 KiB
PHP
102 lines
5.7 KiB
PHP
{{-- 승인 대기 목록 --}}
|
|
<div class="bg-white rounded-lg shadow-sm overflow-hidden flex flex-col min-h-0">
|
|
<div class="bg-yellow-500 text-white px-4 py-3 flex items-center gap-2 flex-shrink-0">
|
|
<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>
|
|
<span class="font-semibold">승인 대기</span>
|
|
<span class="ml-auto bg-yellow-600 px-2 py-0.5 rounded-full text-xs">{{ $pendingItems->total() }}건</span>
|
|
</div>
|
|
<div class="overflow-y-auto flex-1">
|
|
<div class="divide-y divide-gray-200">
|
|
@forelse($pendingItems as $item)
|
|
@php
|
|
$tenant = $item->tenant;
|
|
$prospect = $item->tenantProspect;
|
|
$companyName = $tenant?->company_name ?? $prospect?->company_name ?? '알 수 없음';
|
|
$representativeName = $tenant?->representative_name ?? $prospect?->ceo_name ?? '-';
|
|
$businessNumber = $tenant?->business_number ?? $prospect?->business_number ?? '-';
|
|
|
|
// 담당자 정보 (영업파트너 또는 가망고객 등록자)
|
|
$salesPersonName = $item->salesPartner?->user?->name ?? $prospect?->registeredBy?->name ?? '-';
|
|
$managerName = $item->manager?->name ?? $salesPersonName; // 매니저 없으면 영업담당자와 동일
|
|
@endphp
|
|
<div class="p-4 hover:bg-yellow-50 transition" id="pending-row-{{ $item->id }}">
|
|
<div class="flex justify-between items-start mb-2">
|
|
<div>
|
|
<div class="font-medium text-gray-900 text-sm">{{ $companyName }}</div>
|
|
<div class="text-xs text-gray-500">
|
|
{{ $representativeName }} | {{ $businessNumber }}
|
|
</div>
|
|
</div>
|
|
<div class="text-xs text-gray-400">{{ $item->updated_at->format('m/d') }}</div>
|
|
</div>
|
|
|
|
{{-- 진행률 표시 --}}
|
|
<div class="grid grid-cols-2 gap-2 mb-3">
|
|
<div class="flex items-center gap-1">
|
|
<span class="text-xs text-blue-600 w-6">영업</span>
|
|
<div class="flex-1 bg-gray-200 rounded-full h-1.5">
|
|
<div class="bg-blue-500 h-1.5 rounded-full" style="width: {{ $item->sales_progress }}%"></div>
|
|
</div>
|
|
<span class="text-xs text-gray-500 w-8 text-right">{{ $item->sales_progress }}%</span>
|
|
</div>
|
|
<div class="flex items-center gap-1">
|
|
<span class="text-xs text-green-600 w-6">매니</span>
|
|
<div class="flex-1 bg-gray-200 rounded-full h-1.5">
|
|
<div class="bg-green-500 h-1.5 rounded-full" style="width: {{ $item->manager_progress }}%"></div>
|
|
</div>
|
|
<span class="text-xs text-gray-500 w-8 text-right">{{ $item->manager_progress }}%</span>
|
|
</div>
|
|
</div>
|
|
|
|
{{-- 담당자 정보 --}}
|
|
<div class="text-xs text-gray-500 mb-3">
|
|
<span class="inline-flex items-center gap-1">
|
|
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
|
|
</svg>
|
|
영업: {{ $salesPersonName }}
|
|
</span>
|
|
<span class="mx-2">|</span>
|
|
<span class="inline-flex items-center gap-1">
|
|
매니저: {{ $managerName }}
|
|
</span>
|
|
</div>
|
|
|
|
{{-- 버튼 --}}
|
|
<div class="flex items-center justify-end gap-1">
|
|
<button type="button"
|
|
onclick="approveItem({{ $item->id }}, '{{ addslashes($companyName) }}')"
|
|
class="px-2 py-1 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition">
|
|
승인
|
|
</button>
|
|
<button type="button"
|
|
onclick="openRejectModal({{ $item->id }}, '{{ addslashes($companyName) }}')"
|
|
class="px-2 py-1 bg-red-500 hover:bg-red-600 text-white text-xs font-medium rounded transition">
|
|
반려
|
|
</button>
|
|
<button type="button"
|
|
onclick="openDetailModal({{ $item->id }})"
|
|
class="px-2 py-1 bg-gray-400 hover:bg-gray-500 text-white text-xs font-medium rounded transition">
|
|
상세
|
|
</button>
|
|
</div>
|
|
</div>
|
|
@empty
|
|
<div class="p-8 text-center text-gray-500 text-sm">
|
|
<svg class="w-12 h-12 mx-auto text-gray-300 mb-2" 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>
|
|
@endforelse
|
|
</div>
|
|
</div>
|
|
@if($pendingItems->hasPages())
|
|
<div class="px-4 py-2 border-t border-gray-200 flex-shrink-0 bg-gray-50">
|
|
{{ $pendingItems->withQueryString()->links() }}
|
|
</div>
|
|
@endif
|
|
</div>
|