generated from liutk/owl-admin-base
制定人口操作框架
parent
764ce7b300
commit
7f88707bf2
|
|
@ -32,6 +32,10 @@ class PersonController extends AdminController
|
|||
$crud = $this->baseCRUD()->tableLayout('fixed')
|
||||
->headerToolbar([
|
||||
$this->createTypeButton('drawer', '', '50%'),
|
||||
amis()->DialogAction()->icon('fa fa-add')->label('合户')->dialog(
|
||||
amis()->Dialog()->title('合户')->body($this->mergeMasterForm())->size('lg')
|
||||
),
|
||||
|
||||
amis('reload')->align('right'),
|
||||
amis('filter-toggler')->align('right'),
|
||||
])
|
||||
|
|
@ -176,46 +180,7 @@ class PersonController extends AdminController
|
|||
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"=>"<span class='label label-info'>男</span>",
|
||||
"2"=>"<span class='label label-success'>女</span>",
|
||||
"*"=> '其他:${gender}'
|
||||
]),
|
||||
]
|
||||
]
|
||||
)->description('输入 户主姓名 进行筛选,忽略则为添加户主')->disabledOn('this.id > 0'),
|
||||
$this->masterPicker('master', '', '输入 户主姓名 进行筛选,忽略则为添加户主')->disabledOn('this.id > 0'),
|
||||
amis()->TextControl('master_connect', __('admin.persons.master_connect'))->required(),
|
||||
]),
|
||||
]),
|
||||
|
|
@ -243,22 +208,185 @@ class PersonController extends AdminController
|
|||
|
||||
public function detail()
|
||||
{
|
||||
$form = amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')
|
||||
$form = amisMake()->form()->title('')->panelClassName('border-r border-t-0 border-b-0 border-l-0')->mode('horizontal')
|
||||
->static(true)->actions([])
|
||||
->body([
|
||||
amis()->FieldSetControl()->title('基本信息')->body([
|
||||
amis()->GroupControl()->body([
|
||||
Components::make()->cropImageControl('avatar', __('admin.persons.avatar')),
|
||||
amis()->Image()->type('static-image')->name('avatar')->label( __('admin.persons.avatar'))->height('80px')->width('80px')->thumbMode('cover'),
|
||||
]),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->TextControl('name', __('admin.persons.name'))->required(),
|
||||
amis()->TextControl('used_name', __('admin.persons.used_name')),
|
||||
amis()->StaticExactControl('name', __('admin.persons.name'))->copyable(['content'=>'${name}']),
|
||||
amis()->StaticExactControl('used_name', __('admin.persons.used_name')),
|
||||
]),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('idcard', __('admin.persons.idcard'))->copyable(['content'=>'${idcard}']),
|
||||
amis()->RadiosControl('gender', __('admin.persons.gender'))->options([
|
||||
'1'=>'男', '2'=>'女'
|
||||
]),
|
||||
]),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('birthday', __('admin.persons.birthday')),
|
||||
]),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('age', __('admin.persons.age')),
|
||||
amis()->StaticExactControl('origin_complete_address', __('admin.persons.origin_complete_address')),
|
||||
]),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('card_complete_address', __('admin.persons.card_complete_address')),
|
||||
amis()->StaticExactControl('now_address', __('admin.persons.now_address')),
|
||||
]),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('nation', __('admin.persons.nation'))->type('static-mapping')->map(
|
||||
Keyword::where('parent_key', 'nation')->pluck('name', 'id')->toArray()),
|
||||
amis()->StaticExactControl('political_face', __('admin.persons.political_face'))->type('static-mapping')->map(
|
||||
Keyword::where('parent_key', 'political_face')->pluck('name', 'id')->toArray()),
|
||||
]),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('educational_level', __('admin.persons.educational_level'))->type('static-mapping')->map(
|
||||
Keyword::where('parent_key', 'educational_level')->pluck('name', 'id')->toArray()),
|
||||
amis()->StaticExactControl('marry_state', __('admin.persons.marry_state'))->type('static-mapping')->map(
|
||||
Keyword::where('parent_key', 'marry_state')->pluck('name', 'id')->toArray()),
|
||||
]),
|
||||
]),
|
||||
amis()->FieldSetControl()->title('其他信息')->className('mt-10')->body([
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('military_service_status', __('admin.persons.military_service_status'))->type('static-mapping')->map(
|
||||
Keyword::where('parent_key', 'military_service_status')->pluck('name', 'id')->toArray()),
|
||||
amis()->StaticExactControl('is_voter', __('admin.persons.is_voter'))->type('static-mapping')->map(
|
||||
['0'=>'否','1'=>'是','*'=>'未知']),
|
||||
]),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('job', __('admin.persons.job')),
|
||||
amis()->StaticExactControl('health', __('admin.persons.health')),
|
||||
]),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('phone', __('admin.persons.phone')),
|
||||
amis()->StaticExactControl('remark', __('admin.persons.remark')),
|
||||
]),
|
||||
]),
|
||||
]);
|
||||
|
||||
return amisMake()->Grid()->columns([
|
||||
amis()->Column()->body($form)->md(6)
|
||||
amis()->Column()->body($form)->md(6),
|
||||
amis()->Column()->body([
|
||||
amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')
|
||||
->static(true)->actions([])
|
||||
->body([
|
||||
amis()->FieldSetControl()->title('户籍信息')->body([
|
||||
amisMake()->CRUDTable()->affixHeader(false)
|
||||
->title('')
|
||||
->itemBadge([//行角标
|
||||
'text' => __('admin.persons.master'),
|
||||
'mode' => 'ribbon',
|
||||
'position' => 'top-left',
|
||||
'badgeLevel' => 'danger',
|
||||
'visibleOn' => '${is_master > 0}',
|
||||
'size' => 15
|
||||
])
|
||||
->api(admin_url('persons?_action=getData&master[name]=${master.name}'))
|
||||
->columns([
|
||||
amis()->TableColumn('name', __('admin.persons.name'))->copyable(),
|
||||
amis()->TableColumn('master_connect', __('admin.persons.master_connect')),
|
||||
amis()->TableColumn('idcard', __('admin.persons.idcard'))->copyable(),
|
||||
amis()->TableColumn('gender', __('admin.persons.gender'))->type('mapping')->map([
|
||||
"1"=>"<span class='label label-info'>男</span>",
|
||||
"2"=>"<span class='label label-success'>女</span>",
|
||||
"*"=> '其他:${gender}'
|
||||
]),
|
||||
])
|
||||
])
|
||||
])
|
||||
])->md(6),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function detailActions()
|
||||
{
|
||||
return [
|
||||
//变更户主
|
||||
//迁移
|
||||
//迁出
|
||||
//死亡
|
||||
//返回
|
||||
amis()->Button()->actionType('confirm')->label(__('admin.back'))->primary()
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 合户
|
||||
*/
|
||||
public function mergeMasterForm()
|
||||
{
|
||||
return amis()->form()->title('')->body([
|
||||
|
||||
amis()->GroupControl()->body([
|
||||
$this->masterPicker('master', '', '输入 户主姓名 进行筛选'),
|
||||
$this->masterPicker('to_master', '待合并户', '输入 户主姓名 进行筛选'),
|
||||
]),
|
||||
amis()->Divider(),
|
||||
|
||||
]);
|
||||
}
|
||||
|
||||
public function doMergeMaster(){
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 分户
|
||||
*/
|
||||
public function splitMasterForm()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function doSplitMaster(){
|
||||
|
||||
}
|
||||
|
||||
private function masterPicker($name = 'master', $label = '', $description = '')
|
||||
{
|
||||
return amis()->PickerControl($name, $label ?:__('admin.persons.master'))
|
||||
->multiple(false)
|
||||
->valueField('id')
|
||||
->labelField('name')
|
||||
->size('lg')
|
||||
->source([
|
||||
'method' => 'get',
|
||||
'url' => admin_url('persons?_action=getData&state=1&is_master=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"=>"<span class='label label-info'>男</span>",
|
||||
"2"=>"<span class='label label-success'>女</span>",
|
||||
"*"=> '其他:${gender}'
|
||||
]),
|
||||
]
|
||||
]
|
||||
)->description($description);
|
||||
}
|
||||
}
|
||||
|
|
@ -2,8 +2,9 @@
|
|||
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
|
||||
// Admin::styles([
|
||||
// '.cxd-Panel-heading { border-width: 0; background: #4080ffc7 !important; }',
|
||||
// // '.cxd-Panel {box-shadow: none; }',
|
||||
// '.cxd-Panel-title { color:white;font-size: 16px; }'
|
||||
// ]);
|
||||
Admin::styles([
|
||||
'.cxd-Crud {border-width: 0 ;}',
|
||||
// '.cxd-Panel-heading { border-width: 0; background: #4080ffc7 !important; }',
|
||||
// // '.cxd-Panel {box-shadow: none; }',
|
||||
// '.cxd-Panel-title { color:white;font-size: 16px; }'
|
||||
]);
|
||||
|
|
@ -76,4 +76,8 @@ class PersonFilter extends ModelFilter
|
|||
|
||||
return $this->whereBetween('birthday', $birthday);
|
||||
}
|
||||
|
||||
public function isMaster($isMaster){
|
||||
return $this->where('is_master', $isMaster);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ class Person extends Model
|
|||
$person->origin_province_id = $originProvince?->id ?? 0;
|
||||
$person->origin_city_id = $originCity?->id ?? 0;
|
||||
$person->origin_area_id = $originArea?->id ?? 0;
|
||||
$person->origin_complete_address = ($originProvince?->name ?? '未知').'-'.($originCity?->name ?? '未知').'-'.($originArea?->name ?? '未知');
|
||||
}
|
||||
if($person->card_city_code){
|
||||
list($cardProvince, $cardCity, $cardArea) = Zone::codeToZone($person->card_city_code);
|
||||
|
|
|
|||
|
|
@ -117,13 +117,26 @@ trait CustomActionTrait
|
|||
}else{
|
||||
$drawer->size($size);
|
||||
}
|
||||
//补充详情操作按钮扩展
|
||||
try{
|
||||
$actions = $this->detailActions();
|
||||
}catch(\BadMethodCallException $e){
|
||||
$actions = [];
|
||||
}
|
||||
$drawer->actions($actions);
|
||||
|
||||
$button = DrawerAction::make()->drawer($drawer);
|
||||
break;
|
||||
case 'dialog':
|
||||
$button = DialogAction::make()->dialog(
|
||||
Dialog::make()->title(__('admin.show'))->body($this->detail('$id'))->size($size)
|
||||
);
|
||||
//补充详情操作按钮扩展
|
||||
$dialog = Dialog::make()->title(__('admin.show'))->body($this->detail('$id'))->size($size);
|
||||
try{
|
||||
$actions = $this->detailActions();
|
||||
}catch(\BadMethodCallException $e){
|
||||
$actions = [];
|
||||
}
|
||||
$dialog->actions($actions);
|
||||
$button = DialogAction::make()->dialog($dialog);
|
||||
break;
|
||||
default:
|
||||
$button = LinkAction::make()->link($this->getShowPath());
|
||||
|
|
|
|||
Loading…
Reference in New Issue