From a08604bf82f867b18fb811846ff956441150b5ae Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Mon, 1 Aug 2022 15:07:32 +0800 Subject: [PATCH] goods --- .../Controllers/Admin/GoodsController.php | 33 +++++++++++++++++++ packages/goods/src/Models/GoodsCategory.php | 14 ++++++++ 2 files changed, 47 insertions(+) diff --git a/packages/goods/src/Http/Controllers/Admin/GoodsController.php b/packages/goods/src/Http/Controllers/Admin/GoodsController.php index 3e18af5..c5ab3c6 100644 --- a/packages/goods/src/Http/Controllers/Admin/GoodsController.php +++ b/packages/goods/src/Http/Controllers/Admin/GoodsController.php @@ -2,6 +2,7 @@ namespace Peidikeji\Goods\Http\Controllers\Admin; +use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Grid\Tools\Selector; use Dcat\Admin\Http\Controllers\AdminController; @@ -80,4 +81,36 @@ class GoodsController extends AdminController $show->field('updated_at')->as(fn($v) => $this->updated_at->format('Y-m-d H:i:s')); return $show; } + + protected function form() + { + return Form::make(new Goods(), function (Form $form) { + $form->select('category_id')->options(GoodsCategory::selectOptions(null, false))->required(); + $form->select('brand_id')->options(GoodsBrand::pluck('name', 'id')); + $form->select('type_id')->options(GoodsType::pluck('name', 'id')); + $form->text('name')->required(); + $form->text('goods_sn'); + $form->image('cover_image') + ->autoUpload() + ->saveFullUrl() + ->move('goods') + ->required(); + $form->multipleImage('images') + ->autoUpload() + ->saveFullUrl() + ->move('goods'); + $form->multipleImage('content') + ->autoUpload() + ->saveFullUrl() + ->move('goods'); + + $form->number('price')->min(0)->attribute('step', 0.01); + $form->switch('on_sale'); + + $form->disableResetButton(); + $form->disableCreatingCheck(); + $form->disableViewCheck(); + $form->disableEditingCheck(); + }); + } } diff --git a/packages/goods/src/Models/GoodsCategory.php b/packages/goods/src/Models/GoodsCategory.php index a18c8dd..dda29e3 100644 --- a/packages/goods/src/Models/GoodsCategory.php +++ b/packages/goods/src/Models/GoodsCategory.php @@ -49,6 +49,20 @@ class GoodsCategory extends Model }); } + public static function selectOptions(\Closure $closure = null, $rootText = null) + { + $options = (new static())->withQuery($closure)->buildSelectOptions(); + + $list = collect($options); + + if ($rootText !== false) { + $rootText = $rootText ?: admin_trans_label('root'); + $list->prepend($rootText, 0); + } + + return $list->all(); + } + public function parent() { return $this->belongsTo(self::class, 'parent_id');