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' => '备注',
],
];