本卡屬 FR-162(母卡見「母卡」欄),批 4,等 2a。顧問維護對照的畫面。只改 FE repo。決策者最早看得到的畫面之一。
側選單「合規稽核」群組多一項「框架對照」。進去先選來源框架與目標框架(例如 CMMC 2.13 Level 2 ↔ ISO/IEC 27001:2022;NIST 800-53 這種參考用的也在清單、標「參考用」),主表一列一條控制項層對應,點展開看底下評估目標層的配對。顧問可以改一條的關係與信心度、停用、新增一條;工具列可以匯入 Excel 或 OSCAL JSON、匯出、下載空白範本、整批重建(要二次確認)。每條看得出是官方/顧問確認/AI 建議,改過的可以看歷史。
~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-162-2610-cross-framework-control-mapping/design.md(決策表 D1~D11、詳細設計含 DDL、拆分表);盤點與官方資料分析:~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/analysis/2026-10-24-cross-framework-control-mapping.md。本卡已帶足開工所需細節,不必先讀完。GET /oscal/control-mappings -> [{id, title, source:{fv_id, framework_name, version, is_reference}, target:{...}, status, entry_count}]
GET /oscal/control-mappings/:id/matrix?origin=&status=&q=&page=&size=
-> rows:[{entry_id, source:{code, part_id|null, title|null}, target:{...}, relationship, confidence, origin, status,
overrides_entry_id, objectives:[{同結構}]}]
POST /oscal/control-mappings/:id/entries body {source_control_code, source_part_id?, target_control_code, target_part_id?, relationship, confidence?, remarks?}
PUT /oscal/control-mappings/:id/entries/:eid/override body {relationship, confidence?, remarks?}
POST /oscal/control-mappings/:id/entries/:eid/disable body {remarks?}
GET /oscal/control-mappings/:id/entries/:eid/history
GET /oscal/control-mappings/:id/export?fmt=xlsx|oscal&effective_only=true&with_origin=false -> 檔案
POST /oscal/control-mappings/:id/import multipart file, fmt -> {added, updated, skipped, errors[]}
POST /oscal/control-mappings/:id/rebuild multipart file, fmt, confirm=true
GET /oscal/control-mappings/template -> xlsx
能力點:oscal.control-mapping.read(看)/oscal.control-mapping.manage(改、匯入、重建)
error code:GRC_CONTROL_MAPPING_IMPORT_INVALID / NOT_FOUND / PAIR_EXISTS / REBUILD_NOT_CONFIRMED(實際碼見 2a 回寫)
src/config/router/index.js 加 name: 'control-mapping'、path: '/control-mapping',掛在 module-frame 同一個 layout 下(照 pre-engagement 那段);name 必須與 BE ui_routes.name 一字不差。src/views/control-mapping/ControlMappingView.vue(頂部兩個 Dropdown 選框架版本=選 mapping;工具列;主表)+ 子元件 ControlMappingMatrixTable.vue(DataTable 可展開列,objective 子列縮排一層)、ControlMappingEntryDialog.vue(新增/覆寫共用)、ControlMappingImportDialog.vue(照 ModuleFrameTemplateImportDialog.vue 的上傳+結果形狀;重建模式多一個確認勾)、ControlMappingHistoryDialog.vue。每檔 < 800 行。api.js 加 CONTROL_MAPPING* 常數;service/ControlMappingService.js;capabilities.js 加兩顆;i18n lang.control_mapping.* 中英;error-code.json 四碼中英。_obj.N 配對。grep -rn "border-left" src/views/control-mapping 空。