UGOMK 操作手冊
09 章 / 共 15

班表

班表管理設定每位服務人員的可預約工作時段。系統依班表計算哪些時間可供顧客預約,未排班的時段不開放預約。班表以「人員 × 日期」矩陣呈現,可逐格點擊編輯。

多分店:班別設定 / 特殊日期是 per-store

連鎖租戶的「班別設定」與「特殊日期」都是每間分店各自一份(key 分別存 shifts@storeIdexception_shifts@storeId)。 頂部 banner 顯示「正在編輯:[分店名] / 全店共用」,儲存只影響 banner 上顯示的那一間。 班表矩陣本身則是依登入身份 + 當前門市 filter 出該店人員的班次,毋須手動切。

進入路徑

後台左側 美業預約 → 班表

時間一律用 24 小時制下拉選(2026-08-17 起)

本頁所有要填時間的地方 —— 班別設定特殊日期的縮短營業時段點格子編輯班次 —— 都改成「」「」兩個下拉選單,一律 24 小時制。

  • 不會再出現「上午 / 下午」:以前用的是瀏覽器內建的時間欄位,顯示 12 或 24 小時制是由裝置的語言設定決定的,同一套系統在不同平板上長得不一樣,排「晚班 17:20」時特別容易看成「下午 05:20」而設錯。改成下拉後每台裝置看到的都一樣。
  • 分鐘每 5 分一格(00、05、10…55),不必再手動敲數字。
  • 既有的時間不會被吸走:若您以前設過 09:17 這種不在 5 分格線上的時間,下拉會把 09:17 這個選項一起列出來並保持選中,只是進來改別的欄位不會把它偷偷改成 09:15 或 09:20。
美業的新增預約預約詳情改時間也是同一套下拉,見「模組總覽」。

班別設定

點擊頁面右上 班別設定 按鈕,可定義本店常用的班別名稱與時段(例:早班 09:00–13:00、晚班 14:00–18:00)。

設定後的好處:

快速排班 點任意班表格子編輯時,會出現班別 chip 一鍵套用,不必每次手動填時段。

CSV 匯入對應 CSV 批次匯入排班時,系統以「班別名稱」對應這裡設定的起訖時間,欄位 shifts 填「早班」即可。

矩陣圖例 矩陣上方圖例會顯示各班別的對應顏色,方便辨識。

班別設定不會直接綁定班表,僅作為「命名快捷鍵」用途;改時段不會回頭異動已建立的班表。

特殊日期 / 店休

點擊頁面右上 特殊日期 按鈕,可指定某些日期全店休假或縮短營業,LIFF 預約頁該日不可選;客人會看到您填寫的原因。

兩種模式:

全店休假 該日所有設計師都停業,客人在 LIFF 看到「店休:{原因}」。

縮短營業 該日縮減所有設計師的班表交集到您指定的時段(可設多段)。例:原本 10:00–20:00,特殊日改 13:00–17:00。

每筆需填日期 + 原因(會顯示給客人,建議寫「店內裝修」「員工旅遊」等)。特殊日期是疊加邏輯,會跟設計師原班表的時段取交集;若該日某設計師原本就休假,特殊日期不會讓他變上班。

矩陣視圖

頁面以「人員 × 日期」矩陣呈現所有服務人員的排班,可切換:

整月 顯示整個月份,欄位較密但一次看完。

2 週 從指定起始日往後 14 天,欄位較寬鬆,適合精細調整。

矩陣的每一格代表「某人員 × 某日」的班次,已排班顯示對應班別的彩色 chip,「休」顯示灰色「休」字,未設定顯示空白點,今日格背景為琥珀色。

最右側「天數」欄位即時顯示該人員本期間「總天數 / 工作天 / 休假天」。

編輯班次

直接點任意格子即可開編輯 modal:

  • 已設好的班別會以 chip 形式列出,點一下即一鍵套用該班別
  • 也可自行選起訖時間(自訂班次),時 / 分兩個 24 小時制下拉
  • 切「休」標記為休假
  • 同一日可加多個時段(例:上午 + 下午分開兩個班次)

儲存後該格子即更新;矩陣即時刷新。

班別的「最晚可預約」(2026-09-04)

編輯班次時,每一個時段下面都有一格 最晚可預約:這個班別最晚幾點可以「開始」一筆線上預約

填法意思
留空(沿用)(預設)沿用全店的預設值。欄位旁邊會把全店目前的值直接寫出來(「沿用全店設定:最晚 17:30 開始」或「未設定,不限制」),不用回去翻設定頁
填一個時刻只覆寫這一個班別。可以比全店晚,也可以比全店早。欄位旁會顯示「此班別最晚 HH:MM 開始(已覆寫全店設定)」

有覆寫的班別,在矩陣視圖的格子上就看得出來——chip 的文字後面會多一段「最晚 HH:MM」,不必點進去才知道。

規則:填的時間必須落在這個班別的起訖時間之內;不在範圍內或格式不對時儲存會被擋下並說明原因。

這一格管的是「最晚幾點開始」,不是「最晚做到幾點」

做到幾點看的是班別的下班時間。所以一筆 17:00 開始、做到 19:30 的服務,在「最晚可預約 17:30」的班別上仍然約得到(只要 19:30 沒有超過下班時間)。 反過來說,被班別結束時間擋掉的預約,錯誤訊息不會提到「最晚可預約」——看到哪一句就去改哪一個設定,不要兩個一起動

全店預設值在哪裡設、不指定設計師時怎麼算,見「預約設定 → 最晚可預約開始時間」。

跨夜班表(2026-07-08 F108)

支援「跨過午夜」的班別,適合夜間營業型美業(美睫夜店、SPA 深夜檔)或補班到凌晨情境。

使用方式

編輯 modal 內結束時間選一個比開始時間更早的時鐘時間即代表跨夜:

  • 例:12:00 - 00:30 → 系統識別為跨夜 12.5 小時班次(當日中午上班到隔日凌晨 00:30)
  • 例:22:00 - 04:00 → 跨夜 6 小時
  • 例:09:00 - 18:00 → 一般班別(未跨夜)

儲存後,班表矩陣該格會標示「跨夜」提示,方便辨識。

20 小時上限

單一班別(無論是否跨夜)時長不得超過 20 小時。若填 08:00 - 05:00 系統會擋下並回錯誤訊息:

班別 08:00-05:00 時長 21.0 小時,超過單一班別 20 小時上限

若需超過 20 小時排班,請切成兩段(例:08:00-18:00 + 20:00-04:00)。

顧客端 LIFF 呈現

跨夜班表在 LIFF 預約介面:

  • 當日時段(12:00-23:59)正常顯示
  • 隔日凌晨時段(00:00-00:30)在 slot 上顯示 amber「隔日」badge,避免顧客誤以為當日凌晨
  • 顧客點下訂位單成立後:reserved_date = 實際發生日(隔日 slot 存隔日日期),reserved_time = 00:00-23:59(永不 > 24:00)

DB 儲存契約

  • beauty_schedules.shifts:JSONB 陣列,每筆 { start: "12:00", end: "00:30" }end < start 即跨夜語意,DB 端不 +1440)
  • beauty_bookings.reserved_time:永遠 00:00-23:59(TIME 型別,不表達跨夜)
  • beauty_bookings.reserved_date實際發生的日期(跨夜時 = 班表日 +1)

跨夜班次的預約管理

跨夜班表產生的隔日預約,會出現在隔日日曆的預約列表中(非班表所在日)。核帳、報表、通知都以「實際發生日」為準。

批次操作

複製班表

三種複製範圍,作用方式相同,只有「從哪裡複製到哪裡」不一樣:

複製到下一天 入口在矩陣視圖每一個日期欄的表頭(日期下方的向右箭頭)。把該日全部人員的班表複製到隔天。因為它的作用範圍就是那一欄,所以按鈕放在那一欄上。

複製到下一週 入口在頁面右上方工具列。把基準日所在那一週(週一到週日)複製到下一週的同樣七天。

複製整月到下月 入口在頁面右上方工具列。把當前月份複製到下個月,1 號對 1 號、日對日。

三者都會先跳出確認視窗,寫明「從哪一段、到哪一段」,按下「開始複製」才會真的動資料。複製的內容包含班別、休假日,以及每個班別自己設定的最晚可預約時間。

目標日期已經有班的時候

確認視窗裡有兩個選項:

保留原本的班(預設) 已經排好班的那幾格原封不動,複製完會逐筆列出跳過了誰的哪一天,不是只給一個數字。

用來源的班蓋掉 目標日期的班會被來源的班取代。

蓋掉之後沒有還原

班表沒有版本紀錄,也沒有復原按鈕 —— 選了「用來源的班蓋掉」而蓋錯,只能手動一格一格重排。這就是預設值是「保留原本的班」的原因。不確定目標範圍有沒有人排過班時,先用預設值跑一次,看它列出哪些人被跳過,再決定要不要蓋。

複製不會動到的東西

特殊日期 / 店休不會跟著複製。它是綁在那一個日子上的原因(例如「9/28 教師節店休」),跟著搬到別的日期沒有意義。

因此會出現一種容易誤會的情況:目標範圍裡如果有店休日,班表照樣複製過去,但那幾天的預約仍然以特殊日期設定為準(顧客端一樣不開放預約)。畫面上會看到那幾格有班、預約頁卻約不到 —— 要調整請用頁面右上的「特殊日期」。

目標月份沒有的日子會自動跳過。例如 31 號複製到只有 30 天的月份,那一天就是跳過,不會排到再下個月去。複製完會列出被跳過的日期。

匯入

匯入 ▼ 下載 CSV 範本、上傳 CSV 批次建立班次、查看歷次匯入結果。詳見「班表匯入」說明書。

多門市:匯入與排班都要先切門市

多門市的品牌,班表是分門市各自獨立的。上傳 CSV 之前請先在左側「當前門市」切換到要匯入的門市 —— 沒有指定門市時系統會擋下這次上傳並提示,不會把整批班表匯到不確定的門市去。手動點格子排班也是同一個規則。 「匯入歷史」只列出當前門市的紀錄。門市欄位顯示「未指定門市」的是 2026-09-09 之前留下的舊紀錄(當時系統還沒有記錄門市),不代表它屬於哪一家店。

班次刪除的影響

把格子改為空白即刪除該日班次。原本開放的預約時段將關閉,但已建立的預約訂單不受影響,需另外通知顧客協調時間

班次刪除前先確認

若班次因故需取消(如人員緊急休假),請先查看該時段是否有顧客預約,主動聯繫顧客改期後再刪除班次。

常見問題

Q1 設定了班次但顧客仍無法預約

確認班次時段 ≥ 服務項目時長,且服務人員已關聯至對應服務項目(透過「服務項目 → 可服務人員分組」設定)。若班次時間剩餘不足一個服務時長,該時段不會出現在可預約選項中。

Q2 如何快速複製上月 / 上週排班

頁面右上方「複製整月到下月」一鍵複製當前月份到下月;同一列的「複製到下一週」複製整整一週;只想複製某一天的話,用矩陣視圖日期欄表頭的向右箭頭複製到隔天。

三者複製的都是該範圍內全部人員。若需要更細的粒度(例:只複製兩位特定人員),目前仍需手動點格子或用 CSV 匯入。

Q3 假日休假如何設定

直接點該日格子 → 切「休」即可。整月排好後的格子若想刪除,可在 modal 內清空或改為「休」。

其他問題協助

若遇本說明未涵蓋的問題,請透過後台右下角 LINE 客服 @ugomk 聯繫真人專員協助處理。