From c1cc36d27a1c3f850b46b6d2620439ff2567d9de Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Tue, 20 Feb 2024 18:18:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=BA=E5=8F=A3=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/PersonController.php | 27 ++++++++++++++++ app/Traits/CustomActionTrait.php | 36 ++++++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/app/Admin/Controllers/PersonController.php b/app/Admin/Controllers/PersonController.php index beee0b1..e1a23ad 100644 --- a/app/Admin/Controllers/PersonController.php +++ b/app/Admin/Controllers/PersonController.php @@ -10,6 +10,11 @@ use App\Services\Admin\PersonService; use App\Traits\CustomActionTrait; use App\Models\Keyword; use App\Admin\Components; +use Slowlyo\OwlAdmin\Renderers\Drawer; +use Slowlyo\OwlAdmin\Renderers\Dialog; +use Slowlyo\OwlAdmin\Renderers\DrawerAction; +use Slowlyo\OwlAdmin\Renderers\DialogAction; +use Slowlyo\OwlAdmin\Renderers\LinkAction; /** * 人口管理 @@ -64,6 +69,7 @@ class PersonController extends AdminController amis()->TableColumn('now_address', __('admin.persons.now_address'))->copyable(), amisMake()->Operation()->label(__('admin.actions'))->buttons([ + $this->rowShowTypeButton('drawer', 'xl'), $this->rowEditTypeButton('drawer', '', '50%'), $this->rowDeleteButton(), ]) @@ -226,4 +232,25 @@ class PersonController extends AdminController ]), ]); } + + public function detail() + { + $form = amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal') + ->static(true)->actions([]) + ->body([ + amis()->FieldSetControl()->title('基本信息')->body([ + amis()->GroupControl()->body([ + Components::make()->cropImageControl('avatar', __('admin.persons.avatar')), + ]), + amis()->GroupControl()->body([ + amis()->TextControl('name', __('admin.persons.name'))->required(), + amis()->TextControl('used_name', __('admin.persons.used_name')), + ]), + ]), + ]); + + return amisMake()->Grid()->columns([ + amis()->Column()->body($form)->md(6) + ]); + } } \ No newline at end of file diff --git a/app/Traits/CustomActionTrait.php b/app/Traits/CustomActionTrait.php index ce91dbb..cb7b57e 100644 --- a/app/Traits/CustomActionTrait.php +++ b/app/Traits/CustomActionTrait.php @@ -96,4 +96,40 @@ trait CustomActionTrait return $button->label(__('admin.edit'))->icon('fa-regular fa-pen-to-square')->level('link'); } + + /** + * 行详情按钮 + * + * @param string $type + * @param string $size + * @param string $width + * + * @return DialogAction|DrawerAction|LinkAction + */ + protected function rowShowTypeButton(string $type = '', string $size = '', string $width = ''): DialogAction|DrawerAction|LinkAction + { + switch ($type) { + case 'drawer': + $drawer = Drawer::make()->title(__('admin.show'))->body($this->detail('$id'))->closeOnOutside(); + + if($width){ + $drawer->width($width); + }else{ + $drawer->size($size); + } + + $button = DrawerAction::make()->drawer($drawer); + break; + case 'dialog': + $button = DialogAction::make()->dialog( + Dialog::make()->title(__('admin.show'))->body($this->detail('$id'))->size($size) + ); + break; + default: + $button = LinkAction::make()->link($this->getShowPath()); + break; + } + + return $button->label(__('admin.show'))->icon('fa-regular fa-eye')->level('link'); + } } \ No newline at end of file