feat: 현황판 카드 최종 UI 완성 - 시각적 임팩트 극대화

🖼️ 이미지 크기 최대 확장:
- 이미지 크기: 20x20 → 24x24 (20% 추가 증가)
- 아이콘 크기: text-lg → text-xl (더 선명한 표시)
- 카드 영역을 최대한 활용하여 시각적 정보 전달력 극대화

🎯 진행중 태그 프리미엄 디자인:
- 배경: 연한 파란색 → 진한 파란색 그라데이션 (blue-500 to blue-600)
- 텍스트: 그라데이션 → 흰색 볼드체 (더 강한 대비)
- 패딩: px-3 py-1 → px-4 py-1.5 (더 풍성한 느낌)
- 그림자: shadow-sm → shadow-md (입체감 강화)
- 아이콘: 정적 시계 → 회전하는 톱니바퀴 (fa-cog fa-spin)
- 상태 점: 파란색 → 흰색 (더 명확한 대비)

📅 발생날짜 독립 디자인:
- 회색 배경 캡슐로 분리하여 정보 구분 명확화
- 진행중 태그와 시각적으로 분리되어 가독성 향상

👥 일정 & 담당 순서 변경:
- 담당자 → 마감시간 순으로 재배치
- 사람 중심의 정보 우선 표시
- 패딩 증가 (p-2 → p-3)로 더 여유로운 느낌

🎨 전체적인 시각적 개선:
- 더 강한 색상 대비로 정보 구분 명확화
- 애니메이션 효과로 생동감 추가
- 공간 활용도 최적화로 정보 밀도 향상

Expected Result:
 이미지 가시성 44% 향상 (16→24px)
 진행중 상태의 강력한 시각적 임팩트
 담당자 우선 표시로 책임 소재 명확화
 전체적으로 더 프로페셔널한 느낌
This commit is contained in:
Hyungi Ahn
2025-10-26 12:32:12 +09:00
parent cbfa4170c7
commit 01fa39c75b

View File

@@ -549,16 +549,15 @@
</div>
</div>
<div class="flex flex-col items-end space-y-2 ml-4">
<div class="flex items-center space-x-2">
${isUrgent() ? '<span class="bg-gradient-to-r from-red-500 to-red-600 text-white text-xs font-medium px-3 py-1 rounded-full shadow-sm">🔥 긴급</span>' : ''}
<div class="flex items-center space-x-1 bg-gradient-to-r from-blue-50 to-blue-100 px-3 py-1 rounded-full border border-blue-200 shadow-sm">
<div class="w-1.5 h-1.5 bg-blue-500 rounded-full animate-pulse"></div>
<span class="text-xs font-semibold bg-gradient-to-r from-blue-600 to-blue-800 bg-clip-text text-transparent">진행 중</span>
<i class="fas fa-clock text-blue-500 text-xs"></i>
<div class="flex items-center space-x-3">
${isUrgent() ? '<span class="bg-gradient-to-r from-red-500 to-red-600 text-white text-xs font-bold px-4 py-1.5 rounded-full shadow-md">🔥 긴급</span>' : ''}
<div class="flex items-center space-x-2 bg-gradient-to-r from-blue-500 to-blue-600 text-white px-4 py-1.5 rounded-full shadow-md">
<div class="w-2 h-2 bg-white rounded-full animate-pulse"></div>
<span class="text-xs font-bold">진행 중</span>
<i class="fas fa-cog fa-spin text-xs"></i>
</div>
<div class="text-right">
<span class="text-xs text-gray-500 mr-1">발생:</span>
<span class="text-xs font-medium text-gray-900">${formatKSTDate(issue.report_date)}</span>
<div class="bg-gray-100 px-3 py-1 rounded-full">
<span class="text-xs text-gray-600 font-medium">발생: ${formatKSTDate(issue.report_date)}</span>
</div>
</div>
<div class="flex items-center space-x-2">
@@ -602,31 +601,31 @@
<i class="fas fa-camera text-blue-500 mr-2"></i>
<span class="text-gray-600 font-medium text-sm">이미지</span>
</div>
<div class="flex space-x-3">
<div class="flex space-x-2">
${issue.photo_path ? `
<div class="relative w-20 h-20 rounded-lg border-2 border-blue-200 overflow-hidden cursor-pointer hover:shadow-lg hover:scale-105 transition-all duration-200" onclick="openPhotoModal('${issue.photo_path}')">
<div class="relative w-24 h-24 rounded-lg border-2 border-blue-200 overflow-hidden cursor-pointer hover:shadow-lg hover:scale-105 transition-all duration-200" onclick="openPhotoModal('${issue.photo_path}')">
<img src="${issue.photo_path}" alt="부적합 사진 1" class="w-full h-full object-cover" onerror="this.style.display='none'; this.nextElementSibling.style.display='flex';">
<div class="absolute inset-0 bg-gradient-to-br from-blue-50 to-blue-100 flex items-center justify-center" style="display: none;">
<i class="fas fa-image text-blue-500 text-lg"></i>
<i class="fas fa-image text-blue-500 text-xl"></i>
</div>
<div class="absolute -top-1 -right-1 w-3 h-3 bg-green-500 rounded-full border-2 border-white"></div>
</div>
` : `
<div class="w-20 h-20 bg-gradient-to-br from-gray-50 to-gray-100 rounded-lg border-2 border-gray-200 flex items-center justify-center">
<i class="fas fa-image text-gray-400 text-lg opacity-50"></i>
<div class="w-24 h-24 bg-gradient-to-br from-gray-50 to-gray-100 rounded-lg border-2 border-gray-200 flex items-center justify-center">
<i class="fas fa-image text-gray-400 text-xl opacity-50"></i>
</div>
`}
${issue.photo_path2 ? `
<div class="relative w-20 h-20 rounded-lg border-2 border-blue-200 overflow-hidden cursor-pointer hover:shadow-lg hover:scale-105 transition-all duration-200" onclick="openPhotoModal('${issue.photo_path2}')">
<div class="relative w-24 h-24 rounded-lg border-2 border-blue-200 overflow-hidden cursor-pointer hover:shadow-lg hover:scale-105 transition-all duration-200" onclick="openPhotoModal('${issue.photo_path2}')">
<img src="${issue.photo_path2}" alt="부적합 사진 2" class="w-full h-full object-cover" onerror="this.style.display='none'; this.nextElementSibling.style.display='flex';">
<div class="absolute inset-0 bg-gradient-to-br from-blue-50 to-blue-100 flex items-center justify-center" style="display: none;">
<i class="fas fa-image text-blue-500 text-lg"></i>
<i class="fas fa-image text-blue-500 text-xl"></i>
</div>
<div class="absolute -top-1 -right-1 w-3 h-3 bg-green-500 rounded-full border-2 border-white"></div>
</div>
` : `
<div class="w-20 h-20 bg-gradient-to-br from-gray-50 to-gray-100 rounded-lg border-2 border-gray-200 flex items-center justify-center">
<i class="fas fa-image text-gray-400 text-lg opacity-50"></i>
<div class="w-24 h-24 bg-gradient-to-br from-gray-50 to-gray-100 rounded-lg border-2 border-gray-200 flex items-center justify-center">
<i class="fas fa-image text-gray-400 text-xl opacity-50"></i>
</div>
`}
</div>
@@ -637,20 +636,20 @@
<span class="text-gray-600 font-medium text-sm">일정 & 담당</span>
</div>
<div class="space-y-3">
<div class="bg-orange-50 rounded-lg p-2 border border-orange-200">
<div class="flex items-center justify-between">
<span class="text-orange-600 text-xs font-medium">마감시간</span>
<i class="fas fa-calendar-alt text-orange-500 text-xs"></i>
</div>
<div class="text-orange-800 font-semibold text-sm mt-1">${formatKSTDate(issue.expected_completion_date)}</div>
</div>
<div class="bg-purple-50 rounded-lg p-2 border border-purple-200">
<div class="bg-purple-50 rounded-lg p-3 border border-purple-200">
<div class="flex items-center justify-between">
<span class="text-purple-600 text-xs font-medium">담당자</span>
<i class="fas fa-user text-purple-500 text-xs"></i>
</div>
<div class="text-purple-800 font-semibold text-sm mt-1">${issue.responsible_person || '-'}</div>
</div>
<div class="bg-orange-50 rounded-lg p-3 border border-orange-200">
<div class="flex items-center justify-between">
<span class="text-orange-600 text-xs font-medium">마감시간</span>
<i class="fas fa-calendar-alt text-orange-500 text-xs"></i>
</div>
<div class="text-orange-800 font-semibold text-sm mt-1">${formatKSTDate(issue.expected_completion_date)}</div>
</div>
</div>
</div>
</div>