digital-creative/resource-navigation-tab

将您的资源字段组织到标签页中。

v2.1.5 2023-11-14 05:48 UTC

README

Latest Version on Packagist Total Downloads License

将您的资源字段组织到标签页中。

安装

您可以通过composer安装此包

composer require digital-creative/resource-navigation-tab

基本用法

首先,将HasResourceNavigationTabTrait特性导入到您的资源中,并开始使用ResourceNavigationField对象对字段进行分组

use DigitalCreative\ResourceNavigationTab\HasResourceNavigationTabTrait;
use DigitalCreative\ResourceNavigationTab\ResourceNavigationField;

class ExampleNovaResource extends Resource {
 
    use HasResourceNavigationTabTrait;

    public function fields(NovaRequest $request): array
    {
        return [
            ResourceNavigationField::make('Information')
                ->fields([
                    Text::make('Name'),
                    Text::make('Age'),
                    HasMany::make('Hobbies'),
                ]),
            ResourceNavigationField::make('Activities')->fields([ ... ]),
            ResourceNavigationField::make('Social Interactions')->fields([ ... ]),
            ResourceNavigationField::make('Settings')->fields([ ... ]),
        ];
    }

}

一旦设置好,导航到您的资源详细视图,您应该会看到这张卡片

默认情况下,每个定义的卡片都会在所有标签页中显示,但您可以选择在选中特定标签页时显示哪个卡片

use DigitalCreative\ResourceNavigationTab\HasResourceNavigationTabTrait;
use DigitalCreative\ResourceNavigationTab\ResourceNavigationField;
use DigitalCreative\ResourceNavigationTab\CardMode;

class ExampleNovaResource extends Resource {

    use HasResourceNavigationTabTrait;
 
    public function fields(NovaRequest $request): array
    {
        return [
            ResourceNavigationField::make('Information'), // show all the available cards by default
            ResourceNavigationField::make('Activities')->withCards([ DailySalesCard::class, ClientProfileCard::class ]), // only show these cards when this tab is active
            ResourceNavigationField::make('Settings')->withoutCards(), // hide all cards when this tab is active
        ];
    }

    public function cards(NovaRequest $request): array
    {
        return [
            new ClientPerformanceCard(),
            new DailySalesCard(),
            new ClientProfileCard()
        ];
    }

}

⭐️ 表达您的支持

如果这个项目对您有帮助,请给一个⭐️!

您可能还喜欢的其他包

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件