You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
현재 /tasks의 WorkListPage는 Task 단위의 탭·필터·평면 목록입니다. 요청된 화면은 근로자 → 우선 Case → 지금 검토할 업무 → 현재 결정을 한 자리에서 확인하는 구조이므로, CSS 조정이 아니라 업무함의 정보 구조를 근로자 중심 마스터–디테일로 재구성해야 합니다.
공통 사이드바·헤더는 기존 AppLayout을 재사용하고 페이지 안에서 다시 만들지 않습니다.
목표 화면
상단
제목: 업무함
설명: 근로자별 진행 Case와 지금 처리할 업무를 확인하는 화면임을 안내
근로자·Case·업무 통합 검색
우선순위 정렬
왼쪽: 근로자/대상 목록
전체 근로자 수 표시
근로자명, 대표 업무, 기한, 상태 뱃지 표시
선택 행을 명확히 구분하고 키보드 포커스 제공
근로자와 연결되지 않은 업무가 지원될 경우 대상 미지정 업무 그룹 제공
선택 상태를 ?workerId= 등 URL에 보존하여 새로고침·뒤로가기 시 유지
오른쪽: 선택 대상 상세
근로자명, 국적·비자·근무 정보, 긴급도
우선 Case 제목·기한·진행률과 Case 열기
검토할 업무 목록과 상황별 CTA(초안 검토, 문서 확인 등)
현재 결정 요약, 남은 확인 항목, 근거 보기
데이터가 없는 영역은 샘플 문구를 실제 값처럼 표시하지 않고 명확한 안내 상태 제공
현재 코드 분석
대상: src/pages/WorkListPage/WorkListPage.tsx
현재 상세 이동: /tasks/:caseId → CaseDetailPage
라우트 이름은 caseId지만 실제로는 fetchTaskById()에 Task ID를 전달하고 있어 Case/Task 용어 정리가 필요합니다.
배경
현재
/tasks의WorkListPage는 Task 단위의 탭·필터·평면 목록입니다. 요청된 화면은 근로자 → 우선 Case → 지금 검토할 업무 → 현재 결정을 한 자리에서 확인하는 구조이므로, CSS 조정이 아니라 업무함의 정보 구조를 근로자 중심 마스터–디테일로 재구성해야 합니다.공통 사이드바·헤더는 기존
AppLayout을 재사용하고 페이지 안에서 다시 만들지 않습니다.목표 화면
상단
업무함왼쪽: 근로자/대상 목록
대상 미지정 업무그룹 제공?workerId=등 URL에 보존하여 새로고침·뒤로가기 시 유지오른쪽: 선택 대상 상세
Case 열기초안 검토,문서 확인등)근거 보기현재 코드 분석
src/pages/WorkListPage/WorkListPage.tsx/tasks/:caseId→CaseDetailPagecaseId지만 실제로는fetchTaskById()에 Task ID를 전달하고 있어 Case/Task 용어 정리가 필요합니다.SearchInput,Dropdown,StatusLabel,Button,EmptyStateuseApiQuery,useDebouncedValuedaysUntil,getUrgencyTierWorkerListPage의 2단workspace / listPanel / detailPanel패턴WorkItemRow는 평면 목록 전용이므로 새 내부 카드에 억지로 맞추지 말고, 반복되는 최소 단위만 별도 컴포넌트로 분리합니다.API 계약 확인이 필요한 이유
현재 응답만으로는 시안 전체를 정확히 표현할 수 없습니다.
TaskSummaryResponse에 근로자명·국적, 담당자/승인자, 체크리스트 진행률, 판단 근거, 추천 CTA가 없음worker_id가 필수여서대상 미지정 업무를 표현할 수 없음문서 확인의 목적지를 결정할 수 없음WorkerResponse에 비자 유형·근무 라인/부서가 없음구현 전에 다음 중 한 방향을 확정합니다.
workers + tasks를worker_id로 결합하고 선택된 대표 Task만 상세 조회하되, 100건 제한·누락 필드를 UI에 명시한다.어느 방향이든 화면 샘플 데이터(예: 12명, 특정 근로자, 진행률)를 하드코딩해 실제 데이터처럼 표시하지 않으며, 목록 항목마다 상세 API를 호출하지 않습니다.
구현 범위
WorkListPage를 근로자 중심 마스터–디테일 구조로 재구성완료 조건
/tasks에 요청 화면과 같은 근로자 목록 + 선택 상세 2단 구조가 표시된다.Case 열기가 올바른 Task/Case 상세로 이동한다.npm run lint,npm test -- --run,npm run build가 통과한다.범위 제외
선행/연관
docs/SCREEN_CATALOG.md의6a 업무 카드 보드