Skip to content

HBTM100_Shell·팀 필터

(Hereby) 내부 결재 > Shell·팀 필터

내부 결재 (HBTM)
대상 사용자조건1 [TEAM_LEADER] / 조건2 [SUPER_ADMIN]
프로토타입TBU
관련 정책[[POL_결재워크플로우]] · [[POL_권한(RBAC)]]
Statusreview
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카나PMGC700 깊이 재작성 + 확정 스타일

Data I/O

Server → Client

변수엔티티.컬럼값 없을 때비고
$관리 가능 팀 목록 (Team[], 추정)없으면 "전체 팀"만팀명 + 인원수
$User.emailsignin 리다이렉트예 "djcola814@gmail.com"
$notifications[] (추정)badge 미표시미읽음 badge (예 "1")
$현재 선택 팀 scope기본 "전체 팀" (admin)팀 필터 선택 값

Client → Server

액션전달 값tRPC procedure권한 토큰
팀 선택teamId큐 재로드 (team scope reload) (추정)team:scope (추정)
탭 전환route7탭 라우팅 (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 (패널 상세 미확인)
notificationsTBU: 알림 패널 상세(카테고리·mute·채널)
40계정Button• 로그인 계정 표시 (예 "djcola814@gmail.com")
• 클릭 시: TBU (계정 메뉴 상세 미확인)
User.emailTBU: 계정 메뉴
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 공통)