Skip to content
全部文档

分组操作

简介

你可以使用 ActionGroup 对象将多个操作归入一个下拉菜单。组内可以包含多个操作,或其他组:

php
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;

ActionGroup::make([
    Action::make('view'),
    Action::make('edit'),
    Action::make('delete'),
])
操作组操作组

本页介绍如何自定义操作组触发按钮与下拉菜单的外观。

自定义组触发样式

打开下拉菜单的按钮可以像普通操作一样自定义。触发按钮可用的全部方法 都可用于自定义组触发按钮:

php
use Filament\Actions\ActionGroup;
use Filament\Support\Enums\Size;

ActionGroup::make([
    // Array of actions
])
    ->label('More actions')
    ->icon('heroicon-m-ellipsis-vertical')
    ->size(Size::Small)
    ->color('primary')
    ->button()
带自定义触发样式的操作组带自定义触发样式的操作组
带按钮操作组的表格带按钮操作组的表格

为组触发按钮添加提示

你可以使用 tooltip() 方法为组触发按钮添加提示:

php
use Filament\Actions\ActionGroup;

ActionGroup::make([
    // Array of actions
])
    ->tooltip('Actions')
带操作组提示的表格带操作组提示的表格

使用分组按钮设计

操作组也可以不使用下拉菜单,而是渲染为一组按钮。该设计在有或无按钮标签时均可使用。要启用此功能,请使用 buttonGroup() 方法:

php
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Support\Icons\Heroicon;

ActionGroup::make([
    Action::make('edit')
        ->color('gray')
        ->icon(Heroicon::PencilSquare)
        ->hiddenLabel(),
    Action::make('delete')
        ->color('gray')
        ->icon(Heroicon::Trash)
        ->hiddenLabel(),
])
    ->buttonGroup()
使用按钮组设计的操作组使用按钮组设计的操作组

设置下拉菜单位置

可以使用 dropdownPlacement() 方法相对于触发按钮定位下拉菜单:

php
use Filament\Actions\ActionGroup;

ActionGroup::make([
    // Array of actions
])
    ->dropdownPlacement('top-start')

TIP

dropdownPlacement() 方法也接受一个函数来动态计算值。你可以将各种实用工具作为参数注入该函数。

顶部定位样式的操作组顶部定位样式的操作组

或者,你可以使用 dropdownAutoPlacement() 方法,根据可用空间自动决定下拉菜单位置:

php
use Filament\Actions\ActionGroup;

ActionGroup::make([
    // Array of actions
])
    ->dropdownAutoPlacement()

在操作之间添加分隔线

你可以通过嵌套 ActionGroup 对象,在操作组之间添加分隔线:

php
use Filament\Actions\ActionGroup;

ActionGroup::make([
    ActionGroup::make([
        // Array of actions
    ])->dropdown(false),
    // Array of actions
])

dropdown(false) 方法会将这些操作放入父级下拉菜单中,而不是新建嵌套下拉菜单。

TIP

dropdown() 方法也接受一个函数来动态计算值。你可以将各种实用工具作为参数注入该函数。

带分隔线的嵌套操作组带分隔线的嵌套操作组

设置下拉菜单宽度

可以使用 dropdownWidth() 方法设置下拉菜单宽度。选项对应 Tailwind 的 max-width 比例。可用选项为 ExtraSmallSmallMediumLargeExtraLargeTwoExtraLargeThreeExtraLargeFourExtraLargeFiveExtraLargeSixExtraLargeSevenExtraLarge

php
use Filament\Actions\ActionGroup;
use Filament\Support\Enums\Width;

ActionGroup::make([
    // Array of actions
])
    ->dropdownWidth(Width::ExtraSmall)
自定义下拉宽度的操作组自定义下拉宽度的操作组

TIP

dropdownWidth() 方法也接受一个函数来动态计算值。你可以将各种实用工具作为参数注入该函数。

控制下拉菜单偏移

你可以使用 dropdownOffset() 方法控制下拉菜单的偏移量,默认偏移为 8

php
use Filament\Actions\ActionGroup;

ActionGroup::make([
    // Array of actions
])
    ->dropdownOffset(16)

TIP

dropdownOffset() 方法也接受一个函数来动态计算值。你可以将各种实用工具作为参数注入该函数。

控制下拉菜单最大高度

可以使用 maxHeight() 方法为下拉内容设置最大高度,以便滚动。你可以传入一个 CSS 长度值

php
use Filament\Actions\ActionGroup;

ActionGroup::make([
    // Array of actions
])
    ->maxHeight('400px')

TIP

maxHeight() 方法也接受一个函数来动态计算值。你可以将各种实用工具作为参数注入该函数。