Browse Source

商品添加完成,banner排序字段保存没成功

master
liangyuyan 6 years ago
parent
commit
6731579785
  1. 86
      app/Admin/Controllers/GoodsController.php
  2. 22
      app/Models/Goods.php
  3. 18
      app/Models/GoodsBanners.php
  4. 2
      app/Models/LanzuMmInfo.php
  5. 4
      app/Models/Store.php
  6. 11
      resources/lang/zh-CN/goods.php

86
app/Admin/Controllers/GoodsController.php

@ -3,7 +3,6 @@
namespace App\Admin\Controllers; namespace App\Admin\Controllers;
use App\Admin\Repositories\Goods; use App\Admin\Repositories\Goods;
use App\Models\Store;
use Dcat\Admin\Form; use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Show; use Dcat\Admin\Show;
@ -11,6 +10,8 @@ use Dcat\Admin\Controllers\AdminController;
use App\Models\GoodsType as GoodsTypeModel; use App\Models\GoodsType as GoodsTypeModel;
use App\Models\Store as StoreModel; use App\Models\Store as StoreModel;
use Dcat\Admin\Form\NestedForm; use Dcat\Admin\Form\NestedForm;
use App\Models\Goods as goodsModel;
use App\Models\ImsCjdcMarket as MarketModel;
class GoodsController extends AdminController class GoodsController extends AdminController
{ {
@ -37,13 +38,17 @@ class GoodsController extends AdminController
$grid->price; $grid->price;
$grid->sort->sortable(); $grid->sort->sortable();
$grid->on_sale->switch();
// $grid->on_sale->switch();
$grid->on_sale->switch()
->saving(function ($v) {
return $v == 1 ? '在售' : '下架';
});
$grid->filter(function (Grid\Filter $filter) { $grid->filter(function (Grid\Filter $filter) {
$filter->equal('id'); $filter->equal('id');
}); });
$grid->model()->orderBy('id', 'desc');
// 每页10条 // 每页10条
$grid->paginate(10); $grid->paginate(10);
}); });
@ -90,46 +95,59 @@ class GoodsController extends AdminController
*/ */
protected function form() protected function form()
{ {
return Form::make(new Goods(), function (Form $form) {
$builder = goodsModel::with(['ImageBanners','VideoBanners']);
return Form::make($builder, function (Form $form) {
$form->hidden('id'); $form->hidden('id');
// 二级分类(商品分类) // 二级分类(商品分类)
$goodsTypeList = GoodsTypeModel::getGoodsTypeArray(); $goodsTypeList = GoodsTypeModel::getGoodsTypeArray();
// 店铺 // 店铺
$store = StoreModel::getStoreArray();
$form->select('goods_type_id')->width(4)->required()->options($goodsTypeList);
$form->select('store_id')->width(4)->required()->options($store);
$form->text('name')->width(4)->required()->maxLength(20);
$form->image('cover_img')->width(2)->required();
$form->currency('price')->width(4)->required()->floatTwo()->symbol('¥');
$form->currency('original_price')->width(4)->required()->floatTwo()->symbol('¥');
$form->currency('vip_price')->width(4)->required()->floatTwo()->symbol('¥');
$form->text('good_unit')->width(4)->help('如:斤,个,盒,500克,1000克,1500克等')->saveAsJson();
$form->switch('is_infinite');
$form->number('inventory')->width(2)->required()->attribute('min', 1)->default(1);
$form->number('restrict_num')->width(2)->attribute('min', 0)->default(0)->help('0表示不限购');
$form->number('start_num')->width(2)->attribute('min', 1)->default(1);
$storeList = StoreModel::getStoreArray();
//市场
$marketList = MarketModel::getMarket();
$form->column(6, function (Form $form) use($marketList,$storeList,$goodsTypeList ){
$form->select('market_id')->required()->options($marketList);
$form->select('goods_type_id')->required()->options($goodsTypeList);
$form->select('store_id')->required()->options($storeList);
$form->text('name')->required()->maxLength(20);
$form->image('cover_img');
$form->number('sort');
});
$form->column(6, function (Form $form) {
$form->currency('price')->required()->floatTwo()->symbol('¥');
$form->currency('original_price')->required()->floatTwo()->symbol('¥');
$form->currency('vip_price')->required()->floatTwo()->symbol('¥');
$form->text('good_unit')->help('如:斤,个,盒,500克,1000克,1500克等');
$form->radio('is_infinite')->options([1=>'开启',2=>'关闭'])->default(1);
$form->number('inventory')->required()->attribute('min', 1)->default(1);
$form->number('restrict_num')->attribute('min', 0)->default(0)->help('0表示不限购');
$form->number('start_num')->attribute('min', 1)->default(1);
});
$form->column(12, function (Form $form) {
$form->hasMany('image_banners', function (Form\NestedForm $form) {
$form->image('path')->width(2);
$form->number('sort')->width(2)->default(0);
$form->hidden('type')->value(1)->default(1);
});
$form->divider();
$form->hasMany('video_banners', function (Form\NestedForm $form) {
$form->file('path')->width(2);
$form->number('sort')->width(2)->default(0);
$form->hidden('type')->value(2)->default(2);
});
$form->divider();
$form->multipleImage('details_imgs');
$form->textarea('content');
$form->number('sort')->width(2);
$form->multipleImage('details_imgs')->help('按图片顺序上传');
$form->text('content')->maxLength(50);
$form->text('remark')->maxLength(50);
$form->tags('tags')->options(['新品','热销','新鲜'])->saveAsJson();
$form->tags('tags','标签')->options(['新品','热销','新鲜']);
$form->table('spec', function (NestedForm $table) { $form->table('spec', function (NestedForm $table) {
$table->text('规格名称')->help('如:净含量:500克,包装:12个/盒,保质期:120天等');
$table->text('值');
$table->text('spec_key')->help('如:净含量:500克,保质期:120天,包装:12个/盒等');
$table->text('spec_value');
}); });
$form->saving(function (Form $form){
$tage = $form->input('tags');
var_dump($tage);
$data = $form->input('spec');
dd($data);
}); });
}); });
} }

22
app/Models/Goods.php

@ -5,6 +5,7 @@ namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter; use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use App\Models\Store as StoreModel;
class Goods extends Model class Goods extends Model
{ {
@ -16,13 +17,32 @@ class Goods extends Model
protected $appends = [ protected $appends = [
'cover_img_url', 'cover_img_url',
]; ];
protected $casts = [
'details_imgs'=>'array',
'tags'=>'array',
'spec'=>'array',
];
public function getCoverImgUrlAttribute($value) public function getCoverImgUrlAttribute($value)
{ {
$value = $value ? $value : $this->cover_img; $value = $value ? $value : $this->cover_img;
return $this->imageUrl($value); return $this->imageUrl($value);
} }
// 处理图片
public function ImageBanners(){
return $this->hasMany('\App\Models\GoodsBanners','goods_id','id')->where('type',1);
}
public function VideoBanners(){
return $this->hasMany('\App\Models\GoodsBanners','goods_id','id')->where('type',2);
}
/**
* 处理旧图片
* @param $value
* @return string
*/
public function imageUrl($value) public function imageUrl($value)
{ {
if(strripos($value,"http") === false){ if(strripos($value,"http") === false){

18
app/Models/GoodsBanners.php

@ -0,0 +1,18 @@
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class GoodsBanners extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
protected $table = 'lanzu_goods_banner';
protected $dateFormat = 'U';
protected $fillable = ['path', 'id', 'goods_id','type','url'];
}

2
app/Models/LanzuMmInfo.php

@ -24,8 +24,8 @@ class LanzuMmInfo extends Model
public static function getMmInfoArray() public static function getMmInfoArray()
{ {
$list = self::select('id','name') $list = self::select('id','name')
->where('is_del',0)
->where('status',1) ->where('status',1)
->whereNull('deleted_at')
->get(); ->get();
$array = []; $array = [];
if(count($list) > 0){ if(count($list) > 0){

4
app/Models/Store.php

@ -34,7 +34,7 @@ class Store extends Model
*/ */
public function getEnvironmentAttribute($value) public function getEnvironmentAttribute($value)
{ {
$value = $value ? $value : '';
$value = $value ? $value : $this->environmant;
return $value ? explode(',',$value) : []; return $value ? explode(',',$value) : [];
} }
public function setEnvironmentAttribute($value) public function setEnvironmentAttribute($value)
@ -52,7 +52,7 @@ class Store extends Model
} }
public function setIsOpenAttribute($value) public function setIsOpenAttribute($value)
{ {
$this->attributes['IsOpen'] = 1;
$this->attributes['is_open'] = 1;
} }
/** /**

11
resources/lang/zh-CN/goods.php

@ -10,6 +10,9 @@ return [
'store_id' => '所属商家', 'store_id' => '所属商家',
'cover_img' => '封面图', 'cover_img' => '封面图',
'cover_img_url' => '封面图', 'cover_img_url' => '封面图',
'banners' => '轮播图',
'banner_imgs' => '轮播图',
'banner_video' => '轮播图中的短视频',
'price' => '售价', 'price' => '售价',
'original_price' => '原价', 'original_price' => '原价',
'vip_price' => '会员价', 'vip_price' => '会员价',
@ -24,7 +27,13 @@ return [
'tags' => '标签', 'tags' => '标签',
'details_imgs' => '详情图片', 'details_imgs' => '详情图片',
'spec' => '规格', 'spec' => '规格',
'unit_number' => '单位前的数'
'unit_number' => '单位前的数',
'remark' => '备注',
'spec_key' =>'规格名称',
'spec_value' => '规格参数',
'market_id' => '市场',
'image_banners' => '轮播图片',
'video_banners' => '轮播视频'
], ],
'options' => [ 'options' => [
], ],

Loading…
Cancel
Save