generated from liutk/owl-admin-base
修改详情内容分页BUG
parent
b4d06b89fa
commit
62386555f1
|
|
@ -302,8 +302,8 @@ class PersonController extends AdminController
|
|||
]),
|
||||
amis()->FieldSetControl()->title('户籍变动')->className('mt-10')->body([
|
||||
amisMake()->CRUDTable()->affixHeader(false)->columnsTogglable(false)
|
||||
->title('')
|
||||
->api(admin_url('person_changes?_action=getData&person[id]=${id}&perPage=5'))
|
||||
->api(admin_url('person_changes?_action=getData&person[id]=${id}'))
|
||||
->perPage(5)->loadDataOnce()
|
||||
->columns([
|
||||
amis()->TableColumn('changed_at', __('admin.person_changes.changed_at'))->width('100px'),
|
||||
amis()->TableColumn('type', __('admin.person_changes.type'))->type('mapping')->map(PersonChange::typeMap()),
|
||||
|
|
@ -336,9 +336,12 @@ class PersonController extends AdminController
|
|||
amis()->Button()->label('确认')->actionType('submit')->primary()->close('detail_info'),
|
||||
])
|
||||
),
|
||||
//迁出-todo
|
||||
//迁出
|
||||
amis()->DialogAction()->level('success')->label('迁出')->dialog(
|
||||
amis()->Dialog()->title('迁出')->body()->size('lg')
|
||||
amis()->Dialog()->title('迁出')->body($this->outMasterForm())->size('lg')->actions([
|
||||
amis()->Button()->label('取消')->actionType('cancel'),
|
||||
amis()->Button()->label('确认')->actionType('submit')->primary()->close('detail_info'),
|
||||
])
|
||||
),
|
||||
//死亡-todo
|
||||
amis()->DialogAction()->level('danger')->label('死亡')->dialog(
|
||||
|
|
@ -435,7 +438,7 @@ class PersonController extends AdminController
|
|||
amis()->TableColumn('idcard', __('admin.persons.idcard')),
|
||||
amis()->TableColumn('master_connect', __('admin.persons.master_connect'))->width('60px'),
|
||||
amis()->RadioControl('is_new_master', '新户主')->disabledOn('is_master'),
|
||||
amis()->TextControl('new_master_connect', '新关系'),
|
||||
amis()->TextControl('new_master_connect', '新关系')->disabledOn('is_master'),
|
||||
])->required()
|
||||
)->visibleOn('${is_master}'),
|
||||
amis()->Divider(),
|
||||
|
|
@ -458,6 +461,70 @@ class PersonController extends AdminController
|
|||
return $this->autoResponse($res, '迁移');
|
||||
}
|
||||
|
||||
/**
|
||||
* 迁出
|
||||
*
|
||||
*/
|
||||
public function outMasterForm(){
|
||||
return amis()->form()->title('')->reload('curd_list')
|
||||
->api(admin_url('out_master'))
|
||||
->body([
|
||||
amis()->HiddenControl('id'),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('name', __('admin.persons.name'))->copyable(['content'=>'${name}']),
|
||||
amis()->RadiosControl('gender', __('admin.persons.gender'))->options([
|
||||
'1'=>'男', '2'=>'女'
|
||||
])->static(),
|
||||
]),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->StaticExactControl('idcard', __('admin.persons.idcard'))->copyable(['content'=>'${idcard}']),
|
||||
amis()->StaticExactControl('birthday', __('admin.persons.birthday')),
|
||||
]),
|
||||
amis()->Divider()->visibleOn('${is_master}'),
|
||||
amis()->Service()
|
||||
->api(admin_url('persons?_action=getData&state=1&master[id]=${master_id}&perPage=10'))
|
||||
->onEvent([
|
||||
'fetchInited' => [
|
||||
'actions' => [
|
||||
[
|
||||
'actionType'=>'setValue',
|
||||
"componentId" => "old_master_arr",
|
||||
"args" => [
|
||||
'value'=>'${event.data.items}'
|
||||
],
|
||||
]
|
||||
]
|
||||
]
|
||||
])
|
||||
->body(
|
||||
amis()->TableControl('old_master_arr', '原户籍情况')->columnsTogglable(false)->id('old_master_arr')->columns([
|
||||
amis()->TableColumn('name', __('admin.persons.name'))->width('100px'),
|
||||
amis()->TableColumn('idcard', __('admin.persons.idcard')),
|
||||
amis()->TableColumn('master_connect', __('admin.persons.master_connect'))->width('60px'),
|
||||
amis()->RadioControl('is_new_master', '新户主')->disabledOn('is_master'),
|
||||
amis()->TextControl('new_master_connect', '新关系')->disabledOn('is_master'),
|
||||
])->required()
|
||||
)->visibleOn('${is_master}'),
|
||||
amis()->Divider(),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->DateControl('out_at', '迁出日期')->valueFormat('YYYY-MM-DD')->required(),
|
||||
amis()->TextControl('out_reason', '迁出原因')->required()
|
||||
]),
|
||||
amis()->TextControl('out_to_address', '迁出至')->required(),
|
||||
amis()->GroupControl()->body([
|
||||
amis()->TextControl('out_phone', '联系方式')->required(),
|
||||
amis()->TextControl('out_remark', '备注')
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
public function doOutMaster(Request $request)
|
||||
{
|
||||
$res = $this->service->outMaster($request->input('id'), $request->input('old_master_arr', []), $request->input());
|
||||
|
||||
return $this->autoResponse($res, '迁出');
|
||||
}
|
||||
|
||||
/**
|
||||
* 合户
|
||||
*/
|
||||
|
|
@ -582,7 +649,9 @@ class PersonController extends AdminController
|
|||
'url' => admin_url('persons?_action=getData&state=1&is_master=1&perPage=10'),
|
||||
'data' => [
|
||||
'name'=>'${master_name}',
|
||||
'idcard'=>'${master_idcard}'
|
||||
'idcard'=>'${master_idcard}',
|
||||
'perPage'=>'${perPage}',
|
||||
'page'=>'${page}',
|
||||
]
|
||||
])
|
||||
->pickerSchema(
|
||||
|
|
@ -609,7 +678,7 @@ class PersonController extends AdminController
|
|||
"2"=>"<span class='label label-success'>女</span>",
|
||||
"*"=> '其他:${gender}'
|
||||
]),
|
||||
]
|
||||
],
|
||||
]
|
||||
)->description($description);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ Route::group([
|
|||
$router->post('merge_master', [\App\Admin\Controllers\PersonController::class, 'doMergeMaster']);
|
||||
$router->post('edit_master', [\App\Admin\Controllers\PersonController::class, 'doEditMaster']);
|
||||
$router->post('migrate_master', [\App\Admin\Controllers\PersonController::class, 'doMigrateMaster']);
|
||||
$router->post('out_master', [\App\Admin\Controllers\PersonController::class, 'doOutMaster']);
|
||||
|
||||
|
||||
$router->resource('person_changes', \App\Admin\Controllers\PersonChangeController::class);
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ class PersonService extends BaseService
|
|||
continue;
|
||||
}
|
||||
|
||||
$changeMark = (isset($extends['splited_at']) ? $extends['splited_at'] : '某日'). '日,' .(isset($extends['split_reason']) ? ('因' .$extends['split_reason']) : '').'分户,';
|
||||
$changeMark = (isset($extends['splited_at']) ? $extends['splited_at'] : '某日'). '日,' .(isset($extends['split_reason']) ? ('因' .$extends['split_reason']) : '').'分户,';
|
||||
if($newMaster['id'] == $person['id']){
|
||||
$changeMark .= '成为新户主';
|
||||
}else{
|
||||
|
|
@ -185,7 +185,7 @@ class PersonService extends BaseService
|
|||
$personChangeLogs = [];
|
||||
//遍历分户成员情况, 并更合并户与新户主关系
|
||||
foreach($personList as $person){
|
||||
$changeMark = (isset($extends['merged_at']) ? $extends['merged_at'] : '某日'). '日,' .(isset($extends['merge_reason']) ? ('因' .$extends['merge_reason']) : '').'合户,';
|
||||
$changeMark = (isset($extends['merged_at']) ? $extends['merged_at'] : '某日'). '日,' .(isset($extends['merge_reason']) ? ('因' .$extends['merge_reason']) : '').'合户,';
|
||||
if($person['is_master']){
|
||||
$changeMark .= '与新户主关系更新为【'.$person['new_master_connect'].'】';
|
||||
}else{
|
||||
|
|
@ -246,7 +246,7 @@ class PersonService extends BaseService
|
|||
//遍历分户成员情况, 并更新与新户主关系
|
||||
foreach($personList as $person){
|
||||
|
||||
$changeMark = (isset($extends['editd_at']) ? $extends['editd_at'] : '某日'). '日,' .(isset($extends['edit_reason']) ? ('因' .$extends['edit_reason']) : '').'户主变更,';
|
||||
$changeMark = (isset($extends['editd_at']) ? $extends['editd_at'] : '某日'). '日,' .(isset($extends['edit_reason']) ? ('因' .$extends['edit_reason']) : '').'户主变更,';
|
||||
if($person['is_master']){
|
||||
$changeMark .= '与新户主关系更新为【'.(isset($person['new_master_connect']) ? $person['new_master_connect']:'').'】';
|
||||
}elseif($person['is_new_master']){
|
||||
|
|
@ -316,7 +316,7 @@ class PersonService extends BaseService
|
|||
DB::beginTransaction();
|
||||
$personChangeLogs = [];
|
||||
|
||||
$changeMark = (isset($extends['migrated_at']) ? $extends['migrated_at'] : '某日'). '日,' .(isset($extends['migrate_reason']) ? ('因' .$extends['migrate_reason']) : '');
|
||||
$changeMark = (isset($extends['migrated_at']) ? $extends['migrated_at'] : '某日'). '日,' .(isset($extends['migrate_reason']) ? ('因' .$extends['migrate_reason']) : '');
|
||||
if($person->is_master){
|
||||
$changeMark .= '迁移至户主【'.$person->master->name.'】下,与新户主关系更新为【'.$newMasterConnect.'】';
|
||||
}else{
|
||||
|
|
@ -342,7 +342,7 @@ class PersonService extends BaseService
|
|||
if($oldPerson['id'] == $person->id){
|
||||
continue;
|
||||
}
|
||||
$changeMark = (isset($extends['migrated_at']) ? $extends['migrated_at'] : '某日'). '日,' .(isset($extends['migrate_reason']) ? ('因' .$extends['migrate_reason'].'导致') : '').'原户主【'.$person->name.'】迁移,';
|
||||
$changeMark = (isset($extends['migrated_at']) ? $extends['migrated_at'] : '某日'). '日,' .(isset($extends['migrate_reason']) ? ('因' .$extends['migrate_reason'].'导致') : '').'原户主【'.$person->name.'】迁移,';
|
||||
if($oldPerson['is_new_master']){
|
||||
$changeMark .= '成为户主';
|
||||
}else{
|
||||
|
|
@ -387,4 +387,99 @@ class PersonService extends BaseService
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 迁出
|
||||
*/
|
||||
public function outMaster($personId, $oldMasterArr = [], $extends)
|
||||
{
|
||||
$person = Person::find($personId);
|
||||
|
||||
if(!empty($oldMasterArr)){
|
||||
$oldPersonList = collect($oldMasterArr);
|
||||
$oldNewMaster = $oldPersonList->first(function ($item) {
|
||||
return isset($item['is_new_master']) && $item['is_new_master'];
|
||||
});
|
||||
if(empty($oldNewMaster)){
|
||||
return $this->setError('迁出失败, 未选择原户新户主');
|
||||
}
|
||||
}
|
||||
|
||||
try{
|
||||
DB::beginTransaction();
|
||||
$personChangeLogs = [];
|
||||
|
||||
$changeMark = (isset($extends['out_at']) ? $extends['out_at'] : '某日'). '日,' .(isset($extends['out_reason']) ? ('因' .$extends['out_reason']) : '');
|
||||
$changeMark .= '迁出至'.$extends['out_to_address'];
|
||||
|
||||
$personChangeLogs[] = [
|
||||
'person_id' => $person->id,
|
||||
'type' => PersonChange::TYPE_OUT,
|
||||
'changed_at' => isset($extends['out_at']) ? $extends['out_at'] : null,
|
||||
'reason' => isset($extends['out_reason']) ? $extends['out_reason'] : null,
|
||||
'old_master' => $person->master_id,
|
||||
'new_master' => $oldNewMaster['id'],
|
||||
'phone' => isset($extends['out_phone']) ? $extends['out_phone'] : null,
|
||||
'extends' => json_encode([
|
||||
'to_address' => isset($extends['out_to_address']) ? $extends['out_to_address'] : null
|
||||
]),
|
||||
'extends_mark' => $changeMark,
|
||||
'remark' => isset($extends['out_remark']) ? $extends['out_remark'] : null,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
];
|
||||
//如果迁移的是户主, 则更新原户内人口信息
|
||||
if($person->is_master){
|
||||
foreach($oldMasterArr as $oldPerson){
|
||||
if($oldPerson['id'] == $person->id){
|
||||
continue;
|
||||
}
|
||||
$changeMark = (isset($extends['migrated_at']) ? $extends['migrated_at'] : '某日'). '日,' .(isset($extends['migrate_reason']) ? ('因' .$extends['migrate_reason'].'导致') : '').'原户主【'.$person->name.'】迁出本村,';
|
||||
if($oldPerson['is_new_master']){
|
||||
$changeMark .= '成为户主';
|
||||
}else{
|
||||
$changeMark .= '户主由【'.$person->master->name.'】变更为【'.$oldNewMaster['name'].'】,与新户主关系更新为【'.$oldPerson['new_master_connect'].'】';
|
||||
}
|
||||
$personChangeLogs[] = [
|
||||
'person_id' => $person['id'],
|
||||
'type' => PersonChange::TYPE_CHANGE,
|
||||
'changed_at' => isset($extends['out_at']) ? $extends['out_at'] : null,
|
||||
'reason' => (isset($extends['out_reason']) ? $extends['out_reason'].'导致' : '').'户主迁出本村',
|
||||
'old_master' => $person->master_id,
|
||||
'new_master' => $oldNewMaster['id'],
|
||||
'extends' => null,
|
||||
'phone' => isset($extends['out_phone']) ? $extends['out_phone'] : null,
|
||||
'extends_mark' => $changeMark,
|
||||
'remark' => null,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
];
|
||||
|
||||
Person::where('id', $oldPerson['id'])->update([
|
||||
'master_id' => $oldNewMaster['id'],
|
||||
'is_master' => $oldNewMaster['id'] == $oldPerson['id'] ? true : false,
|
||||
'master_connect' => (isset($oldPerson['new_master_connect']) && !empty($oldPerson['new_master_connect'])) ? $oldPerson['new_master_connect'] : ($oldNewMaster['id'] == $oldPerson['id'] ? '户主':'')
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Person::where('id', $person->id)->update([
|
||||
'is_master' => 0,
|
||||
'master_id' => null,
|
||||
'master_connect' => null,
|
||||
'state' => 3,
|
||||
'real_address' => isset($extends['out_to_address']) ? $extends['out_to_address'] : null,
|
||||
]);
|
||||
|
||||
count($personChangeLogs) > 0 && PersonChange::insert($personChangeLogs);
|
||||
|
||||
DB::commit();
|
||||
}catch(Throwable $th){
|
||||
DB::rollBack();
|
||||
report($th);
|
||||
return $this->setError('系统错误,请刷新后重试');
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue