批量操作
批量操作需要设置Grid多选模式
定义批量操作
$grid->batchActions(function (Grid\BatchActions $batchActions) {
$batchActions->hideDeleteAction();//隐藏批量删除操作
$batchActions->add(...);//添加批量操作
});
获取已选择的KEYS
注意:获取原理为前段字符串替换,后端无法获取具体值
$batchActions->getKeys();
可以在设置url
时使用
$url = $batchActions->resource . '/' . $batchActions->getKeys();
隐藏批量删除操作
$batchActions->hideDeleteAction();
添加自定义批量操作
$batchActions->add(BatchAction::make("加入活动"));
操作组件
系统默认提供的操作组件
BatchAction
创建组件
BatchAction::make("ActionName");
创建组件
BatchAction::make("ActionName");
设置操作确认提示信息
BatchAction::make("ActionName")->message("确认操作提示信息");
设置操作uri
BatchAction::make("ActionName")->uri("WeChat/manage/".$batchActions->getKeys());
异步请求示例
$url = route("r_name",["keys"=>$batchActions->getKeys()]);
BatchAction::make("ActionName")->($url);
设置操作事件类型
BatchAction::HANDLER_REQUEST //异步请求
BatchAction::HANDLER_ROUTE //vue路由跳转
BatchAction::HANDLER_LINK //href跳转
BatchAction::make("ActionName")->handler(BatchAction::HANDLER_REQUEST);
弹出对话框
BatchAction::make("ActionName")->dialog(function(Dialog $dialog){
});
可以在设置dialog
里的BaseForm
的action
时使用
$grid->batchActions(function (BatchActions $batchActions) {
$batchActions->add(BatchAction::make("加入活动")->dialog(function (Dialog $dialog) use ($batchActions) {
$dialog->slot(function (Content $content) use ($batchActions) {
$form = new BaseForm();
$actionUrl = route('activityJoin', ['keys' => $batchActions->getKeys()]);
$form->action($actionUrl);
$form->item('activity_id', '活动');
$content->row($form);
});
}));
});