From 495824eb8da84ef9a6cb665de688ba3e07329cee Mon Sep 17 00:00:00 2001 From: Jing Li Date: Tue, 26 Mar 2024 11:55:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=A8=E5=BA=97=E7=AE=A1=E7=90=86=E5=92=8C?= =?UTF-8?q?=E5=91=98=E5=B7=A5=E7=AE=A1=E7=90=86=E7=9B=B8=E5=85=B3=E6=9D=83?= =?UTF-8?q?=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Hr/EmployeeController.php | 13 +++--- .../Controllers/Store/StoreController.php | 10 +++-- app/Admin/routes.php | 22 ++++++++-- database/seeders/AdminPermissionSeeder.php | 43 ++++++++++++++++++- 4 files changed, 75 insertions(+), 13 deletions(-) diff --git a/app/Admin/Controllers/Hr/EmployeeController.php b/app/Admin/Controllers/Hr/EmployeeController.php index 016df9e..529896c 100644 --- a/app/Admin/Controllers/Hr/EmployeeController.php +++ b/app/Admin/Controllers/Hr/EmployeeController.php @@ -6,6 +6,7 @@ use App\Admin\Services\EmployeeService; use App\Enums\EmployeeStatus; use App\Models\Employee; use Illuminate\Http\Request; +use Slowlyo\OwlAdmin\Admin; use Slowlyo\OwlAdmin\Controllers\AdminController; use Slowlyo\OwlAdmin\Renderers\Form; use Slowlyo\OwlAdmin\Renderers\Page; @@ -19,9 +20,10 @@ class EmployeeController extends AdminController $crud = $this->baseCRUD() ->tableLayout('fixed') ->headerToolbar([ - $this->createButton(true), + $this->createButton(true)->visible(Admin::user()->can('admin.hr.employees.create')), ...$this->baseHeaderToolBar(), ]) + ->bulkActions([]) ->filter($this->baseFilter()->body([ amis()->GroupControl()->mode('horizontal')->body([ amisMake()->TextControl()->name('name')->label(__('employee.name'))->columnRatio(3)->clearable(), @@ -36,15 +38,16 @@ class EmployeeController extends AdminController amisMake()->TableColumn()->name('employee_status_text')->label(__('employee.employee_status'))->set('type', 'tag')->set('color', '${employee_status_color}'), amisMake()->TableColumn()->name('created_at')->label(__('employee.created_at')), $this->rowActions([ - $this->rowShowButton(), - $this->rowEditButton(true), - $this->rowDeleteButton(), + $this->rowShowButton()->visible(Admin::user()->can('admin.hr.employees.view')), + $this->rowEditButton(true)->visible(Admin::user()->can('admin.hr.employees.update')), + $this->rowDeleteButton()->visible(Admin::user()->can('admin.hr.employees.delete')), amisMake()->AjaxAction() ->label(__('employee.leave')) ->level('link') ->icon('fa fa-sign-out') ->confirmText(__('employee.leave_confirm')) - ->api('post:'.admin_url('hr/employees/${id}/leave')), + ->api('post:'.admin_url('hr/employees/${id}/leave')) + ->visible(Admin::user()->can('admin.hr.employees.leave')), ]), ]); diff --git a/app/Admin/Controllers/Store/StoreController.php b/app/Admin/Controllers/Store/StoreController.php index fe2bce7..9776812 100644 --- a/app/Admin/Controllers/Store/StoreController.php +++ b/app/Admin/Controllers/Store/StoreController.php @@ -3,6 +3,7 @@ namespace App\Admin\Controllers\Store; use App\Admin\Services\StoreService; +use Slowlyo\OwlAdmin\Admin; use Slowlyo\OwlAdmin\Controllers\AdminController; use Slowlyo\OwlAdmin\Renderers\Form; use Slowlyo\OwlAdmin\Renderers\Page; @@ -16,9 +17,10 @@ class StoreController extends AdminController $crud = $this->baseCRUD() ->tableLayout('fixed') ->headerToolbar([ - $this->createButton(), + $this->createButton()->visible(Admin::user()->can('admin.store.stores.create')), ...$this->baseHeaderToolBar(), ]) + ->bulkActions([]) ->filter($this->baseFilter()->body([ amis()->GroupControl()->mode('horizontal')->body([ amisMake()->TextControl()->name('title')->label(__('store.title'))->columnRatio(3)->clearable(), @@ -57,9 +59,9 @@ class StoreController extends AdminController amisMake()->TableColumn()->name('business_status_text')->label(__('store.business_status'))->set('type', 'tag')->set('color', '${business_status_color}'), amisMake()->TableColumn()->name('created_at')->label(__('store.created_at')), $this->rowActions([ - $this->rowShowButton(), - $this->rowEditButton(), - $this->rowDeleteButton(), + $this->rowShowButton()->visible(Admin::user()->can('admin.store.stores.view')), + $this->rowEditButton()->visible(Admin::user()->can('admin.store.stores.update')), + $this->rowDeleteButton()->visible(Admin::user()->can('admin.store.stores.delete')), ]), ]); diff --git a/app/Admin/routes.php b/app/Admin/routes.php index acd8661..0b683f1 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -1,5 +1,7 @@ resource('store/stores', \App\Admin\Controllers\Store\StoreController::class); + $router->group([ + 'prefix' => 'store', + 'as' => 'store.', + ], function (Router $router) { + // 门店管理 + $router->resource('stores', StoreController::class); + }); + /* |-------------------------------------------------------------------------- | 人事管理 |-------------------------------------------------------------------------- */ - $router->resource('hr/employees', \App\Admin\Controllers\Hr\EmployeeController::class); - $router->post('hr/employees/{id}/leave', [\App\Admin\Controllers\Hr\EmployeeController::class, 'leave']); + $router->group([ + 'prefix' => 'hr', + 'as' => 'hr.', + ], function (Router $router) { + // 人事管理 + $router->resource('employees', EmployeeController::class); + $router->post('employees/{id}/leave', [EmployeeController::class, 'leave'])->name('employees.leave'); + }); + /* |-------------------------------------------------------------------------- diff --git a/database/seeders/AdminPermissionSeeder.php b/database/seeders/AdminPermissionSeeder.php index f2819a7..fff6bc6 100644 --- a/database/seeders/AdminPermissionSeeder.php +++ b/database/seeders/AdminPermissionSeeder.php @@ -28,6 +28,47 @@ class AdminPermissionSeeder extends Seeder 'children' => [], ], + /* + |-------------------------------------------------------------------------- + | 门店管理 + |-------------------------------------------------------------------------- + */ + 'store' => [ + 'name' => '门店管理', + 'icon' => 'material-symbols:store-rounded', + 'uri' => '/store', + 'children' => [ + 'stores' => [ + 'name' => '门店管理', + 'icon' => 'material-symbols:store-rounded', + 'uri' => '/store/stores', + 'resource' => true, + ], + ], + ], + + /* + |-------------------------------------------------------------------------- + | 人事管理 + |-------------------------------------------------------------------------- + */ + 'hr' => [ + 'name' => '人事管理', + 'icon' => 'flowbite:user-settings-solid', + 'uri' => '/hr', + 'children' => [ + 'employees' => [ + 'name' => '员工管理', + 'icon' => 'mdi:user-tie', + 'uri' => '/hr/employees', + 'resource' => true, + 'children' => [ + 'leave' => '离职', + ], + ], + ], + ], + /* |-------------------------------------------------------------------------- | 系统管理 @@ -36,7 +77,7 @@ class AdminPermissionSeeder extends Seeder 'system' => [ 'name' => '系统管理', 'icon' => 'material-symbols:settings-outline', - 'uri' => '', + 'uri' => '/system', 'children' => [ 'admin_users' => [ 'name' => '账号管理',