Skip to content

HBTM100_Shell·팀 필터 ​

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

앱내부 결재 (HBTM)
대상 사용자조건1 [TEAM_LEADER] / 조건2 [SUPER_ADMIN]
프로토타입TBU
관련 정책[[POL_결재워크플로우]] · [[POL_권한(RBAC)]]
Statusreview
Owner카나 (PM)

개요 ​

  • 내부 결재의 공통 Shell이다. (10/13, #1213 — 프로덕션 배포) admin식 좌측 LNB + 공용 페이지 헤더로 전면 개편(65) — LNB: 「대시보드 / 연차/휴가 / 근무 관리 / 인센티브 / 문서 관리 / 결재선 설정」(2026-10-20 #1268로 「스케쥴러(펼침형)」 제거 — 10/21 라이브 실측 6메뉴), 헤더: h1 제목·새로고침·팀 선택 콤보(전체 팀+팀별 인원수)·알림·아바타. (구 구조: 앱 타이틀 "내부 결재" + 팀 선택 + 알림 + 계정 + 로그아웃 + 상단 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 깊이 재작성 + 확정 스타일
2026-10-02카나PM/signup → 로그인 이동(d2192b69, #1011) — 커밋 근거, 라이브 실사 이월(TBU) - 카나/PM
2026-10-14카나PM(10/13 머지, #1213 a8db928 — 프로덕션 배포) Shell 전면 개편: 상단 가로 7탭 → admin식 좌측 LNB + 공용 페이지 헤더(65 신설, 60~ㄴ67 구 구조 표기) — 10/14 라이브 실측: LNB 메뉴 「대시보드 / 연차/휴가 / 근무 관리 / 인센티브 / 문서 관리 / 결재선 설정 / 스케쥴러(펼침형)」 + Toggle sidebar, 헤더 = h1 제목·새로고침·전체 팀 콤보(팀별 인원수)·불편·기능 신고·알림·아바타. 반응형 3단(모바일<768 드로어 · 태블릿 레일 · PC 펼침) = admin 규격. 메뉴는 권한(승인·스케줄러·관리 팀)으로 필터, 권한 밖 URL 직접 진입은 403 전에 대시보드로(문서 관리는 관리 팀 없으면 숨김). 제목 73곳 div 전환(태그 기본 32px 결함) - 카나/PM
2026-10-21카나PM(10/20 머지, #1268 d9e90f9) LNB 「스케쥴러(펼침형)」 제거 — TM의 간호 스케줄러 사본(근무표·인력·희망근무·근무형태 탭, 모달 22개, 약 4,900행)을 제거하고 admin을 단일 정본으로 유지(2026-05 admin 복사 이후 이중 수정 비용·기능 어긋남 해소). TM은 결재·문서 관리·결재선 설정 앱으로 존속. 10/21 라이브 실측: LNB = 「대시보드 / 연차/휴가 / 근무 관리 / 인센티브 / 문서 관리 / 결재선 설정」 6메뉴, /team-manager/scheduler 직접 진입 → 404.html(권한 필터의 「대시보드 우회」가 아니라 라우트 자체 제거). [[HBTM250_스케줄러 Embed]] 화면 소멸, [[HBNS000_간호 스케줄러 (앱 개요)]] 문서군 재배치는 콸 결정 대기

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탭)아래 출퇴근현황 화면 표랜딩=출퇴근현황
03/signup 주소-• 이 앱엔 가입 화면이 없어 /signup 진입 시 로그인(/signin)으로 주소 교체
 - CASE01 [로그인 안 됨]: 로그인 화면
 - CASE02 [이미 로그인]: 로그인 → 첫 화면으로 다시 이동
router.ts갱신 (코드 반영: d2192b69, #1011) · 이전 빈 화면 → 404 → 로그인 · TBU: 라이브 실사 이월
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 리다이렉트(추정)
세션 종료
65좌측 LNB (10/13 개편)Nav• (10/13, #1213 — 프로덕션 배포) 상단 가로 탭·헤더를 admin과 같은 좌측 LNB + 공용 페이지 헤더로 교체 — 10/14 실측 메뉴: 「대시보드 / 연차/휴가 / 근무 관리 / 인센티브 / 문서 관리 / 결재선 설정 / 스케쥴러(펼침형)」 + Toggle sidebar
• 공용 헤더: h1 페이지 제목 · 새로고침 · 전체 팀 콤보(팀별 인원수, 구 20 팀 선택 승계) · 불편·기능 신고 · 알림 · 아바타
• 반응형 3단: 모바일(<768) 드로어 · 태블릿 레일 · PC 펼침 — admin 규격 그대로
• 메뉴 필터: 승인 권한·스케줄러 권한·관리하는 팀으로 걸러 그림 — 권한 밖 탭 URL 직접 진입 시 서버 403 전에 대시보드로 리다이렉트, 문서 관리는 관리하는 팀 없으면 숨김
admin LNB 규격 · [[HBTM200_대시보드]]신설 (#1213) · 라이브 실측 2026-10-14 · 아래 60~ㄴ67은 구 구조 기록
60상단 탭 (구 구조 — 10/13 폐기)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 공통)