다크모드
FE 메인테이너 — Company·Office 생성
화면과 데이터 흐름
- 목록:
/headquarters/console/office/general - 생성 시트:
SheetCreateOfficeArt.vue - 서버 seam:
companyOfficeRepo.js,propertyMasterRepo.js - 즉시 문맥 반영:
useAccountContext.addOfficeRecord()
생성 시트는 활성 Company subscription entitlement를 기본 선택한다. 사용자는 필요 없는 상품만 해제한다. Office 관리자는 자유 텍스트 필드가 아니라 현재 인증 Company 관리자를 서버가 office_admin으로 자동 등록한다. 프로퍼티 에디션은 propertyMasterRepo.publicDataHealth()로 Leyve 중앙 연결 상태를 확인하고, 이름·주소를 searchPublicProperties()에 보내 후보를 조회한다. 조회 중에는 버튼을 비활성화하고 진행 문구를 유지한다. 선택 시 주소와 호실 수를 후보 값으로 채우고 snapshot을 생성 요청에 포함한다.
create_company_office_with_property RPC 성공 후 반환 Office를 account context에 추가하고 생성 Office 범위로 전환한다. Office·권한·상품·공공데이터 저장이 한 번에 실패/성공하므로 부분 생성 재시도로 인한 중복 Office를 만들지 않는다. 실패 시 시트를 유지하고 서버 오류를 필드 영역 아래에 표시한다.
Office 선택 표면
AccountScopeSwitcherMol.vue와 OfficeSelectPag.vue는 정의되지 않은 list-item 조합을 사용하지 않는다. radio radio-card radio-md radio-primary + radio-content 정본을 사용하고, 컨테이너에 role="radiogroup"·명시적 라벨, 각 그룹 input에 공통 name을 둔다.
회귀 검증
- 새로고침·재로그인 뒤 Office가 유지된다.
- 계약하지 않은 module key는 서버가 거부한다.
- 동일 Company 내 Office 코드 중복을 안내한다.
- 생성 중에는 중복 제출이 비활성화된다.
- 프로퍼티 에디션에서 공공데이터 후보 선택 후 주소·호실 수·snapshot이 같은 RPC로 전달된다.
- 공공데이터 미설정·조회 실패 시 생성 자체는 직접 입력값으로 계속할 수 있다.
- 서버 반환
short_name·주소·유닛 수를 재로그인 시 복원한다.