多選擇
multiSelect
控制項允許使用者從列表中選擇多個選項,顯示所選項目的數量和個別選擇。它提供了同步和異步載入選項的功能,提高了靈活性和使用體驗。
未選擇的 multiSelect
範例:
單一選擇的 multiSelect
範例:
多項選擇的 multiSelect
範例:
參數
| 名稱 | 類型 | 預設值 | 描述 |
| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- |
| id
| string
| - | 控制項保存數據的識別碼 |
| type
| string
| - | 類型應設為 "multiSelect"
|
| label?
| string
| - | 控制項左側顯示的標籤 |
| icon?
| string
| - | 將顯示在控制項標籤左側的圖示名稱。查看所有 圖示。 |
| placeholder?
| string
| - | 在多選框字段中顯示的佔位符文本。 |
| position?
| number
| - | 控制項在工具欄中的位置 |
| roles?
| Array<Role>
| - | 只有當當前使用者的角色符合提供的角色陣列中的一個角色時,才會顯示控制項。
type Role = "admin" \| "viewer" \| "editor" \| "designer" \| "manager"
|
| devices?
| "all"
| "desktop"
| "responsive"
| "all"
| 定義控制項將在哪些設備上顯示。 "all"
會在所有設備上顯示控制項。 "desktop"
只會在桌面設備上顯示控制項。 "responsive"
會在平板和移動設備上顯示控制項。 |
| disabled?
| boolean
| false
| 配置控制項的禁用或啟用條件 |
| display?
| "inline" \| "block"
| "inline"
| 配置控制項及其標籤的排列方式。如果 display
為 "inline"
,則標籤和控制項會在一行中,如果 display
為 "block"
,則標籤會在一行中,控制項會在下一行。 |
| helper?.content
| string
| - | 如果提供,則在標籤旁邊顯示圖示。當懸停在此圖示上時,會顯示包含額外資訊的提示。 |
| helper?.position
| "top-start"
| "top"
| "top-end"
| "right-start"
| "right"
| "right-end"
| "bottom-end"
| "bottom"
| "bottom-start"
| "left-end"
| "left"
| "left-start"
| "top"
| 指定提示相對於輔助圖示的位置。 |
| states?
| Array<State>
| ["normal"
] | 根據元素的狀態允許不同的樣式
State = "normal" \| "hover" \| "active"
"normal"
- 元素的正常狀態,
"hover"
- 當元素被懸停時的狀態,
"active"
- 當元素處於活動狀態(例如,分頁中的當前頁)時的狀態 |
| choices
| ChoicesSync \| ChoicesAsync
| - | choices
屬性可以配置為同步或異步提供給定組件的可選選項列表。此屬性可以有兩種形式:ChoicesSync
或 ChoicesAsync
。
ChoicesSync
ChoicesSync
是一個直接提供給組件的 Choice
對象數組。Choice: { title: string; value: string }
每個 Choice
對象定義了以下屬性:title
- 表示選項顯示標題的字符串。value
- 表示選項的值。當選擇該選項時,此值將返回。
ChoicesAsyncChoicesAsync
用於通過異步函數動態加載選項。它是一個定義了以下屬性的對象:ChoicesAsync: { load: (value: Array<string>, abortSignal?: AbortSignal) => Promise<Choice[]>; search: (search: string, abortSignal?: AbortSignal) => Promise<Choice[]>; }
load
- 一個函數,接受 value
和可選的 AbortSignal
,返回一個 Promise,解析為 Choice
對象的數組。此函數用於加載選擇選項。search
- 一個函數,接受來自搜尋輸入的 search
字符串和可選的 AbortSignal
,返回一個 Promise,解析為基於搜尋條件的 Choice
對象數組。此函數用於根據用戶輸入動態搜尋和加載選項。
| |
| config?.search
| boolean
| - | 如果提供並設置為 true
,則在控制項上方顯示一個輸入字段以搜尋項目。 |
| config?.showArrow
| boolean
| - | 如果提供並設置為 true
,則顯示右側的箭頭。 |
| default?
| Default
| - | 控制項的默認值。
Default: { value: Array<string> }
value
- 控制項的自訂初始值
|
| style?
| function
| - | 此函數根據控制項的值生成 CSS 輸出。參數是一個包含 value
鍵的對象,該鍵保存控制項的當前值。該函數返回一個包含 CSS 選擇器鍵和 CSS 屬性值的對象。
|style: ({value}) => {
return {
"{{WRAPPER}} .brz-text": {
color: value.includes("events") ? "green" : "black"
}
}
}
基本範例
標準定義僅包含必要的鍵。此控制項將顯示在所有設備上。
{
id: "type",
type: "multiSelect",
choices: [
{ title: "Timeline", value: "timeline" },
{ title: "Events", value: "events" }
]
}
回傳值
multiSelect
控制項的回傳值是選擇的 Choices
標題的字串化陣列。
{
value: string;
}
範例值:
{
value: "['events', 'timeline']";
}
使用方法
標籤範例
在控制項的左側添加標籤。
{
id: "type",
label: "Layout",
type: "multiSelect",
choices: [
{ title: "Timeline", value: "timeline" },
{ title: "Events", value: "events" }
]
}
圖示範例
在控制項標籤的左側添加「星星」圖示。
{
id: "type",
type: "multiSelect",
icon: "nc-star",
choices: [
{ title: "Timeline", value: "timeline" },
{ title: "Events", value: "events" }
]
}
角色範例
僅顯示給具有 admin 和 designer 權限的使用者。
{
id: "type",
type: "multiSelect",
roles: ["admin", "designer"],
choices: [
{ title: "Timeline", value: "timeline" },
{ title: "Events", value: "events" }
]
}
佔位符範例
在多選框字段中顯示的佔位符文本。
{
id: "type",
type: "multiSelect",
placeholder: "Select choices",
choices: [
{ title: "Timeline", value: "timeline" },
{ title: "Events", value: "events" }
]
}