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

@@ -172,44 +172,38 @@ export function SubscriptionManagement({ initialData }: SubscriptionManagementPr
</h3>
{/* 사용량 정보 */}
<div className="space-y-6">
<div className="space-y-5">
{/* 사용자 수 */}
<div className="flex items-center gap-4">
<div className="w-24 text-sm text-muted-foreground flex-shrink-0">
</div>
<div className="flex-1">
<Progress value={subscription.userLimit ? (subscription.userCount / subscription.userLimit) * 100 : 30} className="h-2" />
</div>
<div className="text-sm text-blue-600 min-w-[100px] text-right">
{subscription.userCount} / {subscription.userLimit ? `${subscription.userLimit}` : '무제한'}
<div className="space-y-2">
<div className="flex items-center justify-between">
<span className="text-sm text-muted-foreground"> </span>
<span className="text-sm text-blue-600">
{subscription.userCount} / {subscription.userLimit ? `${subscription.userLimit}` : '무제한'}
</span>
</div>
<Progress value={subscription.userLimit ? (subscription.userCount / subscription.userLimit) * 100 : 30} className="h-2" />
</div>
{/* 저장 공간 */}
<div className="flex items-center gap-4">
<div className="w-24 text-sm text-muted-foreground flex-shrink-0">
</div>
<div className="flex-1">
<Progress value={storageProgress} className="h-2" />
</div>
<div className="text-sm text-blue-600 min-w-[120px] text-right">
{subscription.storageUsedFormatted} / {subscription.storageLimitFormatted}
<div className="space-y-2">
<div className="flex items-center justify-between">
<span className="text-sm text-muted-foreground"> </span>
<span className="text-sm text-blue-600">
{subscription.storageUsedFormatted} / {subscription.storageLimitFormatted}
</span>
</div>
<Progress value={storageProgress} className="h-2" />
</div>
{/* AI API 호출 */}
<div className="flex items-center gap-4">
<div className="w-24 text-sm text-muted-foreground flex-shrink-0">
AI API
</div>
<div className="flex-1">
<Progress value={apiProgress} className="h-2" />
</div>
<div className="text-sm text-blue-600 min-w-[100px] text-right">
{formatNumber(apiCallsUsed)} / {formatNumber(apiCallsLimit)}
<div className="space-y-2">
<div className="flex items-center justify-between">
<span className="text-sm text-muted-foreground">AI API </span>
<span className="text-sm text-blue-600">
{formatNumber(apiCallsUsed)} / {formatNumber(apiCallsLimit)}
</span>
</div>
<Progress value={apiProgress} className="h-2" />
</div>
</div>
</CardContent>