<?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;
    }


}