一句話:本卡屬 FR-103(母卡 CM-1829),第 6 棒:CM-1833 的 FE 側因「views/workflow/ 不是孤兒」而整批停下,決策者 2026-09-16 裁走乙案——只退役三條確定無人引用的路由,/workflow/workflow-setup 那條留著(歸第 7 棒丙案)。

這一棒在做什麼(白話)

前一棒(CM-1833)把資料庫裡 12 個關閉的舊選單清乾淨了,但前端那半停下來沒做——因為它查出「舊版流程編輯器」其實還有五支活頁面會用程式打開它,照原計畫刪會把那些頁面的按鈕弄壞。

決策者裁示:先退掉確定安全的三條,剩下那條牽涉新舊兩代編輯器的整併,另外處理。

前一棒查出什麼(為什麼不能全刪)

首腦開 CM-1833 時寫的前提「src/views/workflow/ 是孤兒,唯一入口是 id=22/23 兩個停用選單」——這個前提是錯的。

首腦當初只查了「誰 import 這些檔案」(結果是 0),但實際入口是執行期跳轉。五支活頁面會直接開舊版 BPMN 編輯器:

TaskSetupView.vue:524            window.open('/workflow/workflow-setup?...')
ProjectPlanningView.vue:1930     同上
ModuleFrameItems.vue:103         router.push('/workflow/workflow-setup')
ModuleFrameTemplateEditView.vue:104  window.open('/workflow/workflow-setup?id=...')
ModuleFrameDetail.vue:150        router.push('/workflow/workflow-setup')

這五支頁面的選單在 DB 裡都是 enable=1(project-list/module-frame,首腦已實查)。

🔴 關鍵原理:前端路由守衛只擋 requiresAdmin,沒有依 ui_routes 擋直入。所以「選單 enable=0」只是不顯示在側邊欄,完全不影響程式用 window.open 打開它。

本棒範圍:三條路由(首腦已逐條驗證零引用)

路由                                    對應頁面檔                      路由外引用
──────────────────────────────────────────────────────────────────────────────
/bulletin/user-guide                   views/bulletins/UserGuide.vue         0
/workflow/workflow-view                views/workflow/WorkflowStepViewer.vue 0
/dashboard/customer-dashboard-editor   views/dashboard/customer-dashboard/   0
                                       DashboardEditor.vue

連帶可刪的檔案:views/dashboard/demo-component/ 三支(TodoCard/BarStatsCard/PeiStatsCard)——首腦實查確認只被 DashboardEditor.vue 使用,刪了主檔它們就成孤兒。

🔴 不要做什麼

不要刪 /workflow/workflow-setup 那條路由,也不要刪 views/workflow/WorkflowSetupEditor.vue(55KB)與它依賴的 BPMN 模組——那五支活頁面在用。歸第 7 棒。

不要刪 src/views/bulletins/ 整包——只刪 UserGuide.vue 一支。另外四支(BulletinForm/BulletinList/BulletinManage/BulletinView)是活的公告功能,router 都有引用。

⚠️ 刪 WorkflowStepViewer.vue 時注意一個引用:WorkflowSetupEditor.vue:113 的註解提到它——「processDefinitionId 改為非必填,因為 WorkflowStepViewer 的唯讀檢視本就不傳此 prop」。那只是註解不是程式依賴,view 與 processDefinitionId 兩個 prop 都有 default 值,刪掉 caller 不影響 Editor 本身。但該註解會變成指向不存在檔案的過期說明,請一併更新(改成說明為何非必填,不提已刪的 caller)。

不要動 DB。前一棒已清完 12 列選單與 16 個權限點。⚠️ workflow.* 四個權限點前一棒刻意留著(因 FE 停下),本棒也不要動——它們歸第 7 棒。

怎麼做

步驟 1:刪三個頁面檔 + demo-component/ 三支,共 6 檔。