main
Jing Li 2024-03-22 13:21:15 +08:00
parent 5d4cd329bf
commit 7df41cc799
4 changed files with 119 additions and 16 deletions

View File

@ -0,0 +1,65 @@
<?php
namespace App\Admin\Controllers\Hr;
use Slowlyo\OwlAdmin\Controllers\AdminController;
use App\Services\Admin\EmployeeService;
use Slowlyo\OwlAdmin\Renderers\Page;
use Slowlyo\OwlAdmin\Renderers\Form;
use App\Enums\EmployeeStatus;
class EmployeeController extends AdminController
{
protected string $serviceName = EmployeeService::class;
public function list(): Page
{
$crud = $this->baseCRUD()
->tableLayout('fixed')
->headerToolbar([
$this->createButton(true),
...$this->baseHeaderToolBar(),
])
->filter($this->baseFilter()->body([
amis()->GroupControl()->mode('horizontal')->body([
amisMake()->TextControl()->name('name')->label(__('employee.name'))->columnRatio(3)->clearable(),
amisMake()->TextControl()->name('phone')->label(__('employee.phone'))->columnRatio(3)->clearable(),
amisMake()->SelectControl()->name('employee_status')->label(__('employee.employee_status'))->columnRatio(3)->clearable()->options(EmployeeStatus::options()),
]),
]))
->columns([
amisMake()->TableColumn()->name('id')->label(__('employee.id')),
amisMake()->TableColumn()->name('name')->label(__('employee.name')),
amisMake()->TableColumn()->name('phone')->label(__('employee.phone')),
amisMake()->TableColumn()->name('employee_status_text')->label(__('employee.employee_status')),
amisMake()->TableColumn()->name('created_at')->label(__('employee.created_at')),
$this->rowActions([
$this->rowShowButton(),
$this->rowEditButton(true),
$this->rowDeleteButton(),
]),
]);
return $this->baseList($crud);
}
public function form($edit): Form
{
return $this->baseForm()->title('')->body([
amisMake()->TextControl()->name('name')->label(__('employee.name'))->required(),
amisMake()->TextControl()->name('phone')->label(__('employee.phone'))->required(),
amisMake()->TextControl()->name('username')->label(__('admin.username'))->value('${admin_user.username}')->required(!$edit),
amisMake()->TextControl()->name('password')->set('type', 'input-password')->label(__('admin.password'))->required(!$edit),
amisMake()->TextControl()->name('confirm_password')->set('type', 'input-password')->label(__('admin.confirm_password'))->required(!$edit),
]);
}
public function detail(): Form
{
return $this->baseDetail()->title('')->body(amisMake()->Property()->items([
['label' => __('employee.name'), 'content' => '${name}'],
['label' => __('employee.phone'), 'content' => '${phone}'],
]));
}
}

View File

@ -0,0 +1,9 @@
<?php
namespace App\Admin\Controllers\Plan;
use Slowlyo\OwlAdmin\Controllers\AdminController;
class PlanController extends AdminController
{
}

View File

@ -0,0 +1,9 @@
<?php
namespace App\Admin\Controllers\Store;
use Slowlyo\OwlAdmin\Controllers\AdminController;
class StoreController extends AdminController
{
}

View File

@ -4,29 +4,46 @@ use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Route;
Route::group([
'domain' => config('admin.route.domain'),
'prefix' => config('admin.route.prefix'),
'domain' => config('admin.route.domain'),
'prefix' => config('admin.route.prefix'),
'middleware' => config('admin.route.middleware'),
'as' => 'admin.',
], function (Router $router) {
$router->group([
'prefix' => 'api',
], function (Router $router) {
$router->get('keywords/tree-list', '\App\Admin\Controllers\KeywordController@getTreeList')->name('api.keywords.tree-list');
});
$router->post('login', [App\Admin\Controllers\AuthController::class, 'login']);
$router->resource('index', \App\Admin\Controllers\HomeController::class);
$router->post('login', [App\Admin\Controllers\AuthController::class, 'login']);
/*
|--------------------------------------------------------------------------
| 门店管理
|--------------------------------------------------------------------------
*/
$router->resource('store/stores', \App\Admin\Controllers\Store\StoreController::class);
/*
|--------------------------------------------------------------------------
| 人事管理
|--------------------------------------------------------------------------
*/
$router->resource('hr/employees', \App\Admin\Controllers\Hr\EmployeeController::class);
/*
|--------------------------------------------------------------------------
| 任务计划
|--------------------------------------------------------------------------
*/
$router->resource('plan/plans', \App\Admin\Controllers\Plan\PlanController::class);
/*
|--------------------------------------------------------------------------
| 系统管理
|--------------------------------------------------------------------------
*/
$router->resource('system/admin_users', App\Admin\Controllers\AdminUserController::class);
$router->post('quick-edit/admin_users/{admin_user}',[\App\Admin\Controllers\AdminUserController::class, 'update']);
$router->get('system/admin_roles', [App\Admin\Controllers\AdminRoleController::class, 'index']);
$router->get('system/admin_roles', [App\Admin\Controllers\AdminRoleController::class, 'index'])->name('admin_roles.index');
$router->resource('system/settings', \App\Admin\Controllers\SettingController::class);
$router->resource('system/keywords', \App\Admin\Controllers\KeywordController::class);
$router->post('quick-edit/admin_users/{admin_user}', [\App\Admin\Controllers\AdminUserController::class, 'update']);
$router->resource('articles', \App\Admin\Controllers\ArticleController::class);
@ -41,6 +58,9 @@ Route::group([
$router->post('save_chunk_upload_file', [\App\Admin\Controllers\IndexController::class, 'saveChunk']);
$router->post('finish_chunk_upload_file', [\App\Admin\Controllers\IndexController::class, 'finishChunk']);
// 员工管理
$router->resource('employees', \App\Admin\Controllers\EmployeeController::class);
$router->group([
'prefix' => 'api',
], function (Router $router) {
$router->get('keywords/tree-list', [\App\Admin\Controllers\KeywordController::class, 'getTreeList'])->name('api.keywords.tree-list');
});
});