From 1f7276e4c4dd354743a261a1a58956340dfb7354 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 24 Sep 2020 10:10:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=8D=E5=88=B6=E6=B4=BB=E5=8A=A8=E5=95=86?= =?UTF-8?q?=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Actions/Grid/v3/GoodsActivityCopy.php | 39 +++++++ .../v3/GoodsActivityController.php | 5 +- app/Admin/Forms/v3/GoodsActivityCopyForm.php | 110 ++++++++++++++++++ 3 files changed, 152 insertions(+), 2 deletions(-) create mode 100644 app/Admin/Actions/Grid/v3/GoodsActivityCopy.php create mode 100644 app/Admin/Forms/v3/GoodsActivityCopyForm.php diff --git a/app/Admin/Actions/Grid/v3/GoodsActivityCopy.php b/app/Admin/Actions/Grid/v3/GoodsActivityCopy.php new file mode 100644 index 0000000..4f95bca --- /dev/null +++ b/app/Admin/Actions/Grid/v3/GoodsActivityCopy.php @@ -0,0 +1,39 @@ +getKey(); + $form = GoodsActivityCopyForm::make(['id'=>$this->row->id,'name'=>$this->row->name])->setKey($id); + + $modal = Modal::make() + ->xl() + ->title($this->title) + ->body($form) + ->button($this->title); + + return $modal; + } + + public function parameters() + { + + return [ + 'id' => $this->row->id, + 'name' => $this->row->name + ]; + } +} diff --git a/app/Admin/Controllers/v3/GoodsActivityController.php b/app/Admin/Controllers/v3/GoodsActivityController.php index 395a34b..5018974 100644 --- a/app/Admin/Controllers/v3/GoodsActivityController.php +++ b/app/Admin/Controllers/v3/GoodsActivityController.php @@ -2,6 +2,7 @@ namespace App\Admin\Controllers\v3; +use App\Admin\Actions\Grid\v3\GoodsActivityCopy; use App\Admin\Actions\Grid\v3\GoodsActivitySetting; use App\Admin\Repositories\v3\GoodsActivity; use Dcat\Admin\Form; @@ -88,7 +89,7 @@ class GoodsActivityController extends AdminController }); // 每页10条 $grid->paginate(10); - + $grid->actions([new GoodsActivityCopy()]); // $grid->tools([new GoodsActivitySetting()]); }); } @@ -179,7 +180,7 @@ class GoodsActivityController extends AdminController $form->text('name')->required()->maxLength(20); $form->image('cover_img')->autoUpload()->required(); $form->select('type')->options(GoodsActivityModel::$_TYPE)->default('flash_sale'); - $form->datetime('expire_time')->required()->format('YYYY-MM-DD HH:mm:ss')->help($form->model()->expire_time_text); + $form->datetime('expire_time')->required()->format('YYYY-MM-DD HH:mm:ss')->rules('after:now',['after'=>'活动结束时间必须大于当前时间!'])->help($form->model()->expire_time_text); }); $form->column(6, function (Form $form) { $form->currency('price')->required()->floatTwo()->symbol('¥'); diff --git a/app/Admin/Forms/v3/GoodsActivityCopyForm.php b/app/Admin/Forms/v3/GoodsActivityCopyForm.php new file mode 100644 index 0000000..cc34693 --- /dev/null +++ b/app/Admin/Forms/v3/GoodsActivityCopyForm.php @@ -0,0 +1,110 @@ +get(); + $markets = StoreModel::whereIn('id',$storeIds)->pluck('market_id','id'); + foreach($storeIds as $key =>$value){ + $storeId = $value; + $model = new GoodsModel(); + + $model->store_id = $storeId; + $model->market_id = $markets[$storeId]; + $model->category_id = $goods->category_id; + + $model->name = $goods->name; + $model->cover_img = $goods->cover_img; + $model->goods_unit = $goods->goods_unit; + + $model->tags = $goods->tags; + $model->spec = $goods->spec; + $model->details_imgs = $goods->details_imgs; + $model->content = $goods->content; + $model->details = $goods->details; + + $model->price = $goods->price; + $model->original_price = $goods->original_price; + $model->vip_price = $goods->vip_price; + + $model->start_num = $goods->start_num; + $model->restrict_num = $goods->restrict_num; + $model->is_infinite = $goods->is_infinite; + $model->inventory = $goods->inventory; + + $model->on_sale = $goods->on_sale; + $model->sort = $goods->sort; + $model->remark = $goods->remark; + + if($model->save() && !empty($goodsBanners)){ + $goodsId = $model->getKey(); + $banners = []; + foreach($goodsBanners as $kb => $vb){ + $banners[] = [ + 'goods_id' => $goodsId, + 'type' => $vb->type, + 'path' => $vb->path, + 'sort' => $vb->sort, + 'created_at' => time(), + 'updated_at' => time(), + ]; + GoodsBannerModel::insert($banners); + } + }; + } + + return $this->success('修改成功', '/goods'); + } + + /** + * Build a form here. + */ + public function form() + { + $id = $this->getKey(); + $name = $this->name ?? ''; + dd($name); + $this->hidden('id')->value($id); + + $this->display('name')->value($name); + $stores = StoreModel::getStoreArray(); + $this->multipleSelect('store_ids','选择店铺')->required()->options($stores)->help('选择店铺,将当前商品复制到所选店铺。注意选择重复店铺问题!!!'); + } + + /** + * The data of the form. + * + * @return array + */ + public function default() + { + return []; + } + +}