feat: 임시 이동 설비 현황 표시 기능 추가

- 대시보드 하단에 임시 이동된 설비 카드 섹션 추가
- 작업장 모달에 '이동 설비' 탭 추가
  - 이 작업장으로 이동해 온 설비 표시
  - 다른 곳으로 이동한 설비 표시
- 설비 마커에 이동 상태 색상 구분 (주황색 점선 + 깜빡임)
- 원위치 복귀 기능
- 사이드바 기본값을 접힌 상태로 변경

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-02-04 14:30:25 +09:00
parent 4d83f10b07
commit d1aec517a6
5 changed files with 415 additions and 9 deletions

View File

@@ -2940,6 +2940,23 @@
color: #6b7280;
}
/* 임시 이동된 설비 */
.equipment-marker.moved {
border-color: #f59e0b;
border-style: dashed;
border-width: 3px;
background: rgba(245, 158, 11, 0.15);
animation: movedPulse 2s infinite;
}
.equipment-marker.moved .marker-label {
color: #d97706;
}
@keyframes movedPulse {
0%, 100% { border-color: #f59e0b; }
50% { border-color: #fbbf24; }
}
@keyframes pulse-border {
0%, 100% { border-color: #dc2626; }
50% { border-color: #fca5a5; }
@@ -3825,3 +3842,168 @@
font-size: 9px;
}
}
/* ==================== 임시 이동 설비 목록 ==================== */
.moved-equipment-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 16px;
}
.moved-equipment-card {
background: white;
border: 1px solid #e5e7eb;
border-radius: 12px;
padding: 16px;
cursor: pointer;
transition: all 0.15s ease;
border-left: 4px solid #f59e0b;
}
.moved-equipment-card:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
transform: translateY(-2px);
}
.moved-eq-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
}
.moved-eq-code {
font-weight: 700;
font-size: 0.9rem;
color: #374151;
}
.moved-eq-badge {
background: #fef3c7;
color: #d97706;
font-size: 0.75rem;
font-weight: 600;
padding: 2px 8px;
border-radius: 12px;
}
.moved-eq-name {
font-size: 1rem;
font-weight: 600;
color: #111827;
margin-bottom: 12px;
}
.moved-eq-location {
background: #f9fafb;
border-radius: 8px;
padding: 12px;
margin-bottom: 12px;
}
.location-row {
display: flex;
justify-content: space-between;
align-items: center;
}
.location-label {
font-size: 0.8rem;
color: #6b7280;
}
.location-value {
font-size: 0.85rem;
font-weight: 500;
color: #374151;
}
.location-value.current {
color: #f59e0b;
font-weight: 600;
}
.location-arrow {
text-align: center;
color: #9ca3af;
font-size: 1rem;
margin: 4px 0;
}
.moved-eq-date {
font-size: 0.8rem;
color: #9ca3af;
margin-bottom: 12px;
}
.moved-equipment-card .btn {
width: 100%;
}
/* 모달 내 이동 설비 탭 스타일 */
.moved-eq-tab-content {
padding: 16px 0;
}
.moved-eq-list {
display: flex;
flex-direction: column;
gap: 10px;
}
.moved-eq-item {
background: white;
border-radius: 8px;
padding: 12px;
border-left: 4px solid #9ca3af;
}
.moved-eq-item.in {
border-left-color: #22c55e;
background: #f0fdf4;
}
.moved-eq-item.out {
border-left-color: #f59e0b;
background: #fffbeb;
}
.moved-eq-item-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 6px;
}
.moved-eq-item-header .eq-code {
font-weight: 700;
font-size: 0.85rem;
color: #374151;
}
.moved-eq-item-header .eq-name {
font-size: 0.9rem;
color: #111827;
}
.moved-eq-item-info {
display: flex;
align-items: center;
gap: 8px;
font-size: 0.8rem;
color: #6b7280;
}
.moved-eq-item-info .arrow {
color: #9ca3af;
}
.moved-eq-item-info .to-location {
font-weight: 500;
}
.moved-eq-item-date {
font-size: 0.75rem;
color: #9ca3af;
margin-top: 4px;
}