reedware / nova-treeview
一个用于Nova侧边栏的treeview组件。
v1.0.0
2019-03-02 19:38 UTC
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2024-09-12 22:46:29 UTC
README
安装
使用composer安装此包。
composer require reedware/nova-treeview
此包使用自动发现,因此不需要您手动添加服务提供者。如果您选择手动添加,可以在服务提供者列表中包含以下类
\Reedware\NovaTreeview\TreeviewServiceProvider::class
使用方法
此包创建了一个新的 <treeview> Vue组件,可以在您的视图中使用。在核心上,<treeview> 组件可以用来通过点击相应的标签来可选地切换某种菜单的显示。在实践中,建议在Nova的侧边栏中使用。
基本语法
以下是基本语法
<treeview tag="div" class="" toggle-tag="h3" toggle-class="flex items-center cursor-pointer"> <template slot="label"> <!-- Some label --> </template> <template slot="menu"> <!-- Something to optionally display --> <template> </treeview>
示例:资源导航
以下是将treeview应用于资源导航时的样子
@if(count(Nova::availableResources(request())))
<treeview tag="div" toggle-tag="h3" toggle-class="cursor-pointer flex items-center font-normal dim text-white mb-6 text-base no-underline">
<template slot="label">
<svg class="sidebar-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<!-- Resources Label -->
</svg>
<span class="sidebar-label flex-1">{{ __('Resources') }}</span>
</template>
<template slot="menu">
@foreach($navigation as $group => $resources)
@if(count($groups) > 1)
<h4 class="ml-8 mb-4 text-xs text-white-50% uppercase tracking-wide">{{ $group }}</h4>
@endif
<ul class="list-reset mb-8">
@foreach($resources as $resource)
<li class="leading-tight mb-4 ml-8 text-sm">
<!-- Link to each Resource -->
</li>
@endforeach
</ul>
@endforeach
</template>
</treeview>
@endif
这将导致以下结果
通过点击“资源”标签,您将展开侧边栏的资源部分。只需记住,您可以在侧边栏的任何地方使用treeview(不一定是针对资源)。
示例:资源组
此外,您可以在treeview中嵌套treeview。以下是一个使用treeview折叠资源组的示例
@if(count(Nova::availableResources(request())))
<treeview tag="div" toggle-tag="h3" toggle-class="cursor-pointer flex items-center font-normal dim text-white mb-6 text-base no-underline">
<template slot="label">
<svg class="sidebar-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<!-- Resources Label -->
</svg>
<span class="sidebar-label flex-1">{{ __('Resources') }}</span>
</template>
<template slot="menu">
@foreach($navigation as $group => $resources)
@if(count($groups) > 1)
<treeview tag="div" toggle-tag="h4" toggle-class="cursor-pointer flex items-center ml-8 mb-4 text-xs text-white-50% dim uppercase tracking-wide">
<template slot="label">
<span class="flex-1">{{ $group }}</span>
</template>
<template slot="menu">
@endif
<ul class="list-reset mb-8">
@foreach($resources as $resource)
<li class="leading-tight mb-4 ml-8 text-sm">
<!-- Link to each Resource -->
</li>
@endforeach
</ul>
@if(count($groups) > 1)
</template>
</treeview>
@endif
@endforeach
</template>
</treeview>
@endif
这将导致以下结果

