<?php namespace App\Admin\Actions; use App\Models\Order as OrderModel; use Dcat\Admin\Grid\BatchAction; use Dcat\Admin\Grid\Tools\AbstractTool; use Illuminate\Http\Request; class OrderReverseAuditAction extends BatchAction { /** * 按钮样式定义,默认 btn btn-white waves-effect * * @var string */ protected $style = 'btn btn-white waves-effect'; /** * 按钮文本 * * @return string|void */ public function title() { return '反审核'; } public function html() { $class = $this->getElementClass(); return '<a style="cursor: pointer;" class="'.$class. ' btn btn-primary" href="javascript:void(0)">反审核</a>'; } /** * 确认弹窗,如果不需要则返回空即可 * * @return array|string|void */ public function confirm() { // 只显示标题 // return '您确定要发送新的提醒消息吗?'; // 显示标题和内容 return ['是否确认反审核?']; } /** * 处理请求 * 如果你的类中包含了此方法,则点击按钮后会自动向后端发起ajax请求,并且会通过此方法处理请求逻辑 * * @param Request $request */ public function handle(Request $request) { // 你的代码逻辑 $orderIdArr = $this->getKey(); OrderModel::reverseAuditOrder($orderIdArr); return $this->response()->success('反审核成功')->refresh(); } /** * 设置请求参数 * * @return array|void */ public function parameters() { return [ ]; } /** * 设置动作发起请求前的回调函数,返回false可以中断请求. * * @return string */ 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; } }