HBTM100_Shell·팀 필터
(Hereby) 내부 결재 > Shell·팀 필터
| 앱 | 내부 결재 (HBTM) |
| 대상 사용자 | 조건1 [TEAM_LEADER] / 조건2 [SUPER_ADMIN] |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_결재워크플로우]] · [[POL_권한(RBAC)]] |
| Status | review |
| Owner | 카나 (PM) |
개요
- 내부 결재의 공통 Shell이다. 앱 타이틀 "내부 결재" + 팀 선택 드롭다운(전체 팀 + 팀별 인원수) + 알림 + 계정 + 로그아웃 + 상단 7탭으로 구성된다: "대시보드" / "스케쥴러" / "연차/휴가" / "근무 관리" / "인센티브" / "문서 관리" / "출퇴근현황".
- 진입 시 "출퇴근현황"으로 랜딩한다. 출퇴근현황은 Admin 근태 현황 근무 탭 임베드(/team-manager/?att=1)의 원본 화면으로, 사번/이름/소속/근무일/출근 시간/퇴근 시간 목록 + 소속·기간 필터 + "더 보기 (8/n)"로 구성된다 ([[HBAD250_근태 현황 (근무)]]).
- 팀 선택은 team scope 필터다. admin 계정은 "전체 팀"을 포함해 모든 팀을 선택할 수 있고, 팀 선택 변경 시 하위 승인 큐가 해당 팀 scope로 재로드된다.
- 7탭 라우팅과 각 탭 상세는 개별 화면([[HBTM200_대시보드]] 등)을 참조한다 (중복 정의 금지).
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 2026-07-06 | 카나 | PM | 최초 작성 |
| 2026-07-10 | 카나 | PM | 라이브 기능 검토 반영 |
| 2026-07-13 | 카나 | PM | 버튼 행동 명세 보강 |
| 2026-07-21 | 카나 | PM | GC700 깊이 재작성 + 확정 스타일 |
Data I/O
Server → Client
| 변수 | 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
| $ | 관리 가능 팀 목록 (Team[], 추정) | 없으면 "전체 팀"만 | 팀명 + 인원수 |
| $ | User.email | signin 리다이렉트 | 예 "djcola814@gmail.com" |
| $ | notifications[] (추정) | badge 미표시 | 미읽음 badge (예 "1") |
| $ | 현재 선택 팀 scope | 기본 "전체 팀" (admin) | 팀 필터 선택 값 |
Client → Server
| 액션 | 전달 값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| 팀 선택 | teamId | 큐 재로드 (team scope reload) (추정) | team:scope (추정) |
| 탭 전환 | route | 7탭 라우팅 (client route) | - |
| 로그아웃 | - | 세션 종료 (추정) | - |
외부 통합 (cross-app)
| 외부 시스템 | 데이터 | 방향 | 비고 |
|---|---|---|---|
| Admin ([[HBAD250_근태 현황 (근무)]]) | 출퇴근현황 임베드 원본 | HBAD ↔ TM | /team-manager/?att=1 |
| Secom 근태 원천 | 출퇴근현황 census 실데이터 (14,358건) | Secom → TM | [[POL_근태원천]] |
화면 플로우
Shell 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 화면 진입 조건 | - | 조건1 [TEAM_LEADER] 인증. 전 화면 공통 Shell로 상시 노출 | 인증 세션 (team scope) | token 내부 key TBU |
| 01 | 초기 상태 | - | 진입 시 "출퇴근현황"으로 랜딩. Shell 상단 고정(타이틀·팀 필터·알림·계정·로그아웃·7탭) | 아래 출퇴근현황 화면 표 | 랜딩=출퇴근현황 |
| 10 | 앱 타이틀 | Text | • 앱 식별 타이틀 표시 "내부 결재" | 라이브 원문 | |
| 20 | 팀 선택 | Dropdown | • 하위 승인 큐를 팀 scope로 거르는 필터 • 선택 시: 목록 필터 적용 → 하위 승인 큐 team scope 재로드 - 원문 예: "전체 팀" / "치료팀 (1명)" / "간호부 (19명)" / "총무팀 (4명)" / "진료부 (3명)" / "스포츠재활 (3명)" / "병동1 (4명)" / "원무팀 (4명)" 등 (팀명 + 인원수) | 선택 시 하위 큐 team scope 재로드 | 테스트/0명 팀 다수 노출 |
| ㄴ21 | 전체 팀 | Option | • 전 팀 scope로 큐를 여는 기본 옵션 • 선택 시: 전 팀 큐 노출. admin/SUPER_ADMIN scope 기본값 | teamScope | |
| 30 | 알림 | Button | • 알림 패널을 여는 진입점. icon + 미읽음 badge(예 "1") • 클릭 시: TBU (패널 상세 미확인) | notifications | TBU: 알림 패널 상세(카테고리·mute·채널) |
| 40 | 계정 | Button | • 로그인 계정 표시 (예 "djcola814@gmail.com") • 클릭 시: TBU (계정 메뉴 상세 미확인) | User.email | TBU: 계정 메뉴 |
| 50 | 로그아웃 | Button | • 세션을 종료하고 로그아웃하는 기능. 라벨 "로그아웃" • 클릭 시: 세션 종료 → signin 리다이렉트(추정) | 세션 종료 | |
| 60 | 상단 탭 | Tab | • 7탭 라우팅 네비게이션 • 클릭 시: 각 화면 전환(출퇴근현황 포함) - 순서: "대시보드" / "스케쥴러" / "연차/휴가" / "근무 관리" / "인센티브" / "문서 관리" / "출퇴근현황"(신설, 현재 랜딩) | route 전환 | |
| ㄴ61 | 대시보드 | Tab | • 클릭 시: /team-manager/ 전환 | [[HBTM200_대시보드]] | |
| ㄴ62 | 스케쥴러 | Tab | • 클릭 시: /team-manager/scheduler 전환 | [[HBTM250_스케줄러 Embed]] | |
| ㄴ63 | 연차/휴가 | Tab | • 클릭 시: /team-manager/leave 전환 | [[HBTM210_연차·휴가 승인 큐]] | |
| ㄴ64 | 근무 관리 | Tab | • 클릭 시: /team-manager/work 전환 | [[HBTM220_근무 관리 (연장·휴일/외근)]] | |
| ㄴ65 | 인센티브 | Tab | • 클릭 시: /team-manager/treatment 전환 | [[HBTM230_인센티브 (치료 인센티브 등록)]] | |
| ㄴ66 | 문서 관리 | Tab | • 클릭 시: /team-manager/document-management 전환 | [[HBTM240_문서 관리]] | |
| ㄴ67 | 출퇴근현황 | Tab | • 클릭 시: /team-manager/?att=1 전환. 신설 · 현재 랜딩 화면. 아래 "출퇴근현황 화면" 표 참조 | [[HBAD250_근태 현황 (근무)]] | Admin 임베드 원본 |
출퇴근현황 화면 사양표
"출퇴근현황"은 신설 탭이자 진입 시 현재 랜딩 화면이다. Admin 근태 근무 탭 임베드(/team-manager/?att=1)의 원본 화면이며, 페이지 제목은 "HBAD250_근태 현황 (근무)"이다 ([[HBAD250_근태 현황 (근무)]]). Secom 근태 원천 실데이터(14,358건)를 소비한다.
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 진입/랜딩 | - | "출퇴근현황" 탭 · /team-manager/?att=1. 앱 진입 시 기본 랜딩 화면 | 인증 세션 | 랜딩 |
| 10 | 소속 필터 | Dropdown | • 목록을 소속 scope로 거르는 필터. "소속 전체" + 소속별 선택 • 선택 시: 소속 scope 목록 재조회 | org scope | |
| 20 | 기간 필터 | DatePicker | • 조회 기간 범위를 지정하는 필터. 기간 시작 - 종료 범위 조회 • 지정 시: 해당 기간 목록 재조회 | date range | |
| 30 | 목록 | Table | • Secom census 근태 목록. 6컬럼: 사번 / 이름 / 소속 / 근무일 / 출근 시간 / 퇴근 시간 | attendances (Secom 원천) | 읽기 전용 |
| 40 | 더 보기 | Button | • 상위 8건 preview에서 추가 행을 로드하는 기능. 라벨 "더 보기 (8/n)" • 클릭 시: 즉시 실행(컨펌 없음), 성공: 목록 추가 로드 | census 실데이터 | |
| 50 | 원천 화면 | - | Admin 근태 현황 근무 탭 임베드의 원본 화면 (읽기 전용, mutation 없음) | [[HBAD250_근태 현황 (근무)]] | [[POL_근태원천]] |
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 | 비고 |
|---|---|---|---|
CASE01 [팀 필터 변경] | 팀 선택 드롭다운 | 하위 승인 큐 team scope 재로드 | |
CASE02 [admin 전체 팀] | "전체 팀" 선택 | 전 팀 큐 노출 | token TBU |
조건1 [TEAM_LEADER] | Shell 진입 | 소속 팀 scope 고정 | token 내부 key TBU |
조건2 [SUPER_ADMIN] | Shell 진입 | 전체 팀 선택 가능 | token 내부 key TBU |
Open Question
- 알림 패널 상세(카테고리·mute·채널) = TBU
- 계정 버튼 클릭 시 메뉴 상세 = TBU
- 팀 선택 드롭다운의 0명/테스트 팀 필터링·정렬 규칙 = TBU
- team scope 권한 token 내부 key = TBU (HBAD 공통)