다크모드
장기수선계획 프론트엔드 핸드오프
1. 라우트와 구성
라우트는 src/router/longTermRepairPlanningRoutes.js에 있고 모두 long-term-repair-planning entitlement guard를 받는다.
/long-term-repair-planning/overview/long-term-repair-planning/schedule/long-term-repair-planning/funding/long-term-repair-planning/versions
컴포넌트 트리:
text
views/long-term-repair-planning/IndexView.vue
└─ components/long-term-repair-planning/LongTermRepairPlanningMainOrg.vue
├─ AppHeaderOrg
└─ AppAsideOrg페이지는 EDS의 card, table, tabs, button, badge, zone 패턴만 사용한다. 로컬 style/override는 없다. 관리코드는 목록/기본정보 표에 두지 않고 페이지 우측 상단 subtitle-sm로만 노출한다. 불변 버전 확정은 변경 요약과 경고를 보여 주는 EDS confirmation dialog의 명시 확인 뒤에만 실행한다. 확정 버튼에는 선언적 command="close"를 두지 않는다. await confirmCurrent() 성공 후에만 해당 dialog를 닫고, 실패하면 composable 오류를 표시하면서 dialog를 열어 둔다.
2. 데이터 흐름
longTermRepairPlanningRepo.js: snake_case RPC payload 정규화, Supabase adapter, 독립 mock adapter.useLongTermRepairPlanning.js: 활성 Company·Office scope, 목록 로딩, 확정/수기 입력 명령, 계획금액·잔액·필요 재원·균등 월 적립 계산.longTermRepairReviewWindow.js: 서버schedule을 현재연도부터 최대 3개 연도의 검토 projection으로 변환하고 빈 연도도 0원 행으로 보존한다. 범위 길이는 옵션이며 법정 주기를 의미하지 않는다.- Supabase 설정이 없으면 mock adapter를 사용하여 프로토타입 화면이 동작한다.
- 특정 관리비·시설·회계 composable을 import하지 않는다.
3. 상품·메뉴·도움말 등록
productCatalog.js: 개발 검수 노출은implementationStage='prototype',visibility='internal'이다. 서버product_catalog.active=false와 별도이므로 아직 판매·프로비저닝할 수 없다.workspaceNav.js는 상품 카탈로그에서 메뉴를 자동 파생한다.moduleRouteAccess.js가 URL 직접 접근을 차단한다.pageHelpCatalog.js와assistantFeatureCatalog.js가 도움말/AI 딥링크를 제공한다.ko.json,en.json에 상품·탭·버전 상태 번역 키를 등록했다.
4. 시설관리 충당금 화면의 선택 연결
useRepairReserve.js는 더 이상 useAllocations를 직접 import하지 않는다. 대신 플랫폼 경계의 repairReserveProjection.js를 소비한다.
- provider 미등록: 수기 fallback으로 독립 동작
- provider 등록:
{ openingBalance, currentAccrual, works, source }projection 소비 setRepairReserveProjectionProvider()에는 함수만 전달한다. 원본 product composable이나 reactive store를 직접 넘기지 않는다.- provider는 조회 projection일 뿐이며 원본 상품 mutation 권한을 부여하지 않는다.
5. 후속 확장
- 항목/시나리오 전체 편집은 단일 draft sheet로 구현하고 확정본은 읽기 전용으로 둔다.
- 확정본에서 새 버전 만들기, 구간 중복 검증, 실제 chart, projection 동기화 상태/실패 복구 UI가 남아 있다.
- 새 UI는 Token → Component → Pattern → Page 순서로 leysys-design SSOT에서 먼저 확정한다.
6. 항목·일정의 검토 우선구간
useLongTermRepairPlanning().reviewWindow를 소비한다. 페이지가 연도별 일정 계산을 재구현하지 않는다.- 상단 카드에 시작·종료연도, 예정 공사 건수, 공사가 있는 연도 수, 예정금액과 1년 단위 행을 표시한다.
- 공사가 없는 연도도
예정 없음으로 보여 일정 데이터가 빠진 것과 실제 0건을 구분한다. - 안내문은 “자료 검토 보조”로 표현하고 법정 주기·공사 의무 판단이 아님을 명시한다. 오래된 참고자료의 문구를 규정 준수 기능처럼 노출하지 않는다.
- 기존 SSOT
card,alert,table,badge,zone만 조합하며 로컬 스타일·override는 없다.