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;
use App\Admin\Repositories\Goods;
use App\Models\Store;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
@ -11,6 +10,8 @@ use Dcat\Admin\Controllers\AdminController;
use App\Models\GoodsType as GoodsTypeModel;
use App\Models\Store as StoreModel;
use Dcat\Admin\Form\NestedForm;
use App\Models\Goods as goodsModel;
use App\Models\ImsCjdcMarket as MarketModel;
class GoodsController extends AdminController
{
@ -37,13 +38,17 @@ class GoodsController extends AdminController
$grid->price;
$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) {
$filter->equal('id');
});
$grid->model()->orderBy('id', 'desc');
// 每页10条
$grid->paginate(10);
});
@ -90,46 +95,59 @@ class GoodsController extends AdminController
*/
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');
// 二级分类(商品分类)
$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) {
$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 Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
use App\Models\Store as StoreModel;
class Goods extends Model
{
@ -16,13 +17,32 @@ class Goods extends Model
protected $appends = [
'cover_img_url',
];
protected $casts = [
'details_imgs'=>'array',
'tags'=>'array',
'spec'=>'array',
];
public function getCoverImgUrlAttribute($value)
{
$value = $value ? $value : $this->cover_img;
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)
{
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()
{
$list = self::select('id','name')
->where('is_del',0)
->where('status',1)
->whereNull('deleted_at')
->get();
$array = [];
if(count($list) > 0){

4
app/Models/Store.php

@ -34,7 +34,7 @@ class Store extends Model
*/
public function getEnvironmentAttribute($value)
{
$value = $value ? $value : '';
$value = $value ? $value : $this->environmant;
return $value ? explode(',',$value) : [];
}
public function setEnvironmentAttribute($value)
@ -52,7 +52,7 @@ class Store extends Model
}
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' => '所属商家',
'cover_img' => '封面图',
'cover_img_url' => '封面图',
'banners' => '轮播图',
'banner_imgs' => '轮播图',
'banner_video' => '轮播图中的短视频',
'price' => '售价',
'original_price' => '原价',
'vip_price' => '会员价',
@ -24,7 +27,13 @@ return [
'tags' => '标签',
'details_imgs' => '详情图片',
'spec' => '规格',
'unit_number' => '单位前的数'
'unit_number' => '单位前的数',
'remark' => '备注',
'spec_key' =>'规格名称',
'spec_value' => '规格参数',
'market_id' => '市场',
'image_banners' => '轮播图片',
'video_banners' => '轮播视频'
],
'options' => [
],

Loading…
Cancel
Save