From d9d9a95f55079e2bdfc16eeaed0a84c8c3bdd94d Mon Sep 17 00:00:00 2001
From: vine_liutk <961510893@qq.com>
Date: Wed, 19 Jan 2022 15:10:14 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=90=8E=E5=8F=B0=E6=A0=87?=
=?UTF-8?q?=E8=AE=B0=E7=AE=A1=E7=90=86=E5=91=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/Admin/Actions/Grid/DealerSignManager.php | 63 +++++++++++++++++++
.../Actions/Grid/DealerUnsignManager.php | 63 +++++++++++++++++++
app/Admin/Controllers/DealerController.php | 10 ++-
3 files changed, 135 insertions(+), 1 deletion(-)
create mode 100644 app/Admin/Actions/Grid/DealerSignManager.php
create mode 100644 app/Admin/Actions/Grid/DealerUnsignManager.php
diff --git a/app/Admin/Actions/Grid/DealerSignManager.php b/app/Admin/Actions/Grid/DealerSignManager.php
new file mode 100644
index 00000000..d3ceb6fb
--- /dev/null
+++ b/app/Admin/Actions/Grid/DealerSignManager.php
@@ -0,0 +1,63 @@
+title) {
+ return $this->title;
+ }
+ return ' 标记管理员 ';
+ }
+
+ /**
+ * @param Model|Authenticatable|HasPermissions|null $user
+ *
+ * @return bool
+ */
+ protected function authorize($user): bool
+ {
+ return $user->can('dcat.admin.dealers.sign_manager');
+ }
+
+ /**
+ * Handle the action request.
+ *
+ * @param Request $request
+ *
+ * @return Response
+ */
+ public function handle(Request $request)
+ {
+ $dealer = Dealer::findOrFail($this->getKey());
+ try {
+ DB::beginTransaction();
+ $dealer->update([
+ 'is_manager'=>true,
+ ]);
+ DB::commit();
+ } catch (Throwable $th) {
+ DB::rollBack();
+ report($th);
+ return $this->response()->error('操作失败,'.$th->getMessage())->refresh();
+ }
+
+ return $this->response()->success('操作成功')->refresh();
+ }
+
+ /**
+ * @return string|array|void
+ */
+ public function confirm()
+ {
+ return ['确认标记当前用户为管理者?'];
+ }
+}
diff --git a/app/Admin/Actions/Grid/DealerUnsignManager.php b/app/Admin/Actions/Grid/DealerUnsignManager.php
new file mode 100644
index 00000000..61a3a7c4
--- /dev/null
+++ b/app/Admin/Actions/Grid/DealerUnsignManager.php
@@ -0,0 +1,63 @@
+title) {
+ return $this->title;
+ }
+ return ' 取消管理员 ';
+ }
+
+ /**
+ * @param Model|Authenticatable|HasPermissions|null $user
+ *
+ * @return bool
+ */
+ protected function authorize($user): bool
+ {
+ return $user->can('dcat.admin.dealers.unsign_manager');
+ }
+
+ /**
+ * Handle the action request.
+ *
+ * @param Request $request
+ *
+ * @return Response
+ */
+ public function handle(Request $request)
+ {
+ $dealer = Dealer::findOrFail($this->getKey());
+ try {
+ DB::beginTransaction();
+ $dealer->update([
+ 'is_manager'=>false,
+ ]);
+ DB::commit();
+ } catch (Throwable $th) {
+ DB::rollBack();
+ report($th);
+ return $this->response()->error('操作失败,'.$th->getMessage())->refresh();
+ }
+
+ return $this->response()->success('操作成功')->refresh();
+ }
+
+ /**
+ * @return string|array|void
+ */
+ public function confirm()
+ {
+ return ['确认取消标记当前用户为管理者?'];
+ }
+}
diff --git a/app/Admin/Controllers/DealerController.php b/app/Admin/Controllers/DealerController.php
index a83a9272..081ab552 100644
--- a/app/Admin/Controllers/DealerController.php
+++ b/app/Admin/Controllers/DealerController.php
@@ -3,6 +3,8 @@
namespace App\Admin\Controllers;
use App\Admin\Actions\Grid\DealerEditLvl;
+use App\Admin\Actions\Grid\DealerSignManager;
+use App\Admin\Actions\Grid\DealerUnsignManager;
use App\Admin\Repositories\Dealer;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
@@ -30,7 +32,7 @@ class DealerController extends AdminController
return $this->lvl_text;
});
$grid->column('is_sale');
- $grid->column('is_manager');
+ $grid->column('is_manager')->bool();
// $grid->column('pay_info');
$grid->column('created_at')->sortable();
@@ -38,6 +40,12 @@ class DealerController extends AdminController
if (Admin::user()->can('dcat.admin.dealers.edit_lvl')) {
$actions->append(new DealerEditLvl());
}
+ if (!$actions->row->is_manager && Admin::user()->can('dcat.admin.dealers.sign_manager')) {
+ $actions->append(new DealerSignManager());
+ }
+ if ($actions->row->is_manager && Admin::user()->can('dcat.admin.dealers.sign_manager')) {
+ $actions->append(new DealerUnsignManager());
+ }
});
$grid->filter(function (Grid\Filter $filter) {