From 8f6d2dbd7c0aeb09eed874388556b41c5ea5bad4 Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Fri, 23 Feb 2024 09:36:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8F=98=E5=8A=A8=E7=AD=9B?= =?UTF-8?q?=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PersonChangeController.php | 11 +++++++++-- app/Admin/Controllers/PersonController.php | 3 +++ app/Models/Filters/PersonChangeFilter.php | 19 ++++++++++++++++++- app/Models/Filters/PersonFilter.php | 6 +++--- lang/zh_CN/admin.php | 7 +++++-- 5 files changed, 38 insertions(+), 8 deletions(-) diff --git a/app/Admin/Controllers/PersonChangeController.php b/app/Admin/Controllers/PersonChangeController.php index 038d640..ec4b7c4 100644 --- a/app/Admin/Controllers/PersonChangeController.php +++ b/app/Admin/Controllers/PersonChangeController.php @@ -9,6 +9,7 @@ use Slowlyo\OwlAdmin\Renderers\Form; use Slowlyo\OwlAdmin\Controllers\AdminController; use App\Admin\Components; use App\Services\Admin\PersonChangeService; +use App\Models\Keyword; /** * 人口变动 @@ -26,15 +27,21 @@ class PersonChangeController extends AdminController amis('filter-toggler')->align('right'), ]) ->filter($this->baseFilter()->labelWidth('80px')->body([ - + amis()->GroupControl()->mode('horizontal')->body([ + amis()->YearControl('year', __('admin.year'))->valueFormat('YYYY')->columnRatio(3), + amis()->SelectControl('person.organized_body_id', __('admin.persons.organized_body'))->options(Keyword::where('parent_key', 'organized_body')->pluck('name', 'id')->toArray())->columnRatio(3)->clearable(true), + // amis()->TextControl('person.name', __('admin.persons.name'))->placeholder(__('admin.persons.name'))->columnRatio(3), + amis()->SelectControl('type', __('admin.person_changes.type'))->options(PersonChange::typeMap())->columnRatio(3)->clearable(true), + ]), ])) ->columns([ amis()->TableColumn('person.organized_body.name', __('admin.persons.organized_body'))->width('100px'), 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('person.name', __('admin.persons.name'))->width('100px')->copyable(), + amis()->TableColumn('person.name', __('admin.persons.name'))->width('100px')->copyable()->searchable(), 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), ]); diff --git a/app/Admin/Controllers/PersonController.php b/app/Admin/Controllers/PersonController.php index b3f2fba..1d77988 100644 --- a/app/Admin/Controllers/PersonController.php +++ b/app/Admin/Controllers/PersonController.php @@ -47,6 +47,9 @@ class PersonController extends AdminController amis()->SelectControl('organized_body', __('admin.persons.organized_body'))->options(Keyword::where('parent_key', 'organized_body')->pluck('name', 'id')->toArray()) ->columnRatio(3)->clearable(true), 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')->columnRatio(6)->clearable(true), + amis()->SelectControl('is_master', __('admin.persons.is_master'))->options([ + '1'=>'仅户主','0'=>'非户主' + ])->columnRatio(3)->clearable(true), ]), amis()->GroupControl()->mode('horizontal')->body([ amis()->SelectControl('state', __('admin.persons.state'))->options([ diff --git a/app/Models/Filters/PersonChangeFilter.php b/app/Models/Filters/PersonChangeFilter.php index e92e838..bef8401 100644 --- a/app/Models/Filters/PersonChangeFilter.php +++ b/app/Models/Filters/PersonChangeFilter.php @@ -8,5 +8,22 @@ use App\Models\Keyword; class PersonChangeFilter extends ModelFilter { - + public function year($year) + { + return $this->whereYear('changed_at', $year); + } + + public function person($person) + { + return $this->whereHas('person', function(Builder $q) use ($person){ + foreach($person as $key => $value){ + $q->where($key, $value); + } + }); + } + + public function type($type) + { + return $this->where('type', $type); + } } diff --git a/app/Models/Filters/PersonFilter.php b/app/Models/Filters/PersonFilter.php index 95fc60b..60f5b08 100644 --- a/app/Models/Filters/PersonFilter.php +++ b/app/Models/Filters/PersonFilter.php @@ -56,7 +56,7 @@ class PersonFilter extends ModelFilter */ public function organizedBody($organizedBody) { - return $this->where('organized_body', $organizedBody); + return $this->where('organized_body_id', $organizedBody); } /** @@ -66,9 +66,9 @@ class PersonFilter extends ModelFilter { if(Keyword::where('id', $houseBuilding)->value('lv') == 3) { - return $this->where('building', $houseBuilding); + return $this->where('building_id', $houseBuilding); }else{ - return $this->where('housing_estate', $houseBuilding); + return $this->where('housing_estate_id', $houseBuilding); } } diff --git a/lang/zh_CN/admin.php b/lang/zh_CN/admin.php index c62e98a..50212ad 100644 --- a/lang/zh_CN/admin.php +++ b/lang/zh_CN/admin.php @@ -61,6 +61,7 @@ return [ 'please_login' => '请先登录', 'unauthorized' => '无权访问', 'id' => 'ID', + 'year' => '年份', 'components' => [ 'content' => '内容', @@ -375,6 +376,7 @@ return [ 'health' => '身体状况', 'phone' => '联系方式', 'remark' => '备注', + 'is_master'=>'是否户主', //分户操作 'split_master' => '分户', @@ -382,8 +384,9 @@ return [ 'person_changes'=>[ 'changed_at' => '变动日期', 'extends_mark'=>'变动明细', - 'type' => '类别', + 'type' => '变动类别', 'phone'=>'联系方式', - 'created_at' => '操作时间' + 'created_at' => '操作时间', + 'remark' => '备注' ] ];