主题设置

选择强调色与基础色,保存后全站生效。

强调色
基础色
点击切换锁定状态
显示侧边栏
隐藏侧边栏
Flux Pro 组件
此组件仅在 Flux 的 Pro 版本中提供。

胶囊盒

一个多选组件,将选中的项目显示为可移除的"胶囊",根据需要扩展输入区域。

设计
开发
营销
销售
支持
工程
产品
运营
<flux:pillbox wire:model="selectedTags" multiple placeholder="Choose tags...">    <flux:pillbox.option value="design">Design</flux:pillbox.option>    <flux:pillbox.option value="development">Development</flux:pillbox.option>    <flux:pillbox.option value="marketing">Marketing</flux:pillbox.option>    <flux:pillbox.option value="sales">Sales</flux:pillbox.option>    <flux:pillbox.option value="support">Support</flux:pillbox.option>    <flux:pillbox.option value="engineering">Engineering</flux:pillbox.option>    <flux:pillbox.option value="product">Product</flux:pillbox.option>    <flux:pillbox.option value="operations">Operations</flux:pillbox.option></flux:pillbox>

小尺寸

用于更紧凑布局的小尺寸胶囊盒元素。

设计
开发
营销
销售
支持
工程
产品
运营
<flux:pillbox size="sm" multiple placeholder="Choose tags...">    <flux:pillbox.option value="design">Design</flux:pillbox.option>    <flux:pillbox.option value="development">Development</flux:pillbox.option>    <flux:pillbox.option value="marketing">Marketing</flux:pillbox.option>    <flux:pillbox.option value="sales">Sales</flux:pillbox.option>    <flux:pillbox.option value="support">Support</flux:pillbox.option>    <flux:pillbox.option value="engineering">Engineering</flux:pillbox.option>    <flux:pillbox.option value="product">Product</flux:pillbox.option>    <flux:pillbox.option value="operations">Operations</flux:pillbox.option></flux:pillbox>

可搜索

添加搜索输入框以过滤大量选项列表。

No results found
JavaScript
TypeScript
PHP
Python
Ruby
Go
Rust
Java
C#
Swift
<flux:pillbox multiple searchable placeholder="Choose skills...">    <flux:pillbox.option value="javascript">JavaScript</flux:pillbox.option>    <flux:pillbox.option value="typescript">TypeScript</flux:pillbox.option>    <flux:pillbox.option value="php">PHP</flux:pillbox.option>    <flux:pillbox.option value="python">Python</flux:pillbox.option>    <flux:pillbox.option value="ruby">Ruby</flux:pillbox.option>    <flux:pillbox.option value="go">Go</flux:pillbox.option>    <flux:pillbox.option value="rust">Rust</flux:pillbox.option>    <flux:pillbox.option value="java">Java</flux:pillbox.option>    <flux:pillbox.option value="csharp">C#</flux:pillbox.option>    <flux:pillbox.option value="swift">Swift</flux:pillbox.option></flux:pillbox>

自定义搜索占位符

你可以自定义搜索输入框的占位符:
<flux:pillbox multiple searchable search:placeholder="Filter skills...">    ...</flux:pillbox>

带图标

为选项添加图标以便更好地视觉识别。

GitHub
GitLab
Bitbucket
<flux:pillbox multiple placeholder="Choose platforms...">    <flux:pillbox.option value="github">        <div class="flex items-center gap-2">            <flux:icon.code-bracket variant="mini" class="text-zinc-400" /> GitHub        </div>    </flux:pillbox.option>    <flux:pillbox.option value="gitlab">        <div class="flex items-center gap-2">            <flux:icon.server variant="mini" class="text-zinc-400" /> GitLab        </div>    </flux:pillbox.option>    <flux:pillbox.option value="bitbucket">        <div class="flex items-center gap-2">            <flux:icon.cloud variant="mini" class="text-zinc-400" /> Bitbucket        </div>    </flux:pillbox.option></flux:pillbox>

组合框

在胶囊盒内直接展示输入框。

No results found
JavaScript
TypeScript
PHP
Python
Ruby
Go
Rust
Java
C#
Swift
<flux:pillbox variant="combobox" multiple placeholder="Choose skills...">    <flux:pillbox.option value="javascript">JavaScript</flux:pillbox.option>    <flux:pillbox.option value="typescript">TypeScript</flux:pillbox.option>    <flux:pillbox.option value="php">PHP</flux:pillbox.option>    <flux:pillbox.option value="python">Python</flux:pillbox.option>    <flux:pillbox.option value="ruby">Ruby</flux:pillbox.option>    <flux:pillbox.option value="go">Go</flux:pillbox.option>    <flux:pillbox.option value="rust">Rust</flux:pillbox.option>    <flux:pillbox.option value="java">Java</flux:pillbox.option>    <flux:pillbox.option value="csharp">C#</flux:pillbox.option>    <flux:pillbox.option value="swift">Swift</flux:pillbox.option></flux:pillbox>

创建选项

使用 <flux:pillbox.option.create> 组件,让用户创建新的选项。

当搜索输入与列表中的现有项目匹配时,Flux 会自动隐藏创建选项。你也可以通过 min-length 属性指定显示创建选项所需的最小字符数。

No results found
产品
工程
市场
开发
支持
设计
运营
销售
创建新的 ""
<flux:pillbox wire:model="selectedTags" variant="combobox" multiple>    <x-slot name="input">        <flux:pillbox.input wire:model="search" placeholder="Choose tags..." />    </x-slot>    @foreach ($this->tags as $tag)        <flux:pillbox.option :value="$tag->id">{{ $tag->name }}</flux:pillbox.option>    @endforeach    <flux:pillbox.option.create wire:click="createTag" min-length="2">        Create new "<span wire:text="search"></span>"    </flux:pillbox.option.create></flux:pillbox><!--public $search = '';public $selectedTags = [];public function createProject(){    $tag = Tag::create([        'name' => $this->search,    ]);    $this->selectedTags[] = $tag->id;    $this->search = '';}-->

如果你使用 :filter="false",请确保在搜索输入被清空时,查询结果始终包含新创建的项目。

Flux 会在请求期间自动禁用创建选项以避免重复,并在列表更新时在前端执行唯一性检查。

No results found
产品
工程
市场
开发
支持
设计
运营
销售
创建 ""
<flux:pillbox wire:model.live="selectedTags" variant="combobox" multiple :filter="false">    <x-slot name="input">        <flux:pillbox.input wire:model.live="search" placeholder="Choose tags..." />    </x-slot>    @foreach($this->tags as $tag)        <flux:pillbox.option :value="$tag->id">{{ $tag->name }}</flux:pillbox.option>    @endforeach    <flux:pillbox.option.create wire:click="createTag" min-length="2">        Create "<span wire:text="search"></span>"    </flux:pillbox.option.create></flux:pillbox><!--#[\Livewire\Attributes\Computed]public function tags() {    return \App\Models\Tag::query()        ->where('name', 'like', '%' . trim($this->search) . '%')        ->limit(20)->get()        ->when(blank($this->search) && $this->selectedTags, function ($results) {            return \App\Models\Tag::query()                ->whereIn('id', $this->selectedTags)                ->whereNotIn('id', $results->pluck('id'))                ->get()->merge($results);        });}-->

加载提示

当前端隐藏了创建选项,但新的结果尚未返回时,Flux 会显示一个特殊的“加载中...”提示。要自定义该提示文案,请在 <flux:pillbox.option.empty> 组件上使用 when-loading 属性。
<flux:pillbox wire:model="selectedTags" variant="combobox" multiple :filter="false">    ...    <x-slot name="empty">        <flux:pillbox.option.empty when-loading="Loading tags...">            No tags found.        </flux:pillbox.option.empty>    </x-slot></flux:pillbox>

使用验证

当你在后端执行额外验证时,只要存在验证错误,搜索输入框就会显示为无效状态。请确保在用户更新输入时重置错误信息。

No results found
产品
工程
市场
开发
支持
设计
运营
销售
创建 ""
<flux:pillbox wire:model.live="selectedTags" variant="combobox" multiple placeholder="Choose tags..." :filter="false">    <x-slot name="input">        <flux:pillbox.input wire:model.live="search" placeholder="Choose tags..." />    </x-slot>        ...    <flux:pillbox.option.create wire:click="createTag" min-length="2">        Create "<span wire:text="search"></span>"    </flux:pillbox.option.create></flux:pillbox><!--public function createTag() {    $this->validate(['search' => 'required|unique:tags,name']);    // Create logic...}public function updatedSearch() {    $this->resetErrorBag('search');}-->

使用模态框

使用 modal 属性来指定要打开的模态框名称,并在表单中处理更复杂的创建流程。

No results found
新建
产品
工程
市场
开发
支持
设计
运营
销售
新建标签

请输入新标签名称。

名称
<flux:pillbox wire:model="projectId" variant="combobox" placeholder="Choose project...">    <flux:pillbox.option.create modal="create-tag">Create new</flux:pillbox.option>    @foreach($this->tags as $tag)        <flux:pillbox.option :value="$tag->id">{{ $tag->name }}</flux:pillbox.option>    @endforeach</flux:pillbox><flux:modal name="create-tag" class="md:w-96">    <form wire:submit="createTag" class="space-y-6">        <div>            <flux:heading size="lg">Create new tag</flux:heading>            <flux:text class="mt-2">Enter the name of the new tag.</flux:text>        </div>        <flux:input wire:model="newTagName" label="Name" placeholder="e.g. 'Research'" />        <div class="flex">            <flux:spacer />            <flux:button type="submit" variant="primary">Create</flux:button>        </div>    </form></flux:modal>

参考

flux:pillbox

属性
描述
wire:model
将胶囊盒绑定到 Livewire 属性。模型应该是一个数组来存储多个选中的值。更多信息请参见 wire:model 文档
placeholder
未选择胶囊时显示的文本。
label
显示在胶囊盒上方的标签文本。提供时,会将胶囊盒包装在 flux:field 组件中,并配有相邻的 flux:label 组件。请参见 字段组件
description
显示在胶囊盒下方的帮助文本。与 label 一起提供时,出现在 flux:field 包装器内的标签和胶囊盒之间。
size
胶囊盒的尺寸。选项:sm
searchable
在下拉菜单内添加搜索输入框以过滤选项。
search:placeholder
searchable 为 true 时搜索输入框的自定义占位符文本。
filter
如果为 false,则禁用动态服务器端选项的客户端过滤。
disabled
阻止用户与胶囊盒交互。
invalid
对胶囊盒边框应用错误样式。
插槽
描述
default
胶囊盒选项。应包含 flux:pillbox.option 组件。
trigger
下拉菜单的自定义触发元素。替换默认的胶囊容器。
search
下拉菜单的自定义搜索输入框。用于需要连接自定义搜索行为时。
empty
当没有选项匹配搜索查询时显示的内容。
属性
描述
data-flux-pillbox
应用于根元素用于样式和 JavaScript 行为。

flux:pillbox.option

属性
描述
value
与此选项关联的值。这是选中时存储在模型数组中的内容。
disabled
阻止此选项被选中。
filterable
如果为 false,此选项不会被搜索过滤器隐藏。对"无结果"消息很有用。
插槽
描述
default
选项内容。可以包含文本、图标、图像或任何自定义 HTML。

flux:pillbox.option.create

属性
描述
min-length
在搜索输入中显示创建选项前所需的最少字符数。
modal
选中创建项时需要打开的模态框名称。
wire:click
选中创建项时调用的 Livewire 动作。

flux:pillbox.option.empty

属性
描述
when-loading
选项加载时展示的提示文案。
插槽
描述
default
当没有匹配选项时展示的提示文案。

flux:pillbox.search

属性
描述
placeholder
搜索输入框的占位符文本。默认为"Search..."。
icon
在搜索输入框中显示的图标。默认为放大镜。
clearable
如果为 true,当搜索输入框有文本时显示清除按钮。默认:true

flux:pillbox.trigger

属性
描述
placeholder
未选择胶囊时显示的文本。
invalid
对触发元素应用错误样式。
size
触发器的尺寸。选项:sm
clearable
在触发器中显示清除全部按钮。
© 2025 FluxProMax™. All Rights Reserved.

备案号:皖ICP备13019729号-11

网站导航