feat: 다중 도메인 UI 개선 및 컴포넌트 리팩토링

- 게시판, HR, 설정, 차량관리, 건설, 견적 등 전반적 UI 개선
- FormField, TabChip, Select 등 공통 컴포넌트 개선
- 가격배분 edit 페이지 제거 및 상세 페이지 통합
- 체크리스트, 근태, 급여, 권한 관리 등 폼 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-02-25 22:30:06 +09:00
parent 1675bcbedf
commit 8f9507a665
86 changed files with 856 additions and 685 deletions

View File

@@ -183,7 +183,7 @@ export function WorkScheduleManagement() {
onValueChange={(value: EmploymentType) => handleEmploymentTypeChange(value)}
disabled={isLoading}
>
<SelectTrigger className="w-64">
<SelectTrigger className="w-full md:w-64">
<SelectValue />
</SelectTrigger>
<SelectContent>
@@ -229,13 +229,13 @@ export function WorkScheduleManagement() {
<CardTitle className="text-lg">1 </CardTitle>
</CardHeader>
<CardContent>
<div className="grid grid-cols-2 gap-6">
<div className="grid grid-cols-1 sm:grid-cols-2 gap-6">
<div className="space-y-2">
<Label> </Label>
<TimePicker
value={settings.workStartTime}
onChange={(value) => setSettings(prev => ({ ...prev, workStartTime: value }))}
className="w-40"
className="w-full sm:w-40"
minuteStep={1}
/>
</div>
@@ -244,7 +244,7 @@ export function WorkScheduleManagement() {
<TimePicker
value={settings.workEndTime}
onChange={(value) => setSettings(prev => ({ ...prev, workEndTime: value }))}
className="w-40"
className="w-full sm:w-40"
minuteStep={1}
/>
</div>
@@ -258,7 +258,7 @@ export function WorkScheduleManagement() {
<CardTitle className="text-lg"> </CardTitle>
</CardHeader>
<CardContent>
<div className="grid grid-cols-2 gap-6">
<div className="grid grid-cols-1 sm:grid-cols-2 gap-6">
<div className="space-y-2">
<Label htmlFor="weekly-hours"> </Label>
<div className="flex items-center gap-2">
@@ -270,9 +270,9 @@ export function WorkScheduleManagement() {
onChange={(value) =>
setSettings(prev => ({ ...prev, weeklyWorkHours: value ?? 0 }))
}
className="w-24"
className="flex-1 sm:w-24 sm:flex-none"
/>
<span className="text-sm text-muted-foreground"></span>
<span className="text-sm text-muted-foreground shrink-0"></span>
</div>
</div>
<div className="space-y-2">
@@ -286,9 +286,9 @@ export function WorkScheduleManagement() {
onChange={(value) =>
setSettings(prev => ({ ...prev, weeklyOvertimeHours: value ?? 0 }))
}
className="w-24"
className="flex-1 sm:w-24 sm:flex-none"
/>
<span className="text-sm text-muted-foreground"></span>
<span className="text-sm text-muted-foreground shrink-0"></span>
</div>
</div>
</div>
@@ -301,13 +301,13 @@ export function WorkScheduleManagement() {
<CardTitle className="text-lg">1 </CardTitle>
</CardHeader>
<CardContent>
<div className="grid grid-cols-2 gap-6">
<div className="grid grid-cols-1 sm:grid-cols-2 gap-6">
<div className="space-y-2">
<Label> </Label>
<TimePicker
value={settings.breakStartTime}
onChange={(value) => setSettings(prev => ({ ...prev, breakStartTime: value }))}
className="w-40"
className="w-full sm:w-40"
minuteStep={1}
/>
</div>
@@ -316,7 +316,7 @@ export function WorkScheduleManagement() {
<TimePicker
value={settings.breakEndTime}
onChange={(value) => setSettings(prev => ({ ...prev, breakEndTime: value }))}
className="w-40"
className="w-full sm:w-40"
minuteStep={1}
/>
</div>