From e745df956e58532dd3ed43896c2397a20c140f7a Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Wed, 2 Nov 2022 17:54:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=90=8E=E5=8F=B0=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=86=9C=E4=BD=9C=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/CropController.php | 103 +++++++++++++++++++++++ app/Admin/routes.php | 2 + app/Models/Crop.php | 17 +++- dcat_admin_ide_helper.php | 3 +- lang/zh_CN/crop.php | 19 +++++ 5 files changed, 141 insertions(+), 3 deletions(-) create mode 100644 app/Admin/Controllers/CropController.php create mode 100644 lang/zh_CN/crop.php diff --git a/app/Admin/Controllers/CropController.php b/app/Admin/Controllers/CropController.php new file mode 100644 index 0000000..d21e37c --- /dev/null +++ b/app/Admin/Controllers/CropController.php @@ -0,0 +1,103 @@ +column('id')->sortable(); + $grid->column('category.name', '行业'); + $grid->column('parent.name', '上级'); + // $grid->column('crop_type'); + $grid->column('name'); + $grid->column('is_end')->bool(); + $grid->column('unit'); + $grid->column('sort'); + // $grid->column('extends'); + $grid->column('created_at')->sortable(); + // $grid->column('updated_at') + + $grid->showCreateButton(! config('admin.permission.enable') || Admin::user()->can('dcat.admin.crops.create')); + $grid->showQuickEditButton(! config('admin.permission.enable') || Admin::user()->can('dcat.admin.crops.edit')); + $grid->showDeleteButton(! config('admin.permission.enable') || Admin::user()->can('dcat.admin.crops.destroy')); + + $grid->filter(function (Grid\Filter $filter) { + $filter->like('name')->width(3); + + }); + }); + } + + /** + * Make a show builder. + * + * @param mixed $id + * + * @return Show + */ + protected function detail($id) + { + return Show::make($id, new Crop(), function (Show $show) { + $show->field('id'); + $show->field('category_id'); + $show->field('parent_id'); + $show->field('crop_type'); + $show->field('name'); + $show->field('is_end'); + $show->field('unit'); + $show->field('sort'); + $show->field('extends'); + $show->field('created_at'); + $show->field('updated_at'); + }); + } + + /** + * Make a form builder. + * + * @return Form + */ + protected function form() + { + return Form::make(new Crop(), function (Form $form) { + $form->display('id'); + $form->select('category_id')->options(Keywords::where('type_key', 'crops-category')->get()->pluck('name', 'id')); + $form->select('parent_id')->options(Crop::selectOptions(function($q){ + return $q->where('is_end', 0); + }))->required(); + // $form->text('parent_id'); + $form->radio('crop_type')->options([ + 1=> '基地', + 2=> '镇街' + ])->default(2); + $form->text('name'); + $form->switch('is_end'); + $form->text('unit'); + $form->number('sort'); + $form->table('extends', function ($table) { + $table->text('name', '类目'); + $table->text('unit', '单位'); + })->saving(function ($v) { + return json_encode($v); + }); + + $form->display('created_at'); + $form->display('updated_at'); + }); + } +} diff --git a/app/Admin/routes.php b/app/Admin/routes.php index d88406e..00bbdf2 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -16,4 +16,6 @@ Route::group([ $router->resource('friend-links', 'FriendLinkController')->names('friend_links'); $router->resource('agricultural-bases', 'AgriculturalBaseController')->names('agricultural_bases'); + + $router->resource('crops', 'CropController')->names('crops'); }); diff --git a/app/Models/Crop.php b/app/Models/Crop.php index 6ec7214..9ca183c 100644 --- a/app/Models/Crop.php +++ b/app/Models/Crop.php @@ -4,10 +4,17 @@ namespace App\Models; use EloquentFilter\Filterable; use Illuminate\Database\Eloquent\Model; +use Peidikeji\Keywords\Models\Keywords; +use Dcat\Admin\Traits\HasDateTimeFormatter; +use Dcat\Admin\Traits\ModelTree; class Crop extends Model { - use Filterable; + use ModelTree,Filterable,HasDateTimeFormatter; + + protected $titleColumn = 'name'; + + protected $orderColumn = 'sort'; protected $casts = [ 'extends' => 'array' @@ -27,4 +34,12 @@ class Crop extends Model 'extends', 'crop_type' ]; + + public function category(){ + return $this->belongsTo(Keywords::class, 'category_id'); + } + + public function parent(){ + return $this->belongsTo(self::class, 'parent_id'); + } } diff --git a/dcat_admin_ide_helper.php b/dcat_admin_ide_helper.php index 34c3eff..cc66558 100644 --- a/dcat_admin_ide_helper.php +++ b/dcat_admin_ide_helper.php @@ -503,8 +503,7 @@ namespace Dcat\Admin { class Show {} /** - * @method \Amap amap(...$params) - * @method \Region region(...$params) + * @method \App\Admin\Form\Amap amap(...$params) */ class Form {} diff --git a/lang/zh_CN/crop.php b/lang/zh_CN/crop.php new file mode 100644 index 0000000..3ef8266 --- /dev/null +++ b/lang/zh_CN/crop.php @@ -0,0 +1,19 @@ + [ + 'Crop' => 'Crop', + 'crop' => 'Crop', + ], + 'fields' => [ + 'category_id' => '行业', + 'parent_id' => '父级', + 'crop_type' => '类别', + 'name' => '名称', + 'is_end' => '是否结点', + 'unit' => '单位', + 'sort' => '排序', + 'extends' => '扩展字段', + ], + 'options' => [ + ], +];