一:Dcat数据表格之工具栏
工具栏
工具按钮
在 model-grid 的头部默认有批量删除和刷新两个操作工具,如果有更多的操作需求,系统提供了自定义工具的功能,下面的示例添加一个性别分类选择的按钮组工具。
设置工具栏按钮样式
Since
v1.4.5
从这个 v1.4.5 工具栏按钮默认显示 outline 模式,效果如下
用法

$grid->toolsWithOutline();
// 禁止
$grid->toolsWithOutline(false);
代码如下:

样式如下:


自定义工具栏按钮
先定义工具类 app/Admin/Extensions/Tools/UserGender.php 继承工具类的基类 Dcat\Admin\Grid\Tools\AbstractTool:

视图 admin.tools.gender 文件为 resources/views/admin/tools/gender.blade.php

在 Grid 引入这个工具:

可以参考上面的方式来添加自己的工具。
进阶用法
如果你的工具按钮需要与后端 API 进行交互,则可以参考以下方式定义:
AbstractTool类是属于Dcat\Admin\Actions\Action的子类,本质也是动作类的一种,更详细用法请参考动作类基本使用。
上面注意一点
使用
use App\Admin\Grid\Tools\SendMessage;
$grid->tools(new SendMessage());
样式如下:
添加工具类
Grid::tools 方法允许传入 string,array, AbstractTool 和 闭包等类型参数,下面是演示。

批量操作
禁用批量删除
系统默认开启了批量删除操作的功能,如果要禁用批量删除操作:


自定义批量操作
下面通过扩展一个对文章批量发布的功能来演示自定义批量操作的功能:
先定义操作类 app/Admin/Extensions/Tools/ReleasePost.php,继承 Dcat\Admin\Grid\BatchAction:
BatchAction类是属于Dcat\Admin\Actions\Action的子类,本质也是动作类的一种,更详细用法请参考动作类基本使用。
看代码的实现,通过 click 操作发送一个 post 请求,把选中的行数据
id通过数组的形式传给后端接口,后端接口拿到id列表和要修改的状态来更新数据,然后前端刷新页面 (pjax reload),并弹出toastr提示操作成功。在
model-grid中加入这个批量操作功能:
页面样式如下









浙公网安备 33010602011771号