diff --git a/app/Admin/Controllers/PersonController.php b/app/Admin/Controllers/PersonController.php index 061d789..ebf3524 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\Models\PersonChange; use App\Admin\Components; use Slowlyo\OwlAdmin\Renderers\Drawer; use Slowlyo\OwlAdmin\Renderers\Dialog; @@ -298,7 +299,20 @@ class PersonController extends AdminController "*"=> '其他:${gender}' ]), ]) - ]) + ]), + 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')) + ->columns([ + amis()->TableColumn('changed_at', __('admin.person_changes.changed_at'))->width('100px'), + amis()->TableColumn('type', __('admin.person_changes.type'))->type('mapping')->map(PersonChange::typeMap()), + amis()->TableColumn('extends_mark', __('admin.person_changes.extends_mark')), + amis()->TableColumn('phone', __('admin.person_changes.phone')), + amis()->TableColumn('remark', __('admin.person_changes.remark')), + amis()->TableColumn('created_at', __('admin.person_changes.created_at'))->type('datetime')->sortable(true), + ]) + ]) ]) ])->md(6), ]); diff --git a/app/Models/PersonChange.php b/app/Models/PersonChange.php index 80d01d8..b55904d 100644 --- a/app/Models/PersonChange.php +++ b/app/Models/PersonChange.php @@ -26,6 +26,11 @@ class PersonChange extends Model 'extends' => 'array', ]; + public function scopeSort($q) + { + $q->orderBy('changed_at', 'desc')->orderBy('created_at', 'desc'); + } + public static function typeMap() { return [ diff --git a/app/Services/Admin/PersonChangeService.php b/app/Services/Admin/PersonChangeService.php index 97d1eee..21b95cd 100644 --- a/app/Services/Admin/PersonChangeService.php +++ b/app/Services/Admin/PersonChangeService.php @@ -19,4 +19,5 @@ class PersonChangeService extends BaseService protected array $withRelationships = ['person', 'person.organizedBody']; + protected bool $modelSortAble = true; } \ No newline at end of file