old-hotel-new/app/Admin/Controllers/OldmenController.php

107 lines
5.1 KiB
PHP

<?php
namespace App\Admin\Controllers;
use App\Models\Keyword;
use Slowlyo\OwlAdmin\Renderers\Page;
use Slowlyo\OwlAdmin\Renderers\Form;
use Slowlyo\OwlAdmin\Renderers\TableColumn;
use Slowlyo\OwlAdmin\Renderers\TextControl;
use Slowlyo\OwlAdmin\Controllers\AdminController;
use App\Services\Admin\OldmenService;
/**
* @property OldmenService $service
*/
class OldmenController extends AdminController
{
protected string $serviceName = OldmenService::class;
protected string $pageTitle = '客人管理';
public function list(): Page
{
$crud = $this->baseCRUD()
->filterTogglable(false)
->headerToolbar([
$this->createButton(true, 'lg'),
...$this->baseHeaderToolBar(),
])
->filter(
$this->baseFilter()->body([
amisMake()->TextControl('name', '名称')->size('md'),
amisMake()->TextControl('card_no', '身份证')->size('md'),
amisMake()->TextControl('floor_name', '楼栋')->size('md'),
amisMake()->SelectControl('nurse_lv', '护理等级')->options(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->checkAll(true)->multiple(true)->size('md'),
amis('button')->label(__('admin.reset'))->actionType('clear-and-submit'),
amis('submit')->label(__('admin.search'))->level('primary'),
])->actions([])
)
->columns([
// TableColumn::make()->name('id')->label('ID')->sortable(),
TableColumn::make()->name('name')->label('姓名'),
TableColumn::make()->name('age')->label('年龄')->sortable(),
TableColumn::make()->name('card_no')->label('身份证')->copyable(true),
TableColumn::make()->name('floor_name')->label('楼栋'),
TableColumn::make()->name('nurse_lv')->type('mapping')->map(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->label('护理等级')->className('text-primary')->sortable(),
TableColumn::make()->name('client_name')->label('委托人'),
TableColumn::make()->name('client_phone')->label('委托人-手机号')->copyable(true),
TableColumn::make()->name('live_in_at')->label('入住时间')->type('datetime')->sortable(true),
TableColumn::make()->name('created_at')->label(__('admin.created_at'))->type('datetime')->sortable(true),
amisMake()->Operation()->label(__('admin.actions'))->buttons([
$this->rowEditButton(true, 'lg'),
$this->rowDeleteButton()
]),
]);
return $this->baseList($crud);
}
public function form(): Form
{
return $this->baseForm()->body([
amisMake()->FieldSetControl()->title('居住人信息')->collapsable(true)->body([
amisMake()->GroupControl()->body([
amisMake()->TextControl('name', '姓名')->required(true),
amisMake()->RadiosControl('sex', '性别')->options([
1=>'男',2=>'女'
])->required(true),
]),
amisMake()->GroupControl()->body([
amisMake()->TextControl('card_no', '身份证号码')->required(true),
amisMake()->DateControl('birthday', '出生日期')->format('YYYY-MM-DD')->required(true),
]),
amisMake()->InputCityControl('card_city_code', '地区选择')->placeholder('请选择城市地区')->searchable('true')->required(true),
amisMake()->GroupControl()->body([
amisMake()->TextControl('card_address', '详细地址')->required(true),
]),
amisMake()->GroupControl()->body([
amisMake()->TextControl('floor_name', '楼栋'),
amisMake()->TextControl('agreement_no', '协议号码'),
]),
amisMake()->RadiosControl('nurse_lv', '护理等级')->options(Keyword::getByParentKey('nurse_lv')->pluck('name', 'id'))->required(true)->disabledOn('data.id > 0'),
]),
amisMake()->FieldSetControl()->className('mt-10')->title('委托人信息')->collapsable(true)->body([
amisMake()->GroupControl()->body([
amisMake()->TextControl('client_name', '姓名')->required(true),
amisMake()->TextControl('client_phone', '手机号')->required(true),
]),
amisMake()->InputCityControl('client_city_code', '地区选择')->placeholder('请选择城市地区')->searchable('true')->required(true),
amisMake()->GroupControl()->body([
amisMake()->TextControl('client_address', '详细地址')->required(true),
]),
]),
]);
}
public function detail(): Form
{
return $this->baseDetail()->body([
TextControl::make()->static()->name('id')->label('ID'),
TextControl::make()->static()->name('created_at')->label(__('admin.created_at')),
TextControl::make()->static()->name('updated_at')->label(__('admin.updated_at'))
]);
}
}