refactor(WEB): 공사관리 리스트 페이지 모바일 필터 마이그레이션

- BiddingListClient: MobileFilter 컴포넌트 적용
- ContractListClient: MobileFilter 컴포넌트 적용
- EstimateListClient: MobileFilter 컴포넌트 적용
- HandoverReportListClient: MobileFilter 컴포넌트 적용
- IssueManagementListClient: MobileFilter 컴포넌트 적용
- ItemManagementClient: MobileFilter 컴포넌트 적용
- LaborManagementClient: MobileFilter 컴포넌트 적용
- PricingListClient: MobileFilter 컴포넌트 적용
- SiteBriefingListClient: MobileFilter 컴포넌트 적용
- SiteManagementListClient: MobileFilter 컴포넌트 적용
- StructureReviewListClient: MobileFilter 컴포넌트 적용
- WorkerStatusListClient: MobileFilter 컴포넌트 적용
- TodayIssueSection: CEO 대시보드 이슈 섹션 개선
- EmployeeForm: 사원등록 폼 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
byeongcheolryu
2026-01-13 18:33:39 +09:00
parent db47a15544
commit ea8d701a8d
16 changed files with 1224 additions and 843 deletions

View File

@@ -1,22 +1,28 @@
'use client';
import { useRouter } from 'next/navigation';
import { useRouter, useParams } from 'next/navigation';
import { toast } from 'sonner';
import { EmployeeForm } from '@/components/hr/EmployeeManagement/EmployeeForm';
import { createEmployee } from '@/components/hr/EmployeeManagement/actions';
import type { EmployeeFormData } from '@/components/hr/EmployeeManagement/types';
export default function EmployeeNewPage() {
const router = useRouter();
const params = useParams();
const locale = params.locale as string || 'ko';
const handleSave = async (data: EmployeeFormData) => {
try {
const result = await createEmployee(data);
if (result.success) {
router.push('/ko/hr/employee-management');
toast.success('사원이 등록되었습니다.');
router.push(`/${locale}/hr/employee-management`);
} else {
toast.error(result.error || '사원 등록에 실패했습니다.');
console.error('[EmployeeNewPage] Create failed:', result.error);
}
} catch (error) {
toast.error('서버 오류가 발생했습니다.');
console.error('[EmployeeNewPage] Create error:', error);
}
};