本卡屬 FR-163(母卡 CM-3083),批 3,與 FR-163.3 平行(不同檔)。決策者 2026-10-25 實測:點「證據視圖」會頓一下才換畫面,問「可以有讀取畫面嗎」。首腦查過:頓的原因是同步攤平+一次把全部列畫進 DOM,單加 spinner 沒用(主執行緒被佔住,spinner 根本畫不出來),要先讓切換當下就能畫、攤平延後、表格不一次畫全部。只改 FE repo。

問題是什麼(白話)

按下「證據視圖」那一瞬間,Vue 在同一個畫格裡做完三件事才畫面:①把整棵 control-tree(ISO 專案 93 個控制項 × 評估目標 × 任務 × 證據)攤平成一列一份證據並去重;②算每個群組/控制項/評估目標的份數;③把範圍內全部列一次畫成 DOM(表格沒有虛擬捲動、沒有分頁)。這三步做完之前瀏覽器畫不了任何東西,使用者看到的就是「頓一下」。

首腦核對(合回後 feature/FR-139 HEAD a68ae07f):

在哪裡

~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/components/grc/evidence-view/RoundEvidenceView.vue:24,96      攤平掛點、讀取狀態條件
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/components/grc/evidence-view/useEvidenceFlatten.js:82-88    同步 computed
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/components/grc/evidence-view/EvidenceTable.vue:53-55        DataTable 無虛擬捲動

怎麼修

① 攤平延後、切換當下先畫殼(RoundEvidenceView.vue+useEvidenceFlatten.js):

② 表格虛擬捲動(EvidenceTable.vue):

先查再寫:FE 既有 virtualScrollerOptions 用法 grep -rn "virtualScrollerOptions" src/ 照抄一處的寫法與 CSS(虛擬捲動需要父容器有明確高度,evidence-pane 的 scrollHeight="flex" 是否夠,實測)。

要寫測試