依分店過濾的頁面
主要清單存放於 ExpiringHeaderComponent.locationPageFinished[]。任一登錄於此的路由都會在頁首顯示內嵌選擇器,並於切換分店時重新評估資料。
目前的項目包括:
- dashboard(儀表板)
- classes(課程)
- calendar(行事曆)
- users(使用者)
- reports(報表)
- schedule-calendar(排程日曆)
- appointments(預約)
- locations(分店)
- roles(角色)
- receipt-printer(收據印表機)
- online-payment(線上付款)
若有新頁面需要支援分店過濾,只需將其路由名稱加入此陣列,即可啟用該行為。
切換時會有哪些變化
分店感知頁面上的每個 store 都會注入 LocationStore,並以 selected()?.locationId 縮小其 computed 訊號範圍。切換分店時,訊號會更新,下游所有清單、數字與圖表都會重新計算。
常見的可見變化包括:
- 儀表板磚塊上的總計將重新依新分店彙總。
- 課程、行事曆與排程日曆清單僅顯示所選分店的場次。
- 使用者頁面僅篩選出於該分店有活動的客戶。
- 報表頁面上的所有圖表與匯出皆限定於該分店資料。
- 收據印表機與線上付款頁面僅顯示該分店設定的硬體與金流。
未依分店過濾的頁面
凡未列於 locationPageFinished[] 之頁面皆為刻意設計的全域頁面。這些頁面不會顯示選擇器,於其他頁面變更分店也不會影響其資料。
此設計適用於屬於整個帳號而非單一分店的設定,包括多數帳單頁面、帳號資訊、整合設定與品牌層級設定。若您發現某頁面理應依分店過濾卻未過濾,這屬於設定問題:解法是將該路由登錄於 locationPageFinished[],並確保該頁的 store 讀取 selected()?.locationId。
有疑問時,請查看頁首是否有內嵌選擇器。若有,該頁面便是分店感知;若無,該頁面即為帳號全域。
