generated from liutk/owl-admin-base
64 lines
2.4 KiB
PHP
64 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers\Hr;
|
|
|
|
use App\Admin\Controllers\AdminController;
|
|
use App\Admin\Services\EmployeeRestService;
|
|
use App\Enums\EmployeeStatus;
|
|
use Slowlyo\OwlAdmin\Renderers\Form;
|
|
use Slowlyo\OwlAdmin\Renderers\Page;
|
|
|
|
/**
|
|
* 休息管理
|
|
*/
|
|
class RestController extends AdminController
|
|
{
|
|
protected string $serviceName = EmployeeRestService::class;
|
|
|
|
public function list(): Page
|
|
{
|
|
$crud = $this->baseCRUD()
|
|
->tableLayout('fixed')
|
|
->headerToolbar([
|
|
$this->createButton(true, 'lg'),
|
|
...$this->baseHeaderToolBar(),
|
|
])
|
|
->bulkActions([])
|
|
->filter($this->baseFilter()->body([
|
|
amis()->GroupControl()->mode('horizontal')->body([
|
|
amisMake()->TextControl()->name('employee_name')->label(__('employee_sign.employee_id'))->placeholder(__('employee.name').'/'.__('employee.phone'))->columnRatio(3)->clearable(),
|
|
amisMake()->DateRangeControl()->name('date_range')->label(__('employee_sign.date'))->columnRatio(3)->clearable(),
|
|
]),
|
|
]))
|
|
->columns([
|
|
amisMake()->TableColumn()->name('employee.name')->label(__('employee.name')),
|
|
// amisMake()->TableColumn()->name('employee.phone')->label(__('employee.phone')),
|
|
amisMake()->TableColumn()->name('date')->label(__('employee_sign.date')),
|
|
$this->rowActions([
|
|
$this->rowDeleteButton(),
|
|
]),
|
|
]);
|
|
|
|
return $this->baseList($crud);
|
|
}
|
|
|
|
public function form($edit): Form
|
|
{
|
|
return $this->baseForm()->title('')->body([
|
|
amisMake()->SelectControl()->name('employees')->label(__('employee_sign.employee_id'))
|
|
->source(admin_url('api/employees?_all=1&employee_status='.EmployeeStatus::Online->value))
|
|
->labelField('name')
|
|
->valueField('id')
|
|
->searchable()
|
|
->multiple()
|
|
->joinValues(false)
|
|
->extractValue()
|
|
->required(),
|
|
amisMake()->ArrayControl()->name('dates')->label(__('employee_sign.date'))->items([
|
|
amisMake()->DateControl()->name('date')->label('')->valueFormat('YYYY-MM-DD'),
|
|
])->required(),
|
|
// amisMake()->DateControl()->name('dates')->label(__('employee_sign.date'))->set('embed', true)->required(),
|
|
]);
|
|
}
|
|
}
|