Browse Source

商品添加轮播图-可添加多张

master
liangyuyan 5 years ago
parent
commit
f9d1277c21
  1. 7
      app/Admin/Actions/Grid/v3/GoodsImage.php
  2. 2
      app/Admin/Controllers/v3/CouponController.php
  3. 60
      app/Admin/Forms/v3/GoodsImageForm.php
  4. 1
      app/Admin/routes.php
  5. 2
      app/Models/v3/GoodsBanners.php

7
app/Admin/Actions/Grid/v3/GoodsImage.php

@ -20,7 +20,12 @@ class GoodsImage extends RowAction
$modal = Modal::make()
->xl()
->title($this->title)
->body(GoodsImageForm::make()->setKey($id))
->body(GoodsImageForm::make()->setKey($id)->payload([
'id'=>$this->row->id,
'name'=>$this->row->name,
'search'=>$_REQUEST,
'cover_img'=>$this->row->cover_img
]))
->button($this->title);
return $modal;

2
app/Admin/Controllers/v3/CouponController.php

@ -71,7 +71,7 @@ class CouponController extends AdminController
unset($status[-1]);/* 去掉删除状态 */
$filter->in('status')->multipleSelect($status);
});
// $grid->actions();
$grid->disableBatchDelete();
$grid->disableCreateButton();
$grid->disableDeleteButton();

60
app/Admin/Forms/v3/GoodsImageForm.php

@ -7,11 +7,15 @@ use Dcat\Admin\Widgets\Form;
use Symfony\Component\HttpFoundation\Response;
use App\Models\v3\Goods as GoodsModel;
use App\Models\v3\GoodsBanners as GoodsBannerModel;
use Dcat\Admin\Contracts\LazyRenderable;
use Dcat\Admin\Traits\LazyWidget;
use Illuminate\Support\Facades\DB;
class GoodsImageForm extends Form
class GoodsImageForm extends Form implements LazyRenderable
{
use LazyWidget;
protected $search = '';
/**
* Handle the form request.
*
@ -28,22 +32,26 @@ class GoodsImageForm extends Form
if($goodsId > 0 && !empty($coverImg)){
$data = ['cover_img' => $coverImg];
GoodsModel::where('id',$goodsId)->update($data);
$res1 = GoodsModel::where('id',$goodsId)->update($data);
}
if($goodsId > 0 && !empty($bannerImg)){
$banner = GoodsBannerModel::where('goods_id',$goodsId)->first();
if(empty($banner)){
$banner = GoodsBannerModel::where('goods_id',$goodsId)->delete();
foreach($bannerImg as $value){
$banner = new GoodsBanners();
$banner->goods_id = $goodsId;
$banner->type = 1;
$banner->created_at = time();
$banner->updated_at = time();
$banner->path = $value;
$res2 = $banner->save();
}
$banner->path = $bannerImg;
$banner->updated_at = time();
$banner->save();
}
return $this->error('修改成功');
if((isset($res1) && $res1) || (isset($res2) && $res2)){
return $this->success('修改成功','/goods?'.$this->getSearch($this->search));
}
return $this->error('未做任何修改');
}
/**
@ -51,13 +59,25 @@ class GoodsImageForm extends Form
*/
public function form()
{
$id = $this->getKey();
$goods = GoodsModel::select('name')->find($id);
$goodName = empty($goods->name)?'':$goods->name;
$id = $this->payload['id'] ?? 0;
$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','封面图')->autoUpload();
$this->image('img_banner','轮播图')->autoUpload();
$this->image('cover_img','封面图')->customFormat(function($cover_img) use($coverImg){
return [$coverImg];
})->autoUpload();
$this->multipleImage('img_banner','轮播图')->customFormat(function($img_banner) use($id){
if(!$id){
return ;
}
$banners = GoodsBanners::where('goods_id',$id)->pluck('path')->toArray();
return empty($banners) ? [] : $banners;
})->autoUpload();
}
/**
@ -70,4 +90,16 @@ class GoodsImageForm extends Form
return [];
}
public function getSearch($data)
{
$return = '';
if(is_array($data) && count($data) > 0){
unset($data['_pjax']);
foreach($data as $key => $value){
$return .= $key.'='.$value.'&';
}
}
return $return;
}
}

1
app/Admin/routes.php

@ -60,7 +60,6 @@ Route::group([
// 商品
$router->resource('/goods', 'v3\GoodsController');
$router->resource('/goods_activity', 'v3\GoodsActivityController');
$router->resource('/goods_new', 'v3\GoodsNewController');
$router->get('/activity_setting', 'v3\GoodsActivityController@SettingForm');
// 平台管理

2
app/Models/v3/GoodsBanners.php

@ -9,7 +9,7 @@ use Illuminate\Database\Eloquent\Model;
class GoodsBanners extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
// use SoftDeletes;
protected $table = 'lanzu_goods_banners';
protected $dateFormat = 'U';

Loading…
Cancel
Save