A-14 Zone Detail & School Association
- P1新增 +1移除 −0
第一版式樣草案 · Markdown 來源:04-App畫面-管理員.mdGitHub 版本尚未推送;目前以本機手冊為準
取圖紀錄: QL APP,2026-10-18,版本
2410774734466577464;節點 947:4712、947:4711 。學生 2x/Web 1x。圖片是目前設計稿,文字為 APlus 首版目標規格。 圖片範圍: 本節包含獨立浮層或選定的元件變體,並非完整底頁。以對應節點確認角色及狀態,尚待設計驗收。
學校關聯與異動中心
🎨 Figma: node-912-4267 (A-13/A-14 共用) 🔗
⚠️ Figma 待同步: 現有截圖仍直接顯示 Delete 垃圾桶;目標設計改為 [⋯] → Disable/Re-enable,並先執行依賴檢查。回收站不是本期入口。
🎯 功能定位
使用者: Admin(僅管轄 Zone 唯讀)/Super Admin(全域管理)
- Admin 唯讀: 可查看管轄 Zone 的學校關聯、狀態與授權範圍內 Audit Log,不顯示任何結構異動控制項。
- Super Admin 動態關聯: 負責調整學校歸屬與 Active/Disabled 狀態。回收站生命週期屬後續候選。
- 不可逆屬性: 頂部 Zone 資訊區為 Static (靜態顯示)。
- 稽核重點: 底部詳細記錄該區域內所有學校的「遷入、遷出、遷移」日誌。
Admin 只能打開其管轄 Zone;跨 Zone URL 必須回應無權限。所有寫入操作及其 API 僅限 Super Admin。
🧱 畫面結構
| 區域 | 說明 |
|---|---|
| Header | < Back, Zone Detail: [文府總校(示例;行政層級待確認)] (ID: Z-01), [👤] |
| Zone General Settings | Zone Name (Fixed), Zone Status (Active/Disabled), Created Date |
| Associated Schools | School ID, School Name, Joined Date, Students, Actions [🚀 Move] [⋯] |
| Audit Logs | Time, Admin ID, Action Description |
📦 區塊說明
| # | 區塊 | 元件 | 行為/交互 | 備註 |
|---|---|---|---|---|
| 1 | Zone Info | Static Display | 顯示 Zone Name, ID, Created Date | 不可編輯 |
| 2 | Status Toggle | Radio Buttons/Read-only Status | Super Admin 可切換 Active/Disabled;Admin 只看狀態 | 停用會撤銷關聯管理員權限 |
| 3 | [+ Batch Add Schools] | Button | Super Admin 批次添加學校;Admin 隱藏 | 彈窗選擇 |
| 4 | School Table | Data Table | 顯示已關聯學校列表 | Joined Date, Students Count |
| 5 | [🚀 Move] | Button | Super Admin 將學校遷移至其他 Zone;Admin 隱藏 | 彈窗選擇目標 Zone |
| 6 | [⋯] School Actions | Menu | Super Admin 顯示 Disable/Re-enable;Admin 隱藏 | 不直接顯示垃圾桶;停用前需完成依賴檢查 |
| 7 | Audit Logs | Timestamped List | 顯示所有操作記錄 | 精確格式:Time/Admin_ID/Action |
⚙️ 核心邏輯
學校遷移動作 (School Move Logic)
當管理員在 A-14 對學校點擊 [🚀 Move] 時:
- 彈窗選項:僅列出除了當前 Zone 以外的所有其他區域。
- 確定後行為:系統更新 schools 表中的 zone_id 欄位。自動觸發一筆 System Log。
系統稽核日誌 (Strict Logging)
所有操作必須精確記錄:
- 切換狀態:Time | Admin_ID | Action: Disabled Zone Z-01 / Re-enabled Zone Z-01
- 遷移學校:Time | Admin_ID | Action: Moved SCH-101 from Z-01 to Z-03
- 學校狀態:Time | Admin_ID | Action: Disabled SCH-105 / Re-enabled SCH-105
School/Zone 停用守衛(本期)
- School: 必須先檢查不存在 Active Class、Active User、未完成 Challenge 或待處理 Export,才能停用;否則 Disable 禁用並列出阻擋項目。已完成 Challenge/Result 與歷史 Snapshot 不阻擋,只轉為
Archived scope唯讀引用。停用後仍留在 A-14 原列表,可篩選 Disabled 後重新啟用。 - Zone: 必須先停用或遷移其 Active School,且不存在 Active Class、Active User、未完成 Challenge 或待處理 Export,才能停用。重新啟用 Zone 不會自動啟用其 School、Class 或 User。
- 重新啟用: 原列表篩選 Disabled 後執行 Re-enable;若上級 Zone 仍為 Disabled,School 不得啟用,須先啟用或改選有效 Zone。
- 後續候選: Move to Recycle Bin、30 天保留、到期清理與父子 Tombstone 僅見 A-15,不得做成當期按鈕,也不安排自動清理。
- 點擊安全: [⋯] 只打開動作選單;Disable/Re-enable 另開確認 Modal,不得由單次圖標點擊直接執行。
🔎 邏輯自我檢查
- Admin 僅能讀取管轄 Zone;沒有 Zone Scope 時顯示無授權範圍空狀態,跨 Zone 請求回應無權限。
- 所有操作必須有 Audit Log 記錄。
- A-14 現有 Figma 截圖中的 Delete 欄與垃圾桶仍是舊設計,需改為 [⋯] 並補上 Disabled/Blocked/Confirm 狀態;不要新增回收站入口。
🔄 User Migration (用戶遷移) 🆕
🎯 功能定位
使用者: Admin / Super Admin
本畫面中的 Move To 功能提供批量修改學生 School 或 Zone 歸屬。
入口與權限邊界: 這是 User Management 的學生遷移功能,Admin 由 A-10 用戶批次操作進入並限其 Zone。A-14 為 Admin 唯讀;在 A-14 顯示的 Move To 入口僅限 Super Admin。學生遷移與上方「整個 School 遷移到另一 Zone」是不同操作,不能共用授權判斷。
🧱 畫面結構
| 區域 | 說明 |
|---|---|
| 觸發按鈕 | A-10 用戶批次 Move To;A-14 的入口僅 Super Admin 顯示 |
| 遷移 Modal | 選擇目標用戶 → 選擇新 School/Zone → 預覽 → 確認 |
| 結果面板 | 顯示成功/失敗筆數 |
📦 區塊說明
| # | 區塊 | 元件 | 行為/交互 | 備註 |
|---|---|---|---|---|
| 1 | 選擇用戶 | Checkbox (Batch) | 從列表勾選目標學生 | 支援全選 |
| 2 | 目標 School | Dropdown | 選擇遷入的目標學校 | 根據 Zone 聯動 |
| 3 | 目標 Zone | Dropdown | 選擇遷入的目標校區 | 變更後聯動 School |
| 4 | 預覽確認 | Summary Table | 顯示即將變更的用戶清單 | 確認前可移除 |
| 5 | 執行遷移 | Button | 提交批量更新 | Audit Log 記錄 |
遷移規則
| 規則 | 說明 |
|---|---|
| 班級重新分配 | 遷移後學生自動從原班級移除 |
| 數據保留 | 所有學習數據完整保留 |
| 老師通知 | 原老師和新老師在 T-03 收到系統通知 |
| 權限限制 | Admin 僅能遷移自己 Zone 內;Super Admin 可跨 Zone |
