本卡屬 FR-143(母卡 CM-2840),接 CM-2846/2851 的分組展開版,改分段與狀態的分法,並補每頁筆數下拉。與 FR-144.5(CM-2861 稽核計畫清單)同一套規則。BE 與 FE 同一棒做,會改碼。
改善計畫清單現在分四段:待規劃/已送出/覆核中/已結束。但改善計畫一旦送出就鎖定不能改,之後輪次走到哪一站(內稽回規劃重跑、外稽等覆核、覆核輪開出來、整輪結案)對排計畫的 PM 都是同一件事:已經交出去了。四段讓人以為要分別處理,失焦。決策者 2026-10-17 裁:這頁要像待辦清單,只關注要做的事;已交出去的統稱「已完成」。另外 FR-144 首腦轉達決策者要求:三個分組清單頁(稽核計畫、稽核作業、改善計畫)頁尾都要有每頁筆數下拉 [10, 25, 50]、分頁器一律顯示,本頁現在寫死每頁 10 筆、只有超過一頁才顯示分頁器。
首腦核對(2026-10-17):
infra/readmodel/audit/poam_dashboard_query.py:65-76 四個狀態的 CASE:planning=未送出且輪次 remediation 且目前稽核次;其餘三個都是送出後輪次的不同時期。MyPoamsView.vue:272 Paginator v-if="groupCount > PAGE_SIZE"、:rows="PAGE_SIZE",PAGE_SIZE 常數 10(第 18 行)。planning;已完成=原 submitted, reverifying, closed。--color-orange*/--color-green* token。這頁沒有「未指派」(排計畫的就是 PM 本人),所以比稽核計畫頁少一種。狀態欄用「待規劃」不用「待處理」,因為改善計畫頁內左樹燈號、守門文案都叫待規劃,前後對得上。?from= 都不動。狀態欄排序仍照 todo 在前。BE(~/Projects/Billows/Audit-Manager/compliance-manager-be)
infra/readmodel/audit/poam_dashboard_query.py:20 STATUSES 四值 → 改 ("todo", "done")
infra/readmodel/audit/poam_dashboard_query.py:65-76 CASE 四個狀態 → 保留判斷但收成 todo/done(planning→todo,其餘→done)
infra/readmodel/audit/poam_dashboard_query.py:98、110、160 WHERE s.status = :status(三處,改後值域自然變兩個)
infra/readmodel/audit/poam_dashboard_query.py:115-116 status_rank 改 todo 0/done 1
infra/readmodel/audit/poam_dashboard_query.py:164-171 _status_counts → 回 {todo, done}
api/project/serializers/poam_dashboard.py:12 filters.status OneOf(STATUSES)(跟著 STATUSES 變)
api/project/serializers/poam_dashboard.py:42-46 _StatusCountsSchema 四欄 → todo/done
app/readmodel/service/poam_dashboard_service.py:13-18 status 參數直傳,應不用動
FE(~/Projects/Billows/Audit-Manager/compliance-manager-fe)
src/views/project/MyPoamsView.vue:16-18 STATUSES、STATUS_ORDER、PAGE_SIZE
src/views/project/MyPoamsView.vue:26 statusFilter 預設 'planning' → 'todo'
src/views/project/MyPoamsView.vue:94-110 filteredPasses、defaultOrder、countOf、defaultOpen 的 'planning' → 'todo'
src/views/project/MyPoamsView.vue:128、136 dueClass/rowClass 的 'closed' → 'done'
src/views/project/MyPoamsView.vue:146-150 pagerText 用 PAGE_SIZE → 改用當前 rows
src/views/project/MyPoamsView.vue:185-194 分段鈕迭代 STATUSES
src/views/project/MyPoamsView.vue:230-234 狀態膠囊 class mp-st-<status> 與文字
src/views/project/MyPoamsView.vue:270-274 Paginator:拿掉 v-if、加 rowsPerPageOptions、v-model:rows
src/views/project/MyPoamsView.vue:316-319 .mp-st-* 四個樣式 → 兩個(橘/綠 token)
src/composables/useAuditWorkGroups.js:9、70 pageSize 目前收純數字 → 改成 unref(pageSize) 讓 view 傳 ref(向下相容,兩頁共用)
src/config/locales/i18n/{zh-tw,en}/my-poams.json filter_* 四 key → todo/done/all,加 status_todo/status_done
雛形(參考 CM-2861 已改好的稽核計畫版,分段與狀態膠囊長相照它)
BE docs/features/FR-144-2610-my-audit-plans-sidebar-entry/prototype/my-audit-plans-grouped.html
STATUSES 改 ("todo", "done")。CASE 保留原四條判斷邏輯的順序與條件(它們決定 todo 的精確條件),只把輸出收成 'todo'(原 planning 那條)與 'done'(其餘)。status_rank、_status_counts、serializer 的 _StatusCountsSchema 跟著改。先查再寫:VISIBLE/登入者判準(第 59-62 行)不動。傳舊值 "planning" 應回 400(OneOf 自然擋)。STATUSES = ['todo','done']、預設 todo;狀態膠囊文字用 status_todo/status_done(不要沿用 filter_* 當膠囊文字,分段叫「待處理」、膠囊叫「待規劃」,兩個詞不同);顏色改 orange/green token,拿掉 indigo/blue 兩個樣式。PAGE_SIZE 改成 const pageSize = ref(10),傳進 composable;composable 第 70 行改 unref(pageSize)(import unref)。Paginator 拿掉 v-if,加 v-model:rows="pageSize"、:rowsPerPageOptions="[10, 25, 50]",template 加 RowsPerPageDropdown(參考 src/views/system-menu-manage/SystemMenuManage.vue:316 的寫法)。換筆數時 first 歸零。pagerText 的 to 用 pageSize.value。