選擇器的位置
選擇器即元件 <app-location-picker-inline>。它出現在多數管理頁面的頁首,以及行程表的日曆頁首。控制項上會顯示目前所選分店的名稱及一個向下箭頭。
點選箭頭即可開啟名為 popover-locations 的彈出視窗,其中列出您可存取的分店。權限範圍以外的分店會被停用或隱藏,因此清單中的選項一定都是安全的選擇。
若您擁有 AllLocations 權限,清單頂端會額外顯示所有分店選項,方便檢視跨分店的全域資料。
切換的運作方式
彈出視窗為單選式清單,一次僅能選擇一個分店。選擇後會呼叫 locationStore.selectLocation(id, true),依序執行以下三個步驟:
- 更新記憶體中的目前分店訊號,讓所有開啟的 computed 訊號重新讀取。
- 將選擇寫入 IndexedDB,即使重新載入或開新分頁仍保留設定。
- 觸發整頁重新載入,使伺服器端資料重新依新分店取得。
重新載入是刻意設計的,可確保清單、篩選與進行中的請求都會依新分店重新啟動,您不會看到資料混雜的中間狀態。
選擇器何時會被鎖定
若帳號僅可存取一個分店,選擇器會呈現鎖定狀態。分店名稱仍會顯示,讓您知道目前所在分店,但箭頭按鈕停用,彈出視窗無法開啟。
此設計可防止單一分店員工誤入無權限之分店,也讓尚未啟用多分店功能的帳號保持介面簡潔。
- 僅一個可存取分店:鎖定,箭頭無作用。
- 多個可存取分店:點選箭頭即開啟單選清單。
- 取得 AllLocations:另顯示所有分店選項。
