From 6080a77a455fff62c06bd84abb437587a6830d16 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 5 Nov 2020 14:41:12 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=95=86=E5=93=81-=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=90=8D=E7=A7=B0=E4=BD=BF=E7=94=A8uniqueNam?= =?UTF-8?q?e()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/v3/GoodsActivityController.php | 8 ++++---- app/Admin/Controllers/v3/GoodsController.php | 8 ++++---- app/Admin/Forms/v3/GoodsImageForm.php | 10 ++++------ 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/app/Admin/Controllers/v3/GoodsActivityController.php b/app/Admin/Controllers/v3/GoodsActivityController.php index 3c62395..8dd9914 100644 --- a/app/Admin/Controllers/v3/GoodsActivityController.php +++ b/app/Admin/Controllers/v3/GoodsActivityController.php @@ -196,9 +196,9 @@ class GoodsActivityController extends AdminController $form->select('store_id')->required()->options($storeList); $form->text('name')->required()->maxLength(20); if($form->isCreating()){ - $form->image('cover_img')->autoUpload()->retainable()->required(); + $form->image('cover_img')->uniqueName()->autoUpload()->retainable()->required(); }else{ - $form->image('cover_img')->autoUpload()->required(); + $form->image('cover_img')->uniqueName()->autoUpload()->required(); } $form->select('type')->options(GoodsActivityModel::$_TYPE)->default('flash_sale'); $form->datetime('expire_time')->required()->format('YYYY-MM-DD HH:mm:ss')->rules('after:now',['after'=>'活动结束时间必须大于当前时间!'])->customFormat(function ($v) { @@ -220,13 +220,13 @@ class GoodsActivityController extends AdminController }); $form->column(12, function (Form $form) { $form->hasMany('image_banners', function (Form\NestedForm $form) { - $form->image('path')->autoUpload()->width(2); + $form->image('path')->uniqueName()->autoUpload()->width(2); $form->number('sort')->width(2)->default(0); $form->hidden('type')->value(1)->default(1); })->required(); $form->divider(); $form->hasMany('video_banners', function (Form\NestedForm $form) { - $form->file('path')->autoUpload()->width(2); + $form->file('path')->uniqueName()->autoUpload()->width(2); $form->number('sort')->width(2)->default(0); $form->hidden('type')->value(2)->default(2); }); diff --git a/app/Admin/Controllers/v3/GoodsController.php b/app/Admin/Controllers/v3/GoodsController.php index 9b11b19..ace4190 100644 --- a/app/Admin/Controllers/v3/GoodsController.php +++ b/app/Admin/Controllers/v3/GoodsController.php @@ -220,9 +220,9 @@ class GoodsController extends AdminController $form->select('store_id')->required()->options($storeList); $form->text('name')->required()->maxLength(20); if($form->isCreating()){ - $form->image('cover_img')->autoUpload()->retainable()->required(); + $form->image('cover_img')->uniqueName()->autoUpload()->retainable()->required(); }else{ - $form->image('cover_img')->autoUpload()->required(); + $form->image('cover_img')->uniqueName()->autoUpload()->required(); } $form->number('sort'); }); @@ -238,13 +238,13 @@ class GoodsController extends AdminController }); $form->column(12, function (Form $form) { $form->hasMany('image_banners', function (Form\NestedForm $form) { - $form->image('path')->autoUpload()->required()->width(2); + $form->image('path')->uniqueName()->autoUpload()->required()->width(2); $form->number('sort')->width(2)->default(0); $form->hidden('type')->value(1)->default(1); })->required(); $form->divider(); $form->hasMany('video_banners', function (Form\NestedForm $form) { - $form->file('path')->autoUpload()->width(2); + $form->file('path')->uniqueName()->autoUpload()->width(2); $form->number('sort')->width(2)->default(0); $form->hidden('type')->value(2)->default(2); }); diff --git a/app/Admin/Forms/v3/GoodsImageForm.php b/app/Admin/Forms/v3/GoodsImageForm.php index d4b420b..3903377 100644 --- a/app/Admin/Forms/v3/GoodsImageForm.php +++ b/app/Admin/Forms/v3/GoodsImageForm.php @@ -30,7 +30,7 @@ class GoodsImageForm extends Form implements LazyRenderable $coverImg= $input['cover_img']; $bannerImg= $input['img_banner']; - if($goodsId > 0 && !empty($coverImg)){ + if($goodsId > 0 && !empty($coverImg) && strlen($coverImg) < 200){ $data = ['cover_img' => $coverImg]; $res1 = GoodsModel::where('id',$goodsId)->update($data); } @@ -63,15 +63,13 @@ class GoodsImageForm extends Form implements LazyRenderable $goodName = $this->payload['name'] ?? ''; $coverImg = $this->payload['cover_img'] ?? ''; $this->search = $this->payload['search'] ?? ''; - // $goods = GoodsModel::select('name','cover_img')->find($id); - // $goodName = empty($goods->name)?'':$goods->name; - // $coverImg = empty($goods->cover_img) ? '':$goods->cover_img; + $this->hidden('goods_id')->value($id); $this->display('name','商品名称')->value($goodName); - $this->image('cover_img','封面图')->customFormat(function($cover_img) use($coverImg){ + $this->image('cover_img','封面图')->uniqueName()->customFormat(function() use($coverImg){ return [$coverImg]; })->autoUpload(); - $this->multipleImage('img_banner','轮播图')->customFormat(function($img_banner) use($id){ + $this->multipleImage('img_banner','轮播图')->uniqueName()->customFormat(function() use($id){ if(!$id){ return ; } From 6329ed2df473ef7c0a9df7529a8c0be5edf64f46 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 5 Nov 2020 15:36:29 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=95=86=E5=93=81=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0--=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E8=BF=87=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Forms/v3/GoodsImageForm.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/Admin/Forms/v3/GoodsImageForm.php b/app/Admin/Forms/v3/GoodsImageForm.php index 3903377..0388481 100644 --- a/app/Admin/Forms/v3/GoodsImageForm.php +++ b/app/Admin/Forms/v3/GoodsImageForm.php @@ -30,7 +30,14 @@ class GoodsImageForm extends Form implements LazyRenderable $coverImg= $input['cover_img']; $bannerImg= $input['img_banner']; - if($goodsId > 0 && !empty($coverImg) && strlen($coverImg) < 200){ + if($goodsId > 0 && !empty($coverImg)){ + $lastLen = strrpos($coverImg,','); + if($lastLen != false){ + $coverImg = substr($coverImg,$lastLen+1); + } + if(strlen($coverImg) > 200){ + return $this->error('上传图片名称过长'); + } $data = ['cover_img' => $coverImg]; $res1 = GoodsModel::where('id',$goodsId)->update($data); } From 48534cd57abcff8418d89be2b47843258aa49ac6 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Thu, 5 Nov 2020 16:57:52 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=BA=97=E9=93=BA=E6=9B=B4=E6=8D=A2?= =?UTF-8?q?=E5=B8=82=E5=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Actions/Grid/v3/StoreChangeMarket.php | 40 ++++++++++ app/Admin/Controllers/v3/StoreController.php | 18 ++++- app/Admin/Forms/v3/StoreChangeMarketForm.php | 76 +++++++++++++++++++ 3 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 app/Admin/Actions/Grid/v3/StoreChangeMarket.php create mode 100644 app/Admin/Forms/v3/StoreChangeMarketForm.php diff --git a/app/Admin/Actions/Grid/v3/StoreChangeMarket.php b/app/Admin/Actions/Grid/v3/StoreChangeMarket.php new file mode 100644 index 0000000..6c20205 --- /dev/null +++ b/app/Admin/Actions/Grid/v3/StoreChangeMarket.php @@ -0,0 +1,40 @@ +getKey(); + + $modal = Modal::make() + ->xl() + ->title($this->title) + ->body(StoreChangeMarketForm::make()->setKey($id)->payload([ + 'id'=>$this->row->id, + 'name'=>$this->row->name, + 'market_id'=>$this->row->market_id + ])) + ->button($this->title); + + return $modal; + } + + public function parameters() + { + + return [ + + ]; + } +} diff --git a/app/Admin/Controllers/v3/StoreController.php b/app/Admin/Controllers/v3/StoreController.php index de95853..cf6eb29 100644 --- a/app/Admin/Controllers/v3/StoreController.php +++ b/app/Admin/Controllers/v3/StoreController.php @@ -2,6 +2,7 @@ namespace App\Admin\Controllers\v3; +use App\Admin\Actions\Grid\v3\StoreChangeMarket; use App\Admin\Common\Auth; use App\Admin\Repositories\v3\Store; use App\Models\LanzuMmInfo; @@ -97,7 +98,13 @@ class StoreController extends AdminController $grid->is_operation->switch(); $grid->is_open->switch(); - $grid->actions([new StoreSetTime()]); + $actions = [ + new StoreSetTime() + ]; + if($this->storeChangeMarketCan()){ + $actions[] = new StoreChangeMarket(); + } + $grid->actions($actions); // 搜索 $grid->filter(function (Grid\Filter $filter) use($marketList){ $filter->equal('id'); @@ -422,4 +429,13 @@ class StoreController extends AdminController $user = Admin::user(); return $user->can('store_balance'); } + + /** + * @return bool + */ + protected function storeChangeMarketCan(): bool + { + $user = Admin::user(); + return $user->can('store_change_market'); + } } diff --git a/app/Admin/Forms/v3/StoreChangeMarketForm.php b/app/Admin/Forms/v3/StoreChangeMarketForm.php new file mode 100644 index 0000000..cfa1ad5 --- /dev/null +++ b/app/Admin/Forms/v3/StoreChangeMarketForm.php @@ -0,0 +1,76 @@ +error('店铺不存在!'); + } + + $goods = GoodsModel::select('id')->where('store_id',$id)->first(); + if($goods){ + return $this->error('店铺存在商品,不可更换市场!'); + } + if(!empty($marketId)){ + $store->market_id = $marketId; + } + if($store->save()){ + return $this->success('修改成功!'); + } + + return $this->error('未做任何修改或者修改失败!'); + } + + /** + * Build a form here. + */ + public function form() + { + $id = $this->payload['id'] ?? 0; + $name = $this->payload['name'] ?? ''; + $marketId = $this->payload['market_id'] ?? 0; + + $marketList = MarketModel::getMarketArray(); + unset($marketList[$marketId]); + + $this->hidden('id')->value($id); + $this->display('name','店铺')->value($name); + + $this->select('market_id','所属市场')->options($marketList)->required(); + } + + /** + * The data of the form. + * + * @return array + */ + public function default() + { + return []; + } + +} From 0eb01b067f239ed074f3f6d8b1b9dbf10d5249fb Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Fri, 6 Nov 2020 15:26:42 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=95=86=E5=93=81=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E5=8A=9F=E8=83=BD-=E4=BF=AE=E6=94=B9=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=A4=8D=E5=88=B6=E8=BD=AE=E6=92=AD=E5=9B=BE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Forms/v3/GoodsActivityCopyForm.php | 3 +-- app/Admin/Forms/v3/GoodsCopyForm.php | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/Admin/Forms/v3/GoodsActivityCopyForm.php b/app/Admin/Forms/v3/GoodsActivityCopyForm.php index 0f360d7..d4a24dc 100644 --- a/app/Admin/Forms/v3/GoodsActivityCopyForm.php +++ b/app/Admin/Forms/v3/GoodsActivityCopyForm.php @@ -84,9 +84,8 @@ class GoodsActivityCopyForm extends Form implements LazyRenderable if($model->save() && !empty($goodsBanners)){ $goodsId = $model->getKey(); - $banners = []; foreach($goodsBanners as $kb => $vb){ - $banners[] = [ + $banners = [ 'goods_id' => $goodsId, 'type' => $vb->type, 'path' => $vb->path, diff --git a/app/Admin/Forms/v3/GoodsCopyForm.php b/app/Admin/Forms/v3/GoodsCopyForm.php index fcaed64..aac8d66 100644 --- a/app/Admin/Forms/v3/GoodsCopyForm.php +++ b/app/Admin/Forms/v3/GoodsCopyForm.php @@ -24,7 +24,7 @@ class GoodsCopyForm extends Form // 获取外部传递参数 $goodsId = $input['goods_id']; $storeIds= $input['store_ids']; - + $goods = GoodsModel::find($goodsId); $goodsBanners = GoodsBannerModel::where('goods_id',$goodsId)->get(); $markets = StoreModel::whereIn('id',$storeIds)->pluck('market_id','id'); @@ -61,9 +61,8 @@ class GoodsCopyForm extends Form if($model->save() && !empty($goodsBanners)){ $goodsId = $model->getKey(); - $banners = []; foreach($goodsBanners as $kb => $vb){ - $banners[] = [ + $banners = [ 'goods_id' => $goodsId, 'type' => $vb->type, 'path' => $vb->path, From cfe452b39e504ff88a15ae29c07bbeb4ed94a520 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Fri, 6 Nov 2020 16:10:25 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=95=86=E5=93=81=E5=B0=81=E9=9D=A2?= =?UTF-8?q?=E5=9B=BE--=E7=A6=81=E6=AD=A2=E5=88=A0=E9=99=A4=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E7=9A=84=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Forms/v3/GoodsImageForm.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Admin/Forms/v3/GoodsImageForm.php b/app/Admin/Forms/v3/GoodsImageForm.php index 0388481..263dfcd 100644 --- a/app/Admin/Forms/v3/GoodsImageForm.php +++ b/app/Admin/Forms/v3/GoodsImageForm.php @@ -73,7 +73,7 @@ class GoodsImageForm extends Form implements LazyRenderable $this->hidden('goods_id')->value($id); $this->display('name','商品名称')->value($goodName); - $this->image('cover_img','封面图')->uniqueName()->customFormat(function() use($coverImg){ + $this->image('cover_img','封面图')->uniqueName()->retainable()->customFormat(function() use($coverImg){ return [$coverImg]; })->autoUpload(); $this->multipleImage('img_banner','轮播图')->uniqueName()->customFormat(function() use($id){