<?php namespace App\Admin\Actions\Tools; use App\Admin\Repositories\DistInquiry; use Dcat\Admin\Grid\Tools\AbstractTool; use Dcat\Admin\Widgets\Modal; use Illuminate\Http\Request; class InquiryHandle extends AbstractTool { protected $style = 'btn btn-success'; /** * 按钮文本 * * @return string|void */ public function title() { return admin_trans_label('process'); } /** * 确认弹窗,如果不需要则返回空即可 * * @return array|string|void */ public function confirm() { // 只显示标题 // return '您确定要发送新的提醒消息吗?'; // 显示标题和内容 return ['Are you sure you want to process these orders?', '']; } /** * 处理请求 * 如果你的类中包含了此方法,则点击按钮后会自动向后端发起ajax请求,并且会通过此方法处理请求逻辑 * * @param Request $request */ public function handle(Request $request) { $keys = $request->input('_key'); if (is_array($keys) && count($keys) > 0) { $result = DistInquiry::distSetStatusProcessed($keys); if ($result === false) { return $this->response()->error('Failed to process!')->refresh(); } return $this->response()->success('Success')->refresh(); } else { return $this->response()->error('No data selected!')->refresh(); } // 你的代码逻辑 } public function actionScript(){ $warning = __('No data selected!'); return <<<JS function (data, target, action) { var key = {$this->getSelectedKeysScript()} if (key.length === 0) { Dcat.warning('{$warning}'); return false; } // 设置主键为复选框选中的行ID数组 action.options.key = key; } JS; } public function getSelectedKeysScript() { return "Dcat.grid.selected('{$this->parent->getName()}')"; } }