diff --git a/app/AdminAgent/Controllers/IndustryOrderController.php b/app/AdminAgent/Controllers/IndustryOrderController.php index a19a4c3..021ac3d 100644 --- a/app/AdminAgent/Controllers/IndustryOrderController.php +++ b/app/AdminAgent/Controllers/IndustryOrderController.php @@ -2,6 +2,7 @@ namespace App\AdminAgent\Controllers; +use App\AdminAgent\Extensions\Grid\SupplierShowQrcode; use App\AdminAgent\Repositories\IndustryOrder; use App\Common\OrderStatus; use App\Common\PayType; @@ -91,10 +92,13 @@ class IndustryOrderController extends AdminController $grid->column('paid_at'); $grid->column('verify_qrcode', '核销二维码') ->if(fn() => $this->verify_code) - ->then(function ($column) { + ->then(function (Grid\Column $column) { $verify_code = $this->id . '-' . $this->verify_code; $column->append(admin_url('industry_order/qrcode', $verify_code))->image('', 60, 60); - $column->append('
' . $verify_code); + $column->append('
' . $verify_code . '
'); + if (empty($this->show_qrcode)) { + $column->append((new SupplierShowQrcode)->setKey($this->id)); + } }) ->else() ->display(''); @@ -133,7 +137,7 @@ class IndustryOrderController extends AdminController $filename = $response->saveAs(storage_path('app/public/industry_verify_code'), $verify_code); //保存二维码 // $qrcode = Storage::disk('public')->url('industry_verify_code/' . $filename); //获取前端路径 header("Content-Type: " . $response->getHeaderLine('Content-Type')); - exit($response); //输出图片 + return $response; //输出图片 } } diff --git a/app/AdminAgent/Extensions/Grid/SupplierShowQrcode.php b/app/AdminAgent/Extensions/Grid/SupplierShowQrcode.php new file mode 100644 index 0000000..505a437 --- /dev/null +++ b/app/AdminAgent/Extensions/Grid/SupplierShowQrcode.php @@ -0,0 +1,45 @@ +appendHtmlAttribute('class', 'btn btn-sm btn-success'); + $this->defaultHtmlAttribute('href', 'javascript:;'); + + return "formatHtmlAttributes()}>{$this->title}"; + } + + public function handle() + { + IndustryOrder::where(['id' => $this->getKey(), 'agent_id' => Admin::user()->id])->update(['show_qrcode' => 1]); + return $this->response()->success('发送成功,供应商可以对该订单进行核销了'); + } + + public function confirm() + { + return ['确定要发送核销码到供应商商,允许供应商核销吗?', '']; + } +} diff --git a/app/AdminSupplier/Controllers/IndustryOrderController.php b/app/AdminSupplier/Controllers/IndustryOrderController.php index dbba950..c17f5c6 100644 --- a/app/AdminSupplier/Controllers/IndustryOrderController.php +++ b/app/AdminSupplier/Controllers/IndustryOrderController.php @@ -77,12 +77,18 @@ class IndustryOrderController extends AdminController $column->display(OrderStatus::array()[$this->status]); } }); - $grid->column('审核') + $grid->column('操作') //待审核 ->if(fn() => $this->audit_status == 0) ->then(function ($column) { $column->append((new IndustryOrderAudit(null, 1))->setKey($this->id))->append(' '); $column->append((new IndustryOrderAudit(null, 2))->setKey($this->id)); + }) + ->if(fn() => !empty($this->show_qrcode)) + ->then(function ($column) { + $verify_code = $this->id . '-' . $this->verify_code; + $column->append(admin_url('industry_order/qrcode', $verify_code))->image('', 60, 60); + $column->append('
' . $verify_code . '
'); }); $grid->column('paid_at')->width(100); // $grid->column('timeout'); @@ -95,7 +101,12 @@ class IndustryOrderController extends AdminController }); } - /** + public function qrcode() + { + return (new \App\AdminAgent\Controllers\IndustryOrderController)->qrcode(); + } + + /** * Make a show builder. * * @param mixed $id diff --git a/app/AdminSupplier/routes.php b/app/AdminSupplier/routes.php index ded2d1e..67bb67e 100644 --- a/app/AdminSupplier/routes.php +++ b/app/AdminSupplier/routes.php @@ -47,4 +47,6 @@ Route::group([ $router->any('workorder_item', 'WorkorderController@index'); $router->any('workorder_notice', 'WorkorderController@checkUnread'); + + $router->get('industry_order/qrcode/{verify_code}', 'IndustryOrderController@qrcode'); });