A-33 Import Preview
內容依原始規格呈現 · 查看 Markdown 來源 ↗需具備倉庫查看權限
導入預覽確認
🎯 核心功能
使用者: Admin / Super Admin
在 CSV/ZIP 解析後、寫入數據庫前,提供可視化的校驗結果。確保:
- Structure 導入: 僅新增不存在的 Cat/Lvl/Ses。
- Vocabulary 導入: 識別新單字;若單字已存在則提示跳過(或根據修改需求標註更新);校驗 Level/Session 是否合法。
🧱 畫面結構
| 區域 | 說明 |
|---|---|
| Header | Nihao Admin Course Management > Import Center > Preview, [👤] |
| Import Mode Badge | 顯示當前導入模式 (Structure / Vocabulary Bundle) |
| Summary Cards | Total Rows, Ready (New), Update/Skip, Errors |
| Filter Bar | [🔍 Filter Status: All ▾], [🔍 Search Content...] |
| Preview Table | Line, Status, Cat/Lvl/Ses, Content, Media, Note |
| Actions | [Cancel], [Confirm] |
📦 區塊說明
| 區塊 | 元件 | 功能與行為 |
|---|---|---|
| Import Mode | Badge | 顯示當前是 Structure Import 還是 Vocabulary Bundle Import 模式。 |
| Summary Cards | Statistics | 快速掃描本次導入的規模與風險。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 Check | Icon Indicators | 僅限 Vocab 模式:[I][A][G] 表示 ZIP 內找到檔案,[M] 表示 Missing。 |
| Note Column | Logic 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]:
- 禁止提交: 若存在 Level/Session 不匹配的錯誤,[Confirm] 按鈕呈現禁用狀態。
- 錯誤定位: 點擊 Line 號碼,系統彈出小窗顯示該行 CSV 的原始數據,方便管理員回到 Excel 修正。
- 媒體校驗: 系統會在此時同步檢查媒體文件夾。若 Image_Name 填寫了但文件夾中找不到檔案,會顯示警告圖示,但不一定阻斷導入。