Skip to content

A-33 Import Preview

管理員端課程管理設計規格

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

導入預覽確認

🎨 Figma: node-698-2843 (A-30 同頁面子視圖;預覽整合在導入流程中) 🔗

🎯 核心功能

使用者: Admin / Super Admin

在 CSV/ZIP 解析後、寫入數據庫前,提供可視化的校驗結果。確保:

  1. Structure 導入: 僅新增不存在的 Cat/Lvl/Ses。
  2. Vocabulary 導入: 識別新單字;若單字已存在則提示跳過(或根據修改需求標註更新);校驗 Level/Session 是否合法。

🧱 畫面結構

區域說明
HeaderNihao Admin Course Management > Import Center > Preview, [👤]
Import Mode Badge顯示當前導入模式 (Structure / Vocabulary Bundle)
Summary CardsTotal Rows, Ready (New), Update/Skip, Errors
Filter Bar[🔍 Filter Status: All ▾], [🔍 Search Content...]
Preview TableLine, Status, Cat/Lvl/Ses, Content, Media, Note
Actions[Cancel], [Confirm]

📦 區塊說明

區塊元件功能與行為
Import ModeBadge顯示當前是 Structure Import 還是 Vocabulary Bundle Import 模式。
Summary CardsStatistics快速掃描本次導入的規模與風險。Errors 數量大於 0 時,Confirm 按鈕預設禁用。
[ NEW ]Status Badge (Green)系統中不存在此 ID 或內容,將執行新增。
[ SKIP ]Status Badge (Gray)架構或單字完全一致。架構導入時,已存在 ID 一律 Skip 不覆蓋。
[ UPDATE ]Status Badge (Orange)單字內容(如拼音、音檔名)有變動。確認後更新現有單字。
[ ERROR ]Status Badge (Red)致命錯誤:category_id/Level/Session 不存在於系統架構中。
Media CheckIcon Indicators僅限 Vocab 模式:[I][A][G] 表示 ZIP 內找到檔案,[M] 表示 Missing。
Note ColumnLogic Text顯示具體的錯誤原因(如:Level Code not found)。

⚙️ 核心校驗邏輯 (Validation Logic)

Structure Import (架構預覽)

  • 比對維度: category_id + level_code + session_id。
  • 邏輯: 若 ID 組合不存在 → [NEW]。若 ID 組合已存在 → [SKIP](不更新已有的名稱,確保架構穩定)。

Vocabulary Bundle Import (內容預覽)

  • 架構前置校驗: 每一行必須先檢查 CSV 的 category_id, Level, Session 是否已存在於數據庫。若不存在,直接標註為 [ERROR]。
  • 內容對比: 比對 Content + Type。內容不存在 → [NEW]。內容存在但屬性不同 → [UPDATE]。完全一致 → [SKIP]。
  • 資源解包校驗: 檢查 ZIP 內的 /images/, /audio/, /gif/ 是否包含 CSV 中提到的所有檔名。缺失則標註 [ERROR] (Missing Media)。

⚠️ 錯誤處理交互 (Error Handling)

如果在 A-33 發現 [ERROR]

  1. 禁止提交: 若存在 Level/Session 不匹配的錯誤,[Confirm] 按鈕呈現禁用狀態。
  2. 錯誤定位: 點擊 Line 號碼,系統彈出小窗顯示該行 CSV 的原始數據,方便管理員回到 Excel 修正。
  3. 媒體校驗: 系統會在此時同步檢查媒體文件夾。若 Image_Name 填寫了但文件夾中找不到檔案,會顯示警告圖示,但不一定阻斷導入。

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