generated from liutk/owl-admin-base
79 lines
3.8 KiB
PHP
79 lines
3.8 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use Slowlyo\OwlAdmin\Admin;
|
|
use Slowlyo\OwlAdmin\Renderers\Page;
|
|
use Slowlyo\OwlAdmin\Renderers\Form;
|
|
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
|
use App\Services\Admin\PersonService;
|
|
use App\Traits\CustomActionTrait;
|
|
use App\Models\Keyword;
|
|
|
|
/**
|
|
* 人口管理
|
|
*
|
|
* @property PersonService $service
|
|
*/
|
|
class PersonController extends AdminController
|
|
{
|
|
use CustomActionTrait;
|
|
|
|
protected string $serviceName = PersonService::class;
|
|
|
|
public function list(): Page
|
|
{
|
|
$crud = $this->baseCRUD()->tableLayout('fixed')
|
|
->headerToolbar([
|
|
$this->createTypeButton('drawer', 'xl'),
|
|
amis('reload')->align('right'),
|
|
amis('filter-toggler')->align('right'),
|
|
])
|
|
->filter($this->baseFilter()->labelWidth('80px')->body([
|
|
amis()->GroupControl()->mode('horizontal')->body([
|
|
amis()->SelectControl('organized_body', __('admin.persons.organized_body'))->options(Keyword::where('parent_key', 'organized_body')->pluck('name', 'id')->toArray())
|
|
->columnRatio(3)->clearable(true),
|
|
amis()->NestedSelectControl('house_building', __('admin.persons.house_building'))->source(admin_url('api/keywords/tree-list?parent_name=housing_estate&has_owner=0'))->labelField('name')->valueField('id')->columnRatio(6)->clearable(true),
|
|
// amis()->TextControl('master.name', __('admin.persons.master_name'))->placeholder(__('admin.persons.master_name')),
|
|
// amis()->TextControl('name', __('admin.persons.name'))->placeholder(__('admin.persons.name')),
|
|
// amis()->TextControl('idcard', __('admin.persons.idcard'))->placeholder(__('admin.persons.idcard')),
|
|
]),
|
|
amis()->GroupControl()->mode('horizontal')->body([
|
|
amis()->SelectControl('state', __('admin.persons.state'))->options([
|
|
'1'=>'实有人口','2'=>'已死亡','3'=>'已迁出'
|
|
])->columnRatio(3)->clearable(true),
|
|
amis()->DateRangeControl()->label(__('admin.persons.birthday'))->name('birthday')->valueFormat('YYYY-MM-DD')->columnRatio(6),
|
|
]),
|
|
]))
|
|
->columns([
|
|
amis()->TableColumn('domicile_code', __('admin.persons.domicile_code'))->width('120px')->copyable(),
|
|
amis()->TableColumn('name', __('admin.persons.name'))->width('150px')->copyable()->searchable(),
|
|
amis()->TableColumn('master_connect', __('admin.persons.master_connect'))->width('100px'),
|
|
amis()->TableColumn('master.name', __('admin.persons.master_name'))->width('150px')->copyable()->searchable(),
|
|
amis()->TableColumn('idcard', __('admin.persons.idcard'))->copyable()->searchable(),
|
|
amis()->TableColumn('gender', __('admin.persons.gender'))->type('mapping')->map([
|
|
"1"=>"<span class='label label-info'>男</span>",
|
|
"2"=>"<span class='label label-success'>女</span>",
|
|
"*"=> '其他:${gender}'
|
|
])->filterable(['options'=>[
|
|
['label'=>'男', 'value'=>1], ['label'=> '女', 'value'=>2]
|
|
]]),
|
|
amis()->TableColumn('birthday', __('admin.persons.birthday')),
|
|
amis()->TableColumn('age', __('admin.persons.age')),
|
|
amis()->TableColumn('now_address', __('admin.persons.now_address'))->copyable(),
|
|
|
|
amisMake()->Operation()->label(__('admin.actions'))->buttons([
|
|
$this->rowEditTypeButton('drawer', 'xl'),
|
|
])
|
|
]);
|
|
|
|
return $this->baseList($crud);
|
|
}
|
|
|
|
public function form(): Form
|
|
{
|
|
return $this->baseForm()->body([
|
|
|
|
]);
|
|
}
|
|
} |