Skip to content
全部階段依各階段有效範圍顯示
全階段總覽

本頁範圍:P1 起

A-23 Bulk Import Specification ​

管理員端班級管理設計規格P1 起
P1 版本
畫面用途

使用者: Admin / Super Admin

原型與規格有待確認事項,請一併閱讀正文中的差異說明。

閱讀完整規格 ↓
變化時間線
  1. P1新增 +1移除 −0

第一版式樣草案 · Markdown 來源:04-App畫面-管理員.mdGitHub 版本尚未推送;目前以本機手冊為準

取圖紀錄: QL APP,2026-10-18,版本 2410774734466577464;節點 746:1449 。學生 2x/Web 1x。圖片是目前設計稿,文字為 APlus 首版目標規格。 圖片範圍: 本節包含獨立浮層或選定的元件變體,並非完整底頁。以對應節點確認角色及狀態,尚待設計驗收。

班級批量導入規格

🎨 Figma: node-722-7676 (A-20/A-21/A-23 共用) 🔗

🎯 功能定位 ​

使用者: Admin / Super Admin

A-23 提供管理員大批量建立「班級」並分配老師的自動化方案。透過上傳預定義的 CSV 模板,系統能自動校驗行政歸屬(校區與學校)、教學維度(Category 與 Level)、老師範圍與初始狀態,並在 A-20 列表中心批量生成班級條目。

🧱 畫面結構(以彈窗 Modal 形式呈現) ​

區域說明
HeaderImport Classes, [X] 關閉按鈕
Step 1Download Template: [📥 Download Class CSV Template]
Step 2Upload File: Drag & Drop 區域 或 [Browse Files]
Step 3Validation Preview: 自動校驗結果, Error Log

📦 區塊說明 ​

區塊元件目的行為狀態備註
TemplateDownload Button提供標準格式點擊下載 Class_Import_Template_v2.csvNormal包含 Category、Level、Status 的有效值與老師欄位說明
UploadDrag & Drop接收 CSV 檔案拖拽上傳,限制 2MBActive僅接受 .csv 檔案
ValidationResult Box數據合規性預檢系統自動核對 Zone/School/ID、老師與 StatusPre-check錯誤行需修正後方可全量導入
Error LogList View定位錯誤顯示具體行號與邏輯錯誤原因Warning例如:校區與學校不匹配
ActionStart Import執行寫入零 Critical Error 時,點擊將整份已驗證檔案寫入 A-20Disabled任一行有 Critical Error 即禁用;不支援跳過錯誤行

📥 CSV 模板規格 (Class_Import_Template_v2.csv) ​

範例中的 Zone、School、Class 與 Email 均為示意資料。填表前須刪除或替換範例列,並從 A-21 的有效選項取得實際 category_id 與 level_code;此檔可供填寫,不是能直接匯入任意環境的成功 Fixture。

📋 模板表頭與範例 ​

class_id,class_name,zone_name,school_name,category_id,level_code,teacher_emails,status

📑 欄位定義 ​

欄位名稱必填說明範例值
class_id是系統唯一標識,不可重複C2026-A01
class_name是班級顯示名稱English Core Class A
zone_name是所屬校區 (手動輸入)文府總校(示例;行政層級待確認)
school_name是所屬學校 (手動輸入)耶加文府校區(示例)
category_id是課程 1 級分類NH
level_code是教學難度 LevelLevel 3
teacher_emails否班級老師 Email;多位使用半形分號 ; 分隔。每位老師必須存在、具 Teacher 角色,並符合 A-21 共用指派資格;Admin 限管轄 Zone,同 School 僅為搜尋偏好teacher1@example.com;teacher2@example.com
status否只接受 Active 或 Inactive;去除前後空白後為空時採用 ActiveActive

🔄 模板相容與欄位邊界 ​

  • 舊版相容: 舊 7 欄模板仍可導入,系統視為未提供 teacher_emails,不阻擋既有客戶資料。
  • 老師關聯: 若 teacher_emails 有值,解析成功後需寫入與 A-21 相同的班級-老師關聯;不得只把 Email 複製到學生資料。
  • 錯誤級別: 老師不存在、角色不是 Teacher、超出 A-21 允許的指派範圍,或 status 不是允許值時,該行為 Critical Error,不得寫入。同 Zone 跨 School 不得單獨視為錯誤。
  • Status 行為: Active/Inactive 的可見性、派送、成員與歷史規則完全依 A-21「Class Status 共用語義」,Bulk Import 不得另定義一套狀態。
  • 生日欄位: A-23 是班級導入,沒有也不需要生日欄位。生日只出現在 A-12/A-12-A 用戶建立流程,固定輸入格式為 YYYY-MM-DD。

🔁 交互流程圖 ​

流程圖

正在載入流程圖…

⚙️ 狀態管理 ​

狀態觸發條件畫面表現
權限拒絕Admin 上傳非管轄 Zone 的班級或老師校驗階段報錯 Permission Denied;與 A-21 同一判斷
數據完整性錯誤class_id 已存在Error Log 顯示重複 ID
層級不匹配school_name 不歸屬 zone_nameError Log 顯示關聯錯誤
老師不合法teacher_emails 含不存在、非 Teacher 或跨範圍帳號該行標記 Critical Error,列出無效 Email
Status 不合法值不是 Active/Inactive該行標記 Critical Error;空值則顯示 Defaulted to Active
異步處理導入數量 > 100 筆前端顯示進度條,防止 UI 鎖死
寫入失敗驗證通過後任一 Class 或老師關聯寫入失敗整份交易回滾,不留下部分班級或孤立關聯;顯示 Import ID 與失敗原因,可修正後重試

🔎 邏輯自我檢查 ​

  1. 層級對應關係: 後端校驗必須確保 school_name 確實歸屬於 zone_name。
  2. 與 A-12 的連動: A-12 用戶導入時使用的 class_ids 必須在此頁面預先建立。
  3. 重複導入處理: 若管理員重複上傳同一個檔案,系統應識別 class_id 已存在並阻止重複寫入。
  4. 字符校驗: class_name 應支援特殊字符(如橫槓、空格),但長度需限制在 50 字元內。
  5. 老師權限一致: A-21 手動設定與 A-23 批量設定必須操作同一份班級-老師關聯,教師端 T-01 的可見班級結果應一致。
  6. 模板可理解性: 下載檔需附一行可刪除的範例資料與 Data Dictionary,明確寫出 teacher_emails 分隔符、Status 枚舉及 A-23 不含生日。
  7. 交易與重試: A-23 採整份 Atomic Import;任何 Critical Error 或寫入失敗都不得部分成功。每次嘗試寫入 Import Audit(Import ID、檔案 Checksum、操作者、總行數、結果與錯誤摘要);相同 Checksum 的成功檔案再次上傳顯示 Already Imported,相同 class_id 但內容不同仍為 Critical Error。

提交版本內容版本 c096dd1f提交 7e9453e規格文件,功能實現狀態另行確認