diff --git a/app/Admin/Controllers/PersonController.php b/app/Admin/Controllers/PersonController.php index e2d40ee..af71519 100644 --- a/app/Admin/Controllers/PersonController.php +++ b/app/Admin/Controllers/PersonController.php @@ -9,6 +9,7 @@ use Slowlyo\OwlAdmin\Controllers\AdminController; use App\Services\Admin\PersonService; use App\Traits\CustomActionTrait; use App\Models\Keyword; +use App\Admin\Components; /** * 人口管理 @@ -47,9 +48,9 @@ class PersonController extends AdminController ])) ->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('name', __('admin.persons.name'))->width('100px')->copyable()->searchable(), + amis()->TableColumn('master_connect', __('admin.persons.master_connect'))->width('60px'), + amis()->TableColumn('master.name', __('admin.persons.master_name'))->width('100px')->copyable()->searchable(), amis()->TableColumn('idcard', __('admin.persons.idcard'))->copyable()->searchable(), amis()->TableColumn('gender', __('admin.persons.gender'))->type('mapping')->map([ "1"=>"", @@ -58,8 +59,8 @@ class PersonController extends AdminController ])->filterable(['options'=>[ ['label'=>'男', 'value'=>1], ['label'=> '女', 'value'=>2] ]]), - amis()->TableColumn('birthday', __('admin.persons.birthday')), - amis()->TableColumn('age', __('admin.persons.age')), + amis()->TableColumn('birthday', __('admin.persons.birthday'))->width('100px'), + // amis()->TableColumn('age', __('admin.persons.age')), amis()->TableColumn('now_address', __('admin.persons.now_address'))->copyable(), amisMake()->Operation()->label(__('admin.actions'))->buttons([ @@ -75,59 +76,152 @@ class PersonController extends AdminController return $this->baseForm()->body([ amis()->Grid()->columns([ amis()->Wrapper()->body([ - amis()->GroupControl()->mode('horizontal')->body([ - amis()->RadiosControl('type', __('admin.persons.type'))->options([ - '11'=>'出生人口', '12'=>'迁入人口' - ])->value('11')->required(), - ]), - amis()->GroupControl()->mode('horizontal')->body([ - amis()->TextControl('name', __('admin.persons.name'))->required(), - amis()->TextControl('used_name', __('admin.persons.used_name')), - ]), - amis()->GroupControl()->mode('horizontal')->body([ - amis()->TextControl('idcard', __('admin.persons.idcard'))->required()->id('person_idcard')->onEvent([ - 'blur'=>[//自定义JS联动字段填写 - 'actions'=>[ - [ - "componentId" => "person_idcard", - "actionType"=> "disabled" - ], - [ - 'actionType'=>'custom', - 'script' => 'var strBirthday=""; - var idcard=event.data.value; - if((/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(idcard))){ - if(String(idcard).length == 18){ - strBirthday = idcard.substr(6,4)+"/"+idcard.substr(10,2)+"/"+idcard.substr(12,2); - } - event.setData({...event.data, "birthday":new Date(strBirthday)}) - }' - ], - [ - 'actionType'=>'setValue', - "componentId" => "person_birthday", - "args" => [ - 'value'=>'${birthday}' - ], - ], - [ - "componentId" => "person_idcard", - "actionType"=> "enabled" - ], - ] - ] + amis()->FieldSetControl()->title('基本信息')->body([ + amis()->GroupControl()->mode('horizontal')->body([ + Components::make()->cropImageControl('avatar', __('admin.persons.avatar')), + amis()->RadiosControl('type', __('admin.persons.type'))->options([ + '11'=>'出生人口', '12'=>'迁入人口' + ])->value('11')->required(), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amis()->TextControl('name', __('admin.persons.name'))->required(), + amis()->TextControl('used_name', __('admin.persons.used_name')), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amis()->TextControl('idcard', __('admin.persons.idcard'))->required()->id('person_idcard')->onEvent([ + 'blur'=>[//自定义JS联动字段填写 + 'actions'=>[ + [ + "componentId" => "person_idcard", + "actionType"=> "disabled" + ], + [ + 'actionType'=>'custom', + 'script' => 'var strBirthday=""; + var idcard=event.data.value; + if((/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(idcard))){ + if(String(idcard).length == 18){ + strBirthday = idcard.substr(6,4)+"/"+idcard.substr(10,2)+"/"+idcard.substr(12,2); + } + event.setData({...event.data, "birthday":new Date(strBirthday)}) + }' + ], + [ + 'actionType'=>'setValue', + "componentId" => "person_birthday", + "args" => [ + 'value'=>'${birthday}' + ], + ], + [ + "componentId" => "person_idcard", + "actionType"=> "enabled" + ], + ] + ] + ]), + amis()->RadiosControl('gender', __('admin.persons.gender'))->options([ + '1'=>'男', '2'=>'女' + ])->required(), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amis()->DateControl('birthday', __('admin.persons.birthday'))->valueFormat('YYYY-MM-DD')->required()->id('person_birthday')->columnRatio(6), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amisMake()->InputCityControl('origin_city_code', __('admin.persons.origin_city_code'))->placeholder('请选择城市地区')->itemClassName('w-52')->searchable('true')->required(true)->columnRatio(12), + amis()->TextControl('origin_complete_address')->placeholder('若无法选择籍贯,可以手动填写籍贯'), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amisMake()->InputCityControl('card_city_code', __('admin.persons.card_city_code'))->placeholder('请选择城市地区')->itemClassName('w-52')->searchable('true')->required(true)->columnRatio(12), + amis()->TextControl('card_address')->placeholder('详细地址'), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amis()->SelectControl('nation', __('admin.persons.nation'))->options(Keyword::where('parent_key', 'nation')->pluck('name', 'id')->toArray())->clearable(true)->required()->searchable(), + amis()->SelectControl('political_face', __('admin.persons.political_face'))->options(Keyword::where('parent_key', 'political_face')->pluck('name', 'id')->toArray())->clearable(true)->required(), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amis()->SelectControl('educational_level', __('admin.persons.educational_level'))->options(Keyword::where('parent_key', 'educational_level')->pluck('name', 'id')->toArray())->clearable(true)->required(), + amis()->SelectControl('marry_state', __('admin.persons.marry_state'))->options(Keyword::where('parent_key', 'marry_state')->pluck('name', 'id')->toArray())->clearable(true)->required(), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + 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')->onlyLeaf(true)->clearable(true), + amis()->TextControl('house_number', __('admin.persons.house_number')), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amis()->TextControl('real_address', __('admin.persons.real_address'))->placeholder('若无法选择小区,可以手动填写居住地址'), + ]), + ]), + amis()->FieldSetControl()->title('户籍信息')->className('mt-10')->body([ + amis()->GroupControl()->mode('horizontal')->body([ + amis()->TextControl('domicile_code', __('admin.persons.domicile_code'))->required(), + amis()->SelectControl('organized_body', __('admin.persons.organized_body'))->options(Keyword::where('parent_key', 'organized_body')->pluck('name', 'id')->toArray())->clearable(true)->required(), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amis()->SwitchControl('has_benefit', __('admin.persons.has_benefit'))->value(false)->required(), + amis()->SelectControl('domicile', __('admin.persons.domicile'))->options(Keyword::where('parent_key', 'domicile')->pluck('name', 'id')->toArray())->clearable(true)->required(), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amis()->PickerControl('master', __('admin.persons.master')) + ->multiple(false) + ->valueField('id') + ->labelField('name') + ->size('lg') + ->source([ + 'method' => 'get', + 'url' => admin_url('persons?_action=getData&state=1&perPage=10'), + 'data' => [ + 'name'=>'${master_name}', + 'idcard'=>'${master_idcard}' + ] + ]) + ->pickerSchema( + [ + 'mode' => 'table', + 'name' => 'monitor_list', + 'headerToolbar' => amis()->form() + ->wrapWithPanel(false) + ->className('text-right') + ->target('monitor_list') + ->mode('inline') + ->body([ + amis()->TextControl('master_idcard', __('admin.persons.idcard'))->size('md'), + amis()->TextControl('master_name', __('admin.persons.name'))->size('md')->addOn( + amis('submit')->label(__('admin.search'))->level('primary') + ), + ]), + 'columns' => [ + amis()->TableColumn('domicile_code', __('admin.persons.domicile_code'))->width('120px')->copyable(), + amis()->TableColumn('name', __('admin.persons.name'))->width('150px')->copyable(), + amis()->TableColumn('idcard', __('admin.persons.idcard'))->copyable(), + amis()->TableColumn('gender', __('admin.persons.gender'))->type('mapping')->map([ + "1"=>"", + "2"=>"", + "*"=> '其他:${gender}' + ]), + ] + ] + )->description('输入 户主姓名 进行筛选,忽略则为添加户主'), + amis()->TextControl('master_connect', __('admin.persons.master_connect'))->required(), ]), - amis()->RadiosControl('gender', __('admin.persons.gender'))->options([ - '1'=>'男', '2'=>'女' - ])->required(), ]), - amis()->GroupControl()->mode('horizontal')->body([ - amis()->DateControl('birthday', __('admin.persons.birthday'))->valueFormat('YYYY-MM-DD')->required()->id('person_birthday'), + amis()->FieldSetControl()->title('其他信息')->className('mt-10')->body([ + amis()->GroupControl()->mode('horizontal')->body([ + amis()->SelectControl('military_service_status', __('admin.persons.military_service_status'))->options(Keyword::where('parent_key', 'military_service_status')->pluck('name', 'id')->toArray())->clearable(true), + amis()->SwitchControl('is_voter', __('admin.persons.is_voter'))->value(true), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amis()->TextControl('job', __('admin.persons.job')), + amis()->TextControl('health', __('admin.persons.health')), + ]), + amis()->GroupControl()->mode('horizontal')->body([ + amis()->TextControl('phone', __('admin.persons.phone')), + amis()->TextControl('remark', __('admin.persons.remark')), + ]), ]), - ])->md(6), - amis()->Wrapper()->body([ - - ])->md(6) + ])->md(12), + // amis()->Wrapper()->body([ + + // ])->md(6) ]), ]); } diff --git a/lang/zh_CN/admin.php b/lang/zh_CN/admin.php index c27a18e..370d1a5 100644 --- a/lang/zh_CN/admin.php +++ b/lang/zh_CN/admin.php @@ -340,6 +340,7 @@ return [ ], 'persons' => [ 'name' => '姓名', + 'avatar' => '头像', 'domicile_code' => '户籍编号', 'master_connect' => '关系', 'master_name' => '户主姓名', @@ -353,6 +354,26 @@ return [ 'state' => '人口状态', 'birthday'=> '出生日期', 'type'=>'人口类别', - 'used_name'=>'曾用名' + 'used_name'=>'曾用名', + 'origin_city_code' => '籍贯', + 'origin_complete_address' => '籍贯', + 'card_city_code' => '出生地址', + 'card_complete_address' => '出生地址', + 'domicile' => '户籍类型', + 'has_benefit'=>'是否享受福利', + 'master'=>'户主', + 'master_id' => '户主', + 'political_face'=>'政治面貌', + 'nation' => '民族', + 'educational_level'=>'文化程度', + 'marry_state' => '婚姻状况', + 'house_number'=> '门牌号', + 'real_address' => '现居地址', + 'military_service_status' => '兵役情况', + 'is_voter' => '是否参与选民', + 'job' => '职业', + 'health' => '身体状况', + 'phone' => '联系方式', + 'remark' => '备注', ], ];