From e094c5ae499fedf7207eee14fb007119651101df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=EB=B3=91=EC=B2=A0?= Date: Wed, 25 Feb 2026 22:33:17 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[HR]=20=EC=9D=B8=EC=82=AC=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EC=A0=84=EB=B0=98=20UI=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 근태관리 다이얼로그 개선 (AttendanceInfoDialog, ReasonInfoDialog) - 카드관리 상세 페이지 개선 (CardDetail) - 부서관리 트리 컴포넌트 개선 (DepartmentToolbar, DepartmentTreeItem) - 직원관리 폼 개선 (EmployeeForm) - 급여/휴가 관리 UI 개선 Co-Authored-By: Claude Opus 4.6 --- .../AttendanceInfoDialog.tsx | 56 ++++++------- .../AttendanceManagement/ReasonInfoDialog.tsx | 22 +++--- .../hr/AttendanceManagement/index.tsx | 2 +- .../hr/CalendarManagement/index.tsx | 2 +- .../hr/CardManagement/CardDetail.tsx | 79 +++++++++++-------- src/components/hr/CardManagement/index.tsx | 3 +- .../DepartmentToolbar.tsx | 11 +-- .../DepartmentManagement/DepartmentTree.tsx | 1 - .../DepartmentTreeItem.tsx | 72 +++++++++-------- .../hr/EmployeeManagement/EmployeeForm.tsx | 77 +++++++++--------- .../SalaryManagement/SalaryDetailDialog.tsx | 14 ++-- src/components/hr/SalaryManagement/index.tsx | 1 + .../VacationGrantDialog.tsx | 2 +- .../VacationRequestDialog.tsx | 2 +- .../hr/VacationManagement/index.tsx | 6 +- 15 files changed, 184 insertions(+), 166 deletions(-) diff --git a/src/components/hr/AttendanceManagement/AttendanceInfoDialog.tsx b/src/components/hr/AttendanceManagement/AttendanceInfoDialog.tsx index 97ecbd8f..80e25776 100644 --- a/src/components/hr/AttendanceManagement/AttendanceInfoDialog.tsx +++ b/src/components/hr/AttendanceManagement/AttendanceInfoDialog.tsx @@ -94,20 +94,20 @@ export function AttendanceInfoDialog({ return ( - + {title} -
+
{/* 대상 선택 */} -
- +
+ handleChange('checkInHour', value)} > - + @@ -154,7 +154,7 @@ export function AttendanceInfoDialog({ value={formData.checkInMinute} onValueChange={(value) => handleChange('checkInMinute', value)} > - + @@ -169,14 +169,14 @@ export function AttendanceInfoDialog({
{/* 퇴근 시간 */} -
- -
+
+ +
handleChange('nightOvertimeHours', value)} > - + @@ -228,7 +228,7 @@ export function AttendanceInfoDialog({ value={formData.nightOvertimeMinutes} onValueChange={(value) => handleChange('nightOvertimeMinutes', value)} > - + @@ -243,14 +243,14 @@ export function AttendanceInfoDialog({
{/* 주말 연장 시간 */} -
- -
+
+ +
handleChange('employeeId', value)} > - + @@ -87,24 +87,24 @@ export function ReasonInfoDialog({
{/* 기준일 */} -
- +
+ handleChange('baseDate', date)} - className="w-[200px]" + className="flex-1 min-w-0" align="end" />
{/* 유형 선택 */} -
- +
+ handleDepartmentSelect(dp.id, value)} - disabled={isViewMode} - > - - - {dp.departmentName || '부서 선택'} - - - - {departments.map((dept) => ( - - - {formatDepartmentName(dept.name, dept.depth)} - - - ))} - - - +
+ + +
{!isViewMode && (