门店管理和员工管理相关权限

main
Jing Li 2024-03-26 11:55:13 +08:00
parent 49d45db03c
commit 495824eb8d
4 changed files with 75 additions and 13 deletions

View File

@ -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')),
]),
]);

View File

@ -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')),
]),
]);

View File

@ -1,5 +1,7 @@
<?php
use App\Admin\Controllers\Hr\EmployeeController;
use App\Admin\Controllers\Store\StoreController;
use App\Admin\Controllers\System\AdminMenuController;
use App\Admin\Controllers\System\AdminPermissionController;
use App\Admin\Controllers\System\AdminRoleController;
@ -23,15 +25,29 @@ Route::group([
| 门店管理
|--------------------------------------------------------------------------
*/
$router->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');
});
/*
|--------------------------------------------------------------------------

View File

@ -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' => '账号管理',