Tab 控制項介紹
Tab 用於組織同一業務物件或工作流程中的並列內容。使用者不必離開目前頁面,就能在多個內容區之間切換。它適合資料維護、分階段設定、詳細資料分組及「編輯—審核」工作區。
閱讀本手冊後,你可以:
- 新增 Tab 容器與多個頁籤
- 設定 Line、Card 與 Editable Card 外觀
- 將頁籤放在頂部、右側、底部或左側
- 設定置中、停用及首次延遲呈現
- 在不同 Tab 中組合 Form、欄位、按鈕與其他容器
- 為單一 Tab 或外層 Tab 容器設定
onClick
Tab 僅用於同一物件內的並列檢視。不同業務模組,或需要獨立 URL、權限及選單醒目提示的頁面,應使用頁面選單;不要用大量 Tab 取代應用程式導覽。
1. 範例:活動發布工作區
Spark Sample 的 Tab 頁面使用一個活動發布工作區說明常見組合:
| 頁籤 | 內容 | 展示重點 |
|---|---|---|
| Overview | 活動名稱、負責人、發布日期、預算與摘要 | 一般表單與草稿操作 |
| Delivery settings | 管道、受眾、審核開關、預設語言與投放說明 | Select、Switch 與設定驗證 |
| Review & publish | 唯讀摘要與發布按鈕 | 延遲呈現、跨頁籤表單狀態與互動 |
| Audit log (coming soon) | 尚未開放 | 停用頁籤 |
此範例不依賴後端 Sample API。欄位值保留在目前頁面狀態中,適合先理解 Tab 結構、切換及互動。需要載入業務資料時,可在頁籤內加入 Data Form、DataList、ProTable 或其他資料控制項。
2. 新增 Tab 容器
- 在 Page Designer 中開啟目標頁面。
- 展開左側元件面板中的 Containers。
- 將 Tab 拖入 Screen 或其他可容納容器控制項的區域。
- 選取 Tab 容器,在 Tabs 子元素區域新增頁籤。
- 逐一選取子 Tab 並填寫 Tab Label。
- 將 Form、欄位、按鈕或其他容器拖入對應頁籤。
Tab
├── Overview
│ └── Form
├── Delivery settings
│ └── Form
├── Review & publish
│ └── Form
└── Audit log (coming soon)
3. 設定 Tab 容器
| 屬性 | 可選值 | 說明 |
|---|---|---|
| Tab Style | line、card、editable-card | Line 使用底線強調;Card 使用卡片式頁籤;Editable Card 僅使用可編輯卡片外觀 |
| Tab Position | top、right、bottom、left | 控制頁籤標題相對於內容區的位置 |
| Center Tabs | 開/關 | 頂部或底部時將標題置中;左右位置仍維持垂直排列 |
editable-card 在執行階段不允許最終使用者新增或刪除頁面結構。Tab 數量與順序仍由 Page Designer 管理。
選擇樣式或位置後,設計畫布會立即預覽相同方向與主要外觀;儲存頁面後,執行階段會依已儲存的設定顯示。
4. 設定單一 Tab
| 屬性 | 說明 |
|---|---|
| Tab Label | 頁籤顯示名稱,建議簡短且能清楚表達內容範圍 |
| Always Render | 開啟時在頁面首次載入就呈現;關閉時在第一次切換到該頁籤時呈現 |
| Disabled | 禁止選取頁籤,適合「即將開放」或目前條件不符合的內容 |
4.1 Always Render 的選擇
- 表單欄位較少或頁籤間需要立即共享狀態時,可以開啟。
- 圖表、遠端清單或較重元件較多時,可以關閉。
- 關閉只會延遲第一次呈現;開啟過頁籤後,一般切換不會自動清除輸入狀態。
4.2 Disabled 的選擇
停用頁籤仍顯示標題,但不切換內容,也不執行該 Tab 的 onClick。永遠不應存取的內容應直接刪除或隱藏;Disabled 適合表示暫時無法使用。
5. 在 Tab 中組織內容
- 每個頁籤只負責一個清楚主題。
- 表單內容先加入 Form,再將欄位放入 Form,以統一欄數、標籤比例、版面配置與驗證。
- 頁面主要操作放在最後的審核頁籤或固定區域,不要在每個頁籤重複相同按鈕。
- 資料清單較重時關閉 Always Render。
- 頁籤超過 5~7 個時,重新檢視資訊架構,將低頻內容移到分組、Drawer 或獨立頁面。
範例中的 Overview 與 Delivery settings 使用可編輯 Form,Review & publish 使用同名欄位的唯讀 Form。前兩個頁籤修改值後,審核頁籤會顯示最新頁面狀態。
6. 設定互動
Tab 支援兩層點擊互動:子 Tab 的 onClick 與外層 Tab 容器的 onClick。
- 在畫布或子元素清單中選取目標 Tab。
- 開啟右側 Interaction。
- 在
onClick下新增 Toast、設定頁面內容、呼叫 API 或其他動作。 - 儲存頁面並進入執行階段驗證。
選取可用頁籤時,系統先執行子 Tab 的 onClick,再執行外層容器的 onClick。停用頁籤不執行互動。範例為 Review & publish 與其發布按鈕分別設定了提示訊息。
7. 重現範例
- 新增 Tab,保留
line、top與不置中設定。 - 新增 Overview、Delivery settings、Review & publish、Audit log (coming soon)。
- 為前三個 Tab 各加入一個雙欄 Horizontal Form。
- 在 Overview 中加入 Input、DatePicker、TextArea 與 Save draft。
- 在 Delivery settings 中加入 Dropdown Select、Switch、Input、TextArea 與 Validate settings。
- 在 Review & publish 中加入唯讀欄位與 Publish campaign,並關閉 Always Render。
- 將 Audit log 設為 Disabled 並關閉 Always Render。
- 為 Review & publish 的
onClick加入 Info Toast。 - 為三個操作按鈕加入 Toast,例如:
Campaign [[campaignName]] is ready for [[campaignChannel]].
8. 常見問題
8.1 修改樣式或位置後,執行階段沒有變化
確認頁面已儲存,且執行 URL 使用目前設計版本的 versionId。設計畫布會即時預覽,但執行階段只讀取已儲存的 Page JSON。
8.2 點擊頁籤沒有執行互動
- Interaction 是否設定在真正的子 Tab,而不是內部 Form。
- 事件是否為
onClick。 - Tab 是否為 Disabled。
- 頁面是否已儲存,執行階段是否使用目前版本。
8.3 切換頁籤後欄位值消失
確認欄位使用穩定且唯一的 Name。需要跨頁籤顯示同一值時,編輯區與唯讀區應使用同一 Name;不同 Name 代表彼此獨立的頁面狀態。
8.4 首次開啟頁面很慢
對包含遠端清單、圖表或較多欄位的非首屏 Tab 關閉 Always Render,只在第一個頁籤保留必要內容。
9. 設計建議
- 頁籤名稱使用名詞或簡短動作片語,例如 Overview、Configuration、History。
- 同一組頁籤保持相近的資訊層級,不要將 Details、System settings、Sign out 放在同一層。
- 重要錯誤、未儲存狀態與發布結果不要只依賴頁籤顏色,應同時提供可讀文字。
- 行動裝置應優先精簡頁籤數量;左右位置較適合桌面端局部工作區。
- 需要獨立連結、瀏覽器前進後退或選單權限時,使用獨立頁面與選單。