Skip to content

T-10-A Schedule Planner

教師端安排課程設計規格
畫面用途

使用者: Teacher

閱讀完整規格 ↓

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

課程排期規劃器

🖼️ 截圖: (Kou 提供)

🎯 功能定位

使用者: Teacher

T-10 主畫面的 [📅 Schedule Planner] 按鈕開啟,用於一次性批次設定全班 Session 的開放日期:

  1. 日期設定: 教師指定起始日期(Date),系統基於 Interval 自動推算後續所有 Session 的開放日期。
  2. Skip 跳過機制: 遇到假期或特殊安排時,透過 + Add Note 標記特定日期為 Skip,並記錄備註原因。
  3. 自動位移: 每新增一個 Skip,系統自動向後推移後續所有 Session 的日期,無需手動重算。
  4. 無預設值: 首次進入時 Date 為空、無任何 Skip 記錄,所有設定均由教師手動完成。

🧱 畫面結構

Modal 彈窗覆蓋層,從 T-10 主畫面點擊 [📅 Schedule Planner] 開啟

  • Date: DatePicker,設定排期起始日期(例如 2026/06/01
  • Interval: Dropdown,選擇 Session 間隔天數(如 7 Days),系統據此推算後續日期
  • Skip Section:
    • + Add Note 按鈕 → 新增一筆 Skip 條目(日期選擇器 + Note 文字輸入)
    • Skip List → 已記錄的 Skip 條目列表,每筆顯示 日期 : Note(例如 6/19 : Dragon Boat Festival
    • 每筆 Skip 可刪除(刪除後後續日期自動前移恢復)
  • [Save] → Primary Button,儲存全部排期設定並關閉 Modal

📦 區塊說明

#區塊元件行為/交互備註
1DateDatePicker選擇排期起始日期無預設值,必須由教師手動選擇
2IntervalDropdown選擇間隔天數(1 / 3 / 7 / 14 / 30 Days)變更後後端立即重算所有 Session 日期
3+ Add NoteButton新增一筆 Skip 條目,彈出 DatePicker + Text Input可多次點擊,新增多筆 Skip
4Skip 條目DatePicker + Text Input + Delete選擇要跳過的日期 + 輸入原因備註Note 為必填;可點擊 Delete 移除該 Skip
5[Save]Button (Primary)儲存排期設定,寫入後端並關閉 Modal系統根據 Date + Interval - Skip 計算最終日期序列;成功後 T-10 主畫面的 Date 欄自動更新

🔁 交互流程

流程圖

正在載入流程圖…

⚙️ 狀態管理

狀態觸發條件畫面表現
空白首次進入Date 為空,Interval 未選,Skip List 為空
編輯中已設定 Date + IntervalDate/Interval 顯示已選值
有 Skip已透過 + Add Note 新增 SkipSkip List 顯示條目(日期 : Note),[Delete] 圖標可見
Saving點擊 SaveLoading + 按鈕禁用
Saved儲存成功Toast「Schedule saved」 + Modal 關閉 + T-10 刷新

🔎 邏輯自我檢查

  • 無預設值原則: 首次進入 Schedule Planner 時,Date 為空、Interval 未選、Skip List 為空。所有設定均由教師手動完成。
  • 日期計算: 最終 Session[N] 的 Date = Start Date + Interval × (N-1) + 累計 Skip 位移天數。系統自動處理,教師無需手算。
  • Skip 自動推移: 每新增一個 Skip,該 Skip 日期對應的 Session 被跳過,後續所有 Session 日期向後推移一個 Interval。
  • 取消 Skip 回推: 刪除一個 Skip 條目後,後續 Session 日期自動前移一個 Interval。
  • 日期不可逆: 已標記為 Unlocked 的 Session 不可被 Skip(已對學生開放)。
  • Note 必填: Skip 時 Note 為必填欄位,確保有記錄可追溯原因。
  • 多筆 Skip 累計: 同一排期中可有多個 Skip,每個獨立記錄 Note。後續日期累計推移(N 個 Skip = N × Interval 位移)。
  • Save 全量覆蓋: 每次 Save 為全量覆蓋寫入所有 Session 的 Date,而非增量更新,確保排程一致性。

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