feat: 모바일 반응형 UI 개선 및 공휴일/일정 시스템 통합

- MobileCard 접기/펼치기(collapsible) 기능 추가 및 반응형 레이아웃 개선
- DatePicker 공휴일/세무일정 색상 코딩 통합, DateTimePicker 신규 추가
- useCalendarScheduleInit 훅으로 전역 공휴일/일정 데이터 캐싱
- 전 도메인 날짜 필드 DatePicker 표준화
- 생산대시보드/작업지시/견적서/주문관리 모바일 호환성 강화
- 회계 모듈 기능 개선 (매입상세 결재연동, 미수금현황 조회조건 등)
- 달력 일정 관리 API 연동 및 대량 등록 다이얼로그 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-02-26 21:28:23 +09:00
parent 3f0a3584ec
commit 13d27553b9
107 changed files with 1703 additions and 970 deletions

View File

@@ -1,7 +1,7 @@
'use client';
import { useState, useEffect } from 'react';
import { Plus, X } from 'lucide-react';
import { Plus, Trash2 } from 'lucide-react';
import { Button } from '@/components/ui/button';
import {
Select,
@@ -97,7 +97,7 @@ export function ApprovalLineSection({ data, onChange }: ApprovalLineSectionProps
className="h-9 w-9 text-red-500 hover:text-red-700 hover:bg-red-50"
onClick={() => handleRemove(index)}
>
<X className="w-4 h-4" />
<Trash2 className="w-4 h-4" />
</Button>
</div>
))

View File

@@ -1,6 +1,6 @@
'use client';
import { Plus, X } from 'lucide-react';
import { Plus, Trash2 } from 'lucide-react';
import { Input } from '@/components/ui/input';
import { DatePicker } from '@/components/ui/date-picker';
import { Label } from '@/components/ui/label';
@@ -157,7 +157,7 @@ export function ExpenseReportForm({ data, onChange }: ExpenseReportFormProps) {
className="h-8 w-8 text-red-500 hover:text-red-700 hover:bg-red-50"
onClick={() => handleRemoveItem(index)}
>
<X className="w-4 h-4" />
<Trash2 className="w-4 h-4" />
</Button>
</TableCell>
</TableRow>

View File

@@ -1,7 +1,7 @@
'use client';
import { useState, useEffect } from 'react';
import { Plus, X } from 'lucide-react';
import { Plus, Trash2 } from 'lucide-react';
import { Button } from '@/components/ui/button';
import {
Select,
@@ -97,7 +97,7 @@ export function ReferenceSection({ data, onChange }: ReferenceSectionProps) {
className="h-9 w-9 text-red-500 hover:text-red-700 hover:bg-red-50"
onClick={() => handleRemove(index)}
>
<X className="w-4 h-4" />
<Trash2 className="w-4 h-4" />
</Button>
</div>
))