本卡屬 FR-164(母卡見「母卡」欄),批 1。把 FR-163 證據視圖那棵三層左樹加一個模式,讓控制項視圖也能用同一棵;不新刻樹。只改 1 支檔:
src/components/grc/evidence-view/EvidenceNavTree.vue。
專案總覽頁有兩個視圖:證據視圖(FR-163 剛做的)左邊有一棵「群組→控制項→評估目標」三層樹;控制項視圖(舊的)左邊是另一棵只到控制項、寫死在總覽頁裡的樹。這張卡讓證據視圖那棵樹多一個「控制項視圖模式」:列尾不顯示證據份數、改顯示進度;列中多三種徽章(⚡有待執行任務、✓已審閱、✎現況未填);工具列多「我的待辦」開關;底部多一行圖例。證據視圖模式的外觀與行為一個像素都不能變。
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/components/grc/evidence-view/EvidenceNavTree.vue 唯一要改的檔(213 行)
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/views/project/ProjectAuditorOverview.vue:1409-1533 舊左樹(只讀參考:徽章、進度條、我的待辦開關的現況寫法;本卡不動它,FR-164.3 才刪)
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/views/project/ProjectAuditorOverview.vue:850-895 visibleControlsForGroup/visibleAosForCtrl/jobIsExecutable/aoHasExecutableJob/ctrlHasExecutableJob/groupHasExecutableJob(只讀參考)
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/views/project/ProjectAuditorOverview.vue:706-712 ctrlProgress/groupProgress(只讀參考)
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/views/project/ProjectAuditorOverview.vue:302-318 sspGroupStats/ctrlHasSspDesc(只讀參考)
mode: { type: String, default: 'evidence' }('evidence' | 'control')。現有的 groupCounts/controlCounts/aoCounts 只在 evidence 模式用。groupProgress: Object(groupId→%)、controlProgress: Object(controlId→%)、aoProgress: Object(aoId→{done,total})、executable: Object({groups:Set, controls:Set, aos:Set} 有待執行任務的 id)、reviewed: Object({controls:Set, aos:Set})、sspMissing: Set(規劃期現況未填的 controlId;非規劃期傳空 Set)、myTasksOnly: Boolean(v-model)。由誰算:父層算好傳進來(總覽頁已有 ctrlProgress/groupProgress/*HasExecutableJob/controlReviewMap/aoReviewMap/ctrlHasSspDesc,樹只負責畫)。.nav-count 那格)control 模式:群組/控制項顯示小進度條+%(照舊左樹 .nav-bar 56px+GrcProgressBar size="sm");評估目標顯示 done/total。evidence 模式維持「N 份」。executable-dot,照舊左樹 :1489-1493 的脈動圓點(樣式在 <style> .executable-dot 2097-2110),三層都有,tooltip lang.auditor_overview.tooltip_has_executable_task)、✎(pi pi-file-edit text-yellow-500,控制項層且 sspMissing.has(id),tooltip lang.auditor_overview.impl_desc_empty)、✓(pi pi-check-circle text-green-400,控制項與評估目標層且 reviewed)。InputSwitch(照舊左樹 :1445-1452,閃電 icon 開了變黃),v-model 綁 myTasksOnly。開了之後樹只留有待執行任務的群組/控制項/評估目標(用 executable 三個 Set 過濾,父層不用再傳一份過濾後的資料)。text-xs text-color-secondary,上方 1px 分隔線。i18n 新鍵 lang.auditor_overview.nav_legend_executable/nav_legend_reviewed/nav_legend_ssp_missing。selectControl 也把 controlId 加進 expandedControls)。兩個模式都套用——證據視圖這樣也比較順,但若決策者驗證據視圖時覺得不要,可用 prop 關掉,先回寫註明。defineProps 用物件寫法,新 prop 全部給預設值,證據視圖呼叫端(RoundEvidenceView.vue:102-105)一行都不用改就要能跑。docs/features/FR-164-control-view-redesign/screenshots/)。*.spec.js 或 Storybook 式測試頁把 mode="control" 掛起來驗:列尾進度、三種徽章、我的待辦過濾、圖例;驗完臨時檔刪掉不 commit(或留成正式 spec 放 evidence-view/__tests__/)。npx vitest run src/components/grc 全綠。