@foreach($steps as $index => $step)
@php
$isApprover = in_array($step['step_type'] ?? 'approval', ['approval', 'agreement']);
$isPreDecided = ($step['approval_type'] ?? 'normal') === 'pre_decided';
$statusConfig = match($step['status'] ?? 'pending') {
'approved' => $isPreDecided
? ['icon' => '⚡', 'bg' => 'bg-indigo-500', 'border' => 'border-indigo-500', 'text' => 'text-indigo-700']
: ['icon' => '✓', 'bg' => 'bg-green-500', 'border' => 'border-green-500', 'text' => 'text-green-700'],
'rejected' => ['icon' => '✗', 'bg' => 'bg-red-500', 'border' => 'border-red-500', 'text' => 'text-red-700'],
'on_hold' => ['icon' => '⏸', 'bg' => 'bg-amber-500', 'border' => 'border-amber-500', 'text' => 'text-amber-700'],
'skipped' => ['icon' => '—', 'bg' => 'bg-gray-400', 'border' => 'border-gray-400', 'text' => 'text-gray-500'],
default => ['icon' => ($step['step_order'] ?? $index + 1), 'bg' => 'bg-white', 'border' => 'border-gray-300', 'text' => 'text-gray-500'],
};
$isCurrent = $isApprover && ($step['status'] ?? 'pending') === 'pending' && ($step['step_order'] ?? 0) == $currentStep;
if ($isCurrent) {
$statusConfig['bg'] = 'bg-blue-500';
$statusConfig['border'] = 'border-blue-500';
$statusConfig['text'] = 'text-blue-700';
$statusConfig['icon'] = ($step['step_order'] ?? $index + 1);
}
$typeLabel = match($step['step_type'] ?? 'approval') {
'approval' => '결재',
'agreement' => '합의',
'reference' => '참조',
default => '',
};
$isFilledStatus = in_array($step['status'] ?? 'pending', ['approved', 'rejected', 'skipped', 'on_hold']) || $isCurrent;
@endphp
@if($index > 0)
@endif
{{-- 원형 아이콘 --}}
{!! $statusConfig['icon'] !!}
{{-- 결재자명 --}}
{{ $step['approver_name'] ?? ($step['approver']['name'] ?? '미지정') }}
{{-- 유형 + 직급 --}}
{{ $typeLabel }}{{ !empty($step['approver_position']) ? ' · ' . $step['approver_position'] : '' }}
@if($isPreDecided && ($step['status'] ?? '') === 'approved')
전결
@endif
@if(($step['status'] ?? '') === 'on_hold')
보류
@endif
{{-- 처리일시 --}}
@if(!empty($step['acted_at']))
{{ \Carbon\Carbon::parse($step['acted_at'])->format('m/d H:i') }}
@endif
@endforeach