Skip to content

A-12-A User Bulk Import Specification

管理員端用戶與組織設計規格
畫面用途

使用者: Admin (Student/Teacher templates), Super Admin (All templates including Admin)

閱讀完整規格 ↓

內容依原始規格呈現 · 查看 Markdown 來源 ↗需具備倉庫查看權限

用戶批量導入規格

🎨 Figma: node-912-4267 (A-12-A/A-13/A-14 共用) 🔗

🎯 功能定位

使用者: Admin (Student/Teacher templates), Super Admin (All templates including Admin)

A-12-A 為管理員提供大批量帳號生成的解決方案。透過上傳標準化的 CSV 檔案,一次性完成數百名學生或老師的資料錄入。系統將自動校驗數據格式與唯一性,並執行預設安全策略(初始密碼設定與首登強制改密)。

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

區域說明
HeaderNihao Admin Dashboard > User Management > Bulk Import, [🔔], [👤]
Step 1: Download Template[📥 Student Template], [📥 Teacher Template], [📥 Admin Template] 按鈕
Step 2: Upload CSVDrag & Drop 區域 或 [Select File] 按鈕
Step 3: Validation Preview狀態表格:Status, Row, Email, Error Message

📦 區塊說明(表格)

區塊元件目的行為備註
TemplateDownload Buttons提供標準格式點擊下載對應角色的 CSV 模板分為學生版、老師版、管理員版
DropzoneFile Uploader接收用戶檔案拖拽或點擊選擇 CSV 檔案限制大小 5MB,僅限 .csv 格式
ValidationResult Indicator即時反饋數據品質系統自動掃描重複 Email 或格式錯誤若有錯誤,[Start Import] 按鈕禁用
Error LogText Area指出具體錯誤位置列出行號與錯誤原因方便用戶修改後重新上傳
ActionStart Import執行數據寫入點擊將校驗通過的數據存入數據庫成功後彈出導入報告頁面

📥 CSV 文件格式規格 (CSV Specification)

1. Student 學生批量導入模板 (A-12-A-T1)

此模板新增了第二位家長的聯繫資訊,建議將 Parent 1 設定為主要聯繫人,Parent 2 為備用聯繫人。

📥 CSV 表頭 (CSV Header)

role,name,display_name,gender,birthday,email,parent1_name,parent1_email,parent1_phone,parent2_name,parent2_email,parent2_phone,class_ids,teacher_emails,formal_school_name,formal_grade,formal_class,academy_school,academy_zone,enrollment_session

📋 欄位詳細定義

區塊欄位 Header必填範例
基本資訊roleStudent
name張小明
display_nameDavid
genderMale
birthday2016-08-15
emailxiaoming@nh.com
家長 1parent1_name張大華
parent1_emaildh.zhang@mail.com
parent1_phone0912345678
家長 2parent2_name李美玲
parent2_emailml.lee@mail.com
parent2_phone0987654321
校外學籍formal_school_name第一國小
formal_grade2
formal_classA
補習校配置class_idsC101;C102
teacher_emailst1@nh.com;t2@nh.com
academy_school台北一小
academy_zone台北校區
enrollment_session3-1

2. Teacher 老師批量導入模板 (A-12-A-T2)

適用於新進教師入職或跨校區師資調度。

📥 模板表頭 (CSV Header)

role,name,gender,birthday,email,phone,staff_id,title,dept,subjects,school,zone

📋 欄位詳細定義

欄位名稱 (Header)範例數據必填說明
roleTeacher固定填寫 Teacher。
name王美麗老師真實姓名。
genderFemale僅限 Male 或 Female。
birthday1985-03-12格式 YYYY-MM-DD。
emailm.wang@nh.com老師登入帳號,全系統唯一。
phone+886 912-345-678老師聯絡電話。
staff_idT-2026-088學校內部的員工管理編號(如無則留空)。
titleSenior Teacher老師的專業職稱。
dept語文部老師所屬的行政或教學部門。
subjects基礎漢語;進階閱讀教授科目,多個請用半形分號 ( ; ) 隔開。
school第一小學;第二小學老師所屬學校,名稱必須與 A-14 設定完全一致,可設置多個。
zone台北校區;台中校區老師所屬校區,名稱必須與 A-14 設定完全一致,可設置多個。

3. Admin 管理員批量導入模板 (A-12-A-T3)

適用於各分校普通管理員的快速生成。只有 SuperAdmin 可以使用,其他角色不可。

📥 模板表頭 (CSV Header)

role,name,gender,birthday,email,admin_level,dept,school,zone

📋 欄位詳細定義

欄位名稱 (Header)範例數據必填說明
roleAdmin固定填寫 Admin。
name陳運營管理員真實姓名。
genderMale僅限 Male 或 Female。
birthday1990-11-20格式 YYYY-MM-DD。
emailadmin.chen@nh.com管理員登入帳號,全系統唯一。
admin_levelZoneAdminZoneAdmin / SuperAdmin。
dept教務處所屬行政管理部門。
school第二小學;第三小學負責的學校,名稱須存在於 A-14。多個請用 ; 隔開。
zone台中校區;台北校區負責的校區,名稱須存在於 A-14。多個請用 ; 隔開。

🔁 交互流程圖

流程圖

正在載入流程圖…

⚙️ 狀態管理

狀態觸發條件畫面表現
正常頁面載入完成顯示三步驟流程
上傳中CSV 上傳進行中Progress Bar 顯示進度
校驗中系統解析 CSVLoading Spinner
校驗通過所有行有效[Start Import] 按鈕可用
校驗錯誤存在 Error 行[Start Import] 按鈕禁用,錯誤行標紅
導入中數據寫入進行中Progress Bar + 禁用所有操作
導入完成寫入成功顯示 Import Report
權限拒絕Zone Admin 上傳 Admin CSV報錯並拒絕導入

🔎 邏輯自我檢查

  1. 唯一性校驗: email 在全系統內必須唯一,導入時若衝突需明確指出衝突的行號。
  2. 數據聯動: Student 模板中的 teacher_emails 必須在系統中已有對應的 Teacher 帳號,否則標註為 Warning
  3. 管理員創建限制: 已明確區分超級與普通管理員的創建邏輯,防止權限提權 (Privilege Escalation)。
  4. 多選處理: class_ids (所屬班級) 欄位支持分號分隔,以便學生可以同時歸屬於多個教學單元。
  5. 密碼生成與強制引導: 數據寫入後,後端自動格式化 birthday (YYYYMMDD) 存入 password 字段(經 Hash 加密)。force_password_reset 標籤設為 true。

提交版本內容版本 29c89979提交 5ca7557規格文件,功能實現狀態另行確認