store-manage/app/Admin/Controllers/Hr/RestController.php

65 lines
2.6 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\Admin;
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->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.rests.create')),
...$this->baseHeaderToolBar(),
])
->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(),
]),
]))
->filterDefaultVisible()
->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()->visible(Admin::user()->can('admin.hr.rests.delete')),
]),
]);
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(),
]);
}
}