本卡屬 FR-166(母卡 CM-3109 延伸),決策者 2026-10-28 手測後追加。Repo:compliance-manager-fe。依賴同 arc 的 BE 卡「合併第三方元件的 Agent 手動掃描」(清單端點多回 source_scan_uid、選單搬移)。
白話
主系統「Agent 自主執行紀錄」改名「Agent 掃描執行紀錄」,版面跟 Agent 主控台的執行紀錄分頁一致:操作放最後一欄、期間可選今日與自訂區間、失敗可看原因並複製、工具顯示看得懂的名稱、網路除錯列出該次勾的項目。BE 合併進來的第三方元件列,按「看結果」跳到第三方元件結果頁。
另外第三方元件風險頁「任務發起的掃描」頁籤,失敗的列現在也有「看結果」圖示,點進去沒東西;決策者要改成失敗時只給「看原因」(對話框+複製),不連結果頁。
問題在哪
- src/views/remote-agent/AgentLocalRunsView.vue(174 行):期間只有日期區間;失敗原因只掛在 Tag 的 tooltip(滑過才看得到、不能複製);網路除錯工具欄固定顯示「網路除錯」;報告欄與狀態分開。
- src/views/source-scan/TaskScanList.vue 第 99 行:每列都畫 pi-chart-bar 看結果鈕,不分成敗。
- src/config/locales/i18n/zh-tw/menu.json 第 120/280 行與 en 對應:選單名與描述仍是「Agent 自主執行紀錄」。
怎麼做
- 【reuse】失敗原因對話框+複製:主控台已有 console/components/RunErrorDetail.vue(FE commit cc243c3a)。它只依賴 primevue 與 vue-i18n,直接搬到 src/components/common/RunErrorDetail.vue 給主站與主控台共用(主控台那支改成 import 共用版、刪掉 console 下那份),i18n key 改讀 lang.common.(error_view/error_title/error_copy/error_copied),主控台的 agent_console_runs. 同名 key 一併改指向 common。
- 【reuse】期間下拉「今日/近 N 天/自訂區間」的純邏輯在 console/runs.js periodQuery;搬到 src/utils/periodQuery.js 共用(主控台改 import),主站這頁的 Calendar 只在自訂區間時出現。注意主站清單端點是 started_from/started_to(含)而非主控台的 from/to(半開),在 composable useAgentLocalRuns.js 轉換。
- 【extend】AgentLocalRunsView.vue:欄位順序改成 時間/Agent/種類/工具/目標/執行者/狀態/操作;狀態欄失敗時掛 RunErrorDetail(表格用對話框模式);操作欄:網路除錯與一般掃描照舊「下載」(Agent 離線時文字說明不給鈕)、第三方元件列(有 source_scan_uid)改「看結果」跳 route name source-scan-result;工具名:掃描用檢測工具目錄名(既有 toolLabel),網路除錯列出 summary 內實際勾的項目(欄位路徑以 BE 回的 summary 為準,先打一次 API 看形狀,別猜)。
- 【extend】TaskScanList.vue:status=failed 時不畫看結果鈕,改掛 RunErrorDetail(message 取 data.error);成功與進行中照舊。
- 【i18n】menu.json zh-tw/en 的 agent-local-runs 名稱改「Agent 掃描執行紀錄」/「Agent scan runs」,描述改成一句現況;agent-local-runs.json 的 hint 刪掉(說明文字政策:只留會影響操作的提示)。
- 【不做】主系統觸發掃描;檢測工具管理頁;第三方元件結果頁本身。
改哪些檔
- src/views/remote-agent/AgentLocalRunsView.vue、src/composables/useAgentLocalRuns.js
- src/views/source-scan/TaskScanList.vue
- src/components/common/RunErrorDetail.vue(從 console/components 搬)、src/utils/periodQuery.js(從 console/runs.js 抽)
- console/components/ScanRunPanel.vue、console/views/Runs.vue、console/runs.js(改 import 共用版)