degecko/nova-filters-summary

一个 Laravel Nova 卡片,显示资源或透镜的活跃过滤器的摘要。

安装: 96,376

依赖者: 0

建议者: 0

安全: 0

星级: 20

关注者: 5

分支: 6

开放问题: 4

语言:Vue

2.0.3 2022-11-03 12:21 UTC

This package is auto-updated.

Last update: 2024-08-30 01:28:56 UTC


README

一个用于 Laravel Nova 的自定义卡片组件,用于显示特定资源或透镜的活跃过滤器摘要。

默认预览

堆叠预览

安装

使用 Composer

对于 Nova 4,使用当前版本。对于旧版本,使用此包的 v1。

Nova v4

composer require degecko/nova-filters-summary

Nova v1-3

composer require degecko/nova-filters-summary:^1.1.0

使用方法

将其添加到 Nova 资源或透镜内部返回的 cards 方法数组中。

<?php

namespace App\Nova;

use Degecko\NovaFiltersSummary\FiltersSummary;
use Illuminate\Http\Request;

class Product extends Resource
{
    // Your setup.
    
    public function cards(Request $request)
    {
        return [
            FiltersSummary::make(),
        ];
    }
}

堆叠

要使用堆叠模板,请使用 FiltersSummary::make()->stacked()

翻译

要翻译使用的三个单词:活跃、过滤和过滤器,只需使用 Laravel $lang.json 文件进行翻译。

自定义过滤摘要解析器

该插件知道如何显示默认 Nova 过滤器的信息,但您可能需要使用自定义过滤器。在这种情况下,您可能需要为过滤摘要创建自定义模板。

例如:我有一个允许用户选择特定列的数值范围的自定义过滤器。您可以将其用于选择价格在 5 到 20 美元之间的产品。

现在,因为这个过滤器映射到一个像这样的对象

{ from: 5, to: 20 }

摘要将简单地列出其值,这并不很美观。

因此,如果您想自定义它,您需要为该过滤器创建一个自定义摘要解析器。

设置很简单

  • Nova.filtersSummaryResolvers 内部定义一个与您的过滤器组件同名的函数
  • 该函数将接收过滤器本身作为参数
  • 返回过滤摘要

我通常在过滤器的 index.js 文件内创建定义,看起来像这样

Nova.booting((Vue, router, store) => {
    Vue.component('numeric-range-filter', require('./NumericFilter').default)

    Nova.filtersSummaryResolvers['numeric-range-filter'] = filter => {
        return [filter.currentValue.from || '<em>•</em>', filter.currentValue.to || '<em>•</em>'].join(' — ')
    }
})

作者

Buy Me A Coffee