57 lines
1.2 KiB
PHP
57 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Actions\RowActions;
|
|
|
|
use Dcat\Admin\Grid\RowAction;
|
|
use App\Models\Order;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use App\Services\OrderService;
|
|
|
|
class OrderCancle extends RowAction
|
|
{
|
|
/**
|
|
* 标题
|
|
*
|
|
* @return string
|
|
*/
|
|
public function title()
|
|
{
|
|
return '取消订单';
|
|
}
|
|
|
|
/**
|
|
* 设置确认弹窗信息,如果返回空值,则不会弹出弹窗
|
|
*
|
|
* 允许返回字符串或数组类型
|
|
*
|
|
* @return array|string|void
|
|
*/
|
|
public function confirm()
|
|
{
|
|
return [
|
|
// 确认弹窗 title
|
|
$this->row->order_number,
|
|
// 确认弹窗 content
|
|
"您确定要取消该订单吗?",
|
|
];
|
|
}
|
|
|
|
/**
|
|
* 处理请求
|
|
*
|
|
* @param Request $request
|
|
*
|
|
* @return \Dcat\Admin\Actions\Response
|
|
*/
|
|
public function handle(Request $request)
|
|
{
|
|
// 获取当前行ID
|
|
$id = $this->getKey();
|
|
|
|
$order = Order::findOrFail($id);
|
|
(new OrderService())->cancleOrder($order);
|
|
// 返回响应结果并刷新页面
|
|
return $this->response()->success("取消成功")->refresh();
|
|
}
|
|
} |