Skip to content

부과 배분 행렬 셀 드릴다운 — FE 메인테이너

흐름

matrix 셀(<button>) 클릭 → openCell(charge, group)openDerivation(allocationCellDerivation(allocationBreakdown(charge, axis, code), { axis, entityLabel }))selectedDerivation 적재 → command="show-modal" commandfor="sheet-derivation-art"SheetDerivationArt 스택.

파일

  • 데이터: src/composables/useAllocations.jsallocateDetailed/allocationBreakdown.
  • 모델: src/composables/useDerivation.jsallocationCellDerivation(+basisLabelOf).
  • 렌더: src/components/billing/_core/console/overlays/SheetDerivationArt.vuekind:'allocation' 분기.
  • 셀/마운트: src/components/service-charge/actual/console/charging/allocation-{unit,member,contract}/blocks/DynamicTableOrg.vue(셀 클릭) + 동 폴더 MainOrg.vue(시트 마운트).

모델 스키마 (kind:'allocation')

{ title, subtitle, chargeName, basisLabel, lineHeader, principal, totalWeight, lines[], cellTotal, hasResidual, zeroWeight }

  • lineHeader: 축별 1열 제목(unit→점유자 / member→보유 유닛 / contract→유닛).
  • lines[]: { label, subLabel, basisQuantity, occupancyDays, monthDays, dayRatio, weight, share, amount, isResidual }.
  • 라벨: 유닛축=점유자(멤버명) / 멤버축=유닛명 / 계약축=유닛명.

확장 포인트

  • 새 축 추가: allocationBreakdown의 columns/keyOf 분기 + DynamicTableOrg 1개.
  • chargeBasis 단위 라벨: useDerivation.basisLabelOf.
  • 각주 조건: hasResidual(다중 라인 + 잔차 라인 존재), zeroWeight(가중치 0).

테스트

  • src/composables/__tests__/useAllocations.spec.js — 도출 합 불변식·3축 합.
  • src/composables/__tests__/useDerivation.spec.js — 모델 shape·각주 조건.