Browse Source

商品列表显示轮播图

商品图片在新建的时候上传失败时会删除问题
master
liangyuyan 5 years ago
parent
commit
1b290bc0fa
  1. 8
      app/Admin/Controllers/v3/GoodsActivityController.php
  2. 31
      app/Admin/Controllers/v3/GoodsController.php
  3. 10
      app/Admin/Controllers/v3/StoreController.php
  4. 31
      app/Models/v3/GoodsBanners.php

8
app/Admin/Controllers/v3/GoodsActivityController.php

@ -179,7 +179,11 @@ class GoodsActivityController extends AdminController
$form->select('goods_category_id'); $form->select('goods_category_id');
$form->select('store_id')->required()->options($storeList); $form->select('store_id')->required()->options($storeList);
$form->text('name')->required()->maxLength(20); $form->text('name')->required()->maxLength(20);
if($form->isCreating()){
$form->image('cover_img')->autoUpload()->retainable()->required();
}else{
$form->image('cover_img')->autoUpload()->required(); $form->image('cover_img')->autoUpload()->required();
}
$form->select('type')->options(GoodsActivityModel::$_TYPE)->default('flash_sale'); $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'=>'活动结束时间必须大于当前时间!'])->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);
}); });
@ -236,6 +240,7 @@ class GoodsActivityController extends AdminController
$isInfinite = $form->input('is_infinite'); $isInfinite = $form->input('is_infinite');
$inventory = $form->input('inventory'); $inventory = $form->input('inventory');
$onSale = $form->input('on_sale'); $onSale = $form->input('on_sale');
$remark = $form->input('remark');
// 库存 // 库存
if(!empty($inventory) && empty($onSale)){ if(!empty($inventory) && empty($onSale)){
@ -254,7 +259,7 @@ class GoodsActivityController extends AdminController
if(!empty($onSale) && $onSale == 1 && $expireTime <= time()){ if(!empty($onSale) && $onSale == 1 && $expireTime <= time()){
return $form->error('活动结束时间必须大于当前时间,请修改后再上架!'); return $form->error('活动结束时间必须大于当前时间,请修改后再上架!');
}else if(!empty($onSale) && $onSale == 1 && $inventory <= 0 && $isInfinite == 0){ }else if(!empty($onSale) && $onSale == 1 && $inventory <= 0 && $isInfinite == 0){
return $form->error('商品上架或者关闭无限库存时,库存必须为大于0的数字');
return $form->error('商品上架关闭无限库存时,库存必须为大于0的数字');
} }
if(!empty($storeId)){ if(!empty($storeId)){
@ -262,6 +267,7 @@ class GoodsActivityController extends AdminController
$info = StoreModel::getStoreInfo($storeId,'market_id'); $info = StoreModel::getStoreInfo($storeId,'market_id');
$form->market_id = $info->market_id; $form->market_id = $info->market_id;
$form->market_ids = ["$info->market_id"]; $form->market_ids = ["$info->market_id"];
$form->remark = $remark ? $remark : '';
} }
$tagsArr = []; $tagsArr = [];

31
app/Admin/Controllers/v3/GoodsController.php

@ -18,6 +18,7 @@ use Dcat\Admin\Form\NestedForm;
use App\Models\v3\Goods as GoodsModel; use App\Models\v3\Goods as GoodsModel;
use App\Models\v3\Market as MarketModel; use App\Models\v3\Market as MarketModel;
use App\Models\v3\GoodsCategory as GoodsCategoryModel; use App\Models\v3\GoodsCategory as GoodsCategoryModel;
use App\Models\v3\GoodsBanners as GoodsBannersModel;
class GoodsController extends AdminController class GoodsController extends AdminController
{ {
@ -48,6 +49,11 @@ class GoodsController extends AdminController
$grid->id->sortable(); $grid->id->sortable();
$grid->cover_img_url->image('',50); $grid->cover_img_url->image('',50);
$grid->column('banners')->display(function () {
$id = $this->id;
$banners = GoodsBannersModel::getArray([['goods_id','=',$id]]);
return $banners;
})->image('', 50);
$grid->name->editable(); $grid->name->editable();
$grid->price->editable(); $grid->price->editable();
$grid->column('goods_unit','单位')->editable(); $grid->column('goods_unit','单位')->editable();
@ -152,7 +158,7 @@ class GoodsController extends AdminController
}); });
$show->width(6)->spec->as(function ($value){ $show->width(6)->spec->as(function ($value){
$text = ''; $text = '';
if($value){
if($value && is_array($value)){
foreach ($value as $v){ foreach ($value as $v){
$specKey = isset($v['spec_key'])?$v['spec_key']:''; $specKey = isset($v['spec_key'])?$v['spec_key']:'';
$specValue = isset($v['spec_value'])?$v['spec_value']:''; $specValue = isset($v['spec_value'])?$v['spec_value']:'';
@ -198,19 +204,23 @@ class GoodsController extends AdminController
// 二级分类 // 二级分类
$categoryList = CategoryModel::getArray([['parent_id','>',0]]); $categoryList = CategoryModel::getArray([['parent_id','>',0]]);
// 商品类目 // 商品类目
$goodsCategoryList = GoodsCategoryModel::getArray();
// $goodsCategoryList = GoodsCategoryModel::getArray();
// 店铺 // 店铺
$storeList = StoreModel::getStoreArray(); $storeList = StoreModel::getStoreArray();
//市场 //市场
// $marketList = MarketModel::getMarketArray(); // $marketList = MarketModel::getMarketArray();
$form->column(6, function (Form $form) use($storeList,$categoryList,$goodsCategoryList ){
$form->column(6, function (Form $form) use($storeList,$categoryList){
$form->hidden('market_id')->default(0); $form->hidden('market_id')->default(0);
$form->select('category_id')->required()->options($categoryList)->load('goods_category_id', '/api/goods_category_list'); $form->select('category_id')->required()->options($categoryList)->load('goods_category_id', '/api/goods_category_list');
$form->select('goods_category_id'); $form->select('goods_category_id');
$form->select('store_id')->required()->options($storeList); $form->select('store_id')->required()->options($storeList);
$form->text('name')->required()->maxLength(20); $form->text('name')->required()->maxLength(20);
if($form->isCreating()){
$form->image('cover_img')->autoUpload()->retainable()->required();
}else{
$form->image('cover_img')->autoUpload()->required(); $form->image('cover_img')->autoUpload()->required();
}
$form->number('sort'); $form->number('sort');
}); });
$form->column(6, function (Form $form) { $form->column(6, function (Form $form) {
@ -266,11 +276,26 @@ class GoodsController extends AdminController
$spec = $form->input('spec'); $spec = $form->input('spec');
$detailsImgs = $form->input('details_imgs'); $detailsImgs = $form->input('details_imgs');
$goodsCategoryId = $form->input('goods_category_id'); $goodsCategoryId = $form->input('goods_category_id');
$isInfinite = $form->input('is_infinite');
$inventory = $form->input('inventory');
$onSale = $form->input('on_sale');
$remark = $form->input('remark');
$OldInventory = $form->model()->inventory;
$OldIsInfinite = $form->model()->is_infinite;
$isInfinite = empty($isInfinite)?$OldIsInfinite:$isInfinite;
$inventory = empty($inventory)?$OldInventory:$inventory;
if(!empty($onSale) && $onSale == 1 && $inventory <= 0 && $isInfinite == 0){
return $form->error('商品上架且关闭无限库存时,库存必须为大于0的数字');
}
if(!empty($storeId)){ if(!empty($storeId)){
// 商品所属市场,根据店铺查询市场 // 商品所属市场,根据店铺查询市场
$info = StoreModel::getStoreInfo($storeId,'market_id'); $info = StoreModel::getStoreInfo($storeId,'market_id');
$form->market_id = $info->market_id; $form->market_id = $info->market_id;
$form->remark = $remark ? $remark : '';
} }
$tagsArr = []; $tagsArr = [];

10
app/Admin/Controllers/v3/StoreController.php

@ -193,7 +193,11 @@ class StoreController extends AdminController
$form->select('market_id')->required()->options($marketList)->help('谨慎选择所属市场,添加成功后不能修改所属市场,因为会影响商品所属市场!'); $form->select('market_id')->required()->options($marketList)->help('谨慎选择所属市场,添加成功后不能修改所属市场,因为会影响商品所属市场!');
$form->select('category_id')->options($categoryList); $form->select('category_id')->options($categoryList);
$form->text('name')->required()->maxLength(50); $form->text('name')->required()->maxLength(50);
if($form->isCreating()){
$form->image('logo')->autoUpload()->retainable()->required();
}else{
$form->image('logo')->autoUpload()->required(); $form->image('logo')->autoUpload()->required();
}
$form->mobile('tel'); $form->mobile('tel');
$form->text('link_name')->required(); $form->text('link_name')->required();
$form->mobile('link_tel')->required(); $form->mobile('link_tel')->required();
@ -215,9 +219,15 @@ class StoreController extends AdminController
$form->text('address')->required(); $form->text('address')->required();
}); });
$form->column(6, function (Form $form) { $form->column(6, function (Form $form) {
if($form->isCreating()){
$form->image('business_license')->autoUpload()->retainable()->required();
$form->image('zm_img')->autoUpload()->retainable()->required();
$form->image('fm_img')->autoUpload()->retainable()->required();
}else{
$form->image('business_license')->autoUpload()->required(); $form->image('business_license')->autoUpload()->required();
$form->image('zm_img')->autoUpload()->required(); $form->image('zm_img')->autoUpload()->required();
$form->image('fm_img')->autoUpload()->required(); $form->image('fm_img')->autoUpload()->required();
}
// $form->select('admin_id')->options($userList)->required(); // $form->select('admin_id')->options($userList)->required();
// $form->select('user_id')->options($userList)->required(); // $form->select('user_id')->options($userList)->required();
$form->number('admin_id')->required()->min(0); $form->number('admin_id')->required()->min(0);

31
app/Models/v3/GoodsBanners.php

@ -15,4 +15,35 @@ class GoodsBanners extends Model
protected $dateFormat = 'U'; protected $dateFormat = 'U';
protected $fillable = ['path', 'id', 'goods_id','type','url']; protected $fillable = ['path', 'id', 'goods_id','type','url'];
/**
* 获取单个信息
* @param int $id
* @param string $field
* @return string
*/
public static function getInfo($id,$field = '*')
{
return self::select($field)->find($id);
}
/**
* 获取二级分类数组
* id为键,path为值
* @return array
*/
public static function getArray($where = [],$options = [])
{
$model = self::whereNull('deleted_at');
if(count($where) > 0){
$model->where($where);
}
$list = $model->pluck('id','path')->toArray();
if(!empty($options)){
$new = array_merge($options,$list);
return array_flip($new);
}else{
return array_flip($list);
}
}
} }
Loading…
Cancel
Save