diff --git a/app/Admin/Controllers/GoodsController.php b/app/Admin/Controllers/GoodsController.php index 3455e95..bd86fa5 100644 --- a/app/Admin/Controllers/GoodsController.php +++ b/app/Admin/Controllers/GoodsController.php @@ -3,10 +3,13 @@ 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; use Dcat\Admin\Controllers\AdminController; +use App\Models\GoodsType as GoodsTypeModel; +use App\Models\Store as StoreModel; class GoodsController extends AdminController { @@ -19,21 +22,29 @@ class GoodsController extends AdminController { return Grid::make(new Goods(), function (Grid $grid) { $grid->id->sortable(); - $grid->cover_img; + $grid->cover_img_url->image('',50); $grid->name; - $grid->type_id; - $grid->store_id; + $grid->goods_type_id->display(function ($goodsTypeId){ + $goodsType = GoodsTypeModel::getGoodsInfo($goodsTypeId,'type_name'); + return empty($goodsType) ? '' : $goodsType->type_name; + }); + $grid->store_id->display(function ($storeId){ + $store = StoreModel::getStoreInfo($storeId,'name'); + return empty($store) ? '' : $store->name; + }); $grid->price; - - $grid->sort; - $grid->on_sale; + $grid->sort->sortable(); + $grid->on_sale->switch(); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id'); }); + + // 每页10条 + $grid->paginate(10); }); } @@ -79,28 +90,36 @@ class GoodsController extends AdminController protected function form() { return Form::make(new Goods(), function (Form $form) { - $form->display('id'); - $form->text('name'); - $form->text('type_id'); - $form->text('store_id'); - $form->text('cover_img'); + $form->hidden('id'); + + // 二级分类(商品分类) + $goodsTypeList = GoodsTypeModel::getGoodsTypeArray(); + // 店铺 + $store = StoreModel::getStoreArray(); + + $form->select('goods_type_id')->options($goodsTypeList); + $form->select('store_id')->options($store); + + $form->text('name')->width(4)->required()->maxLength(20); + $form->image('cover_img')->width(2)->required(); + $form->text('price'); $form->text('original_price'); $form->text('vip_price'); - $form->text('on_sale'); + $form->text('good_unit'); + $form->text('inventory'); - $form->text('content'); - $form->text('sort'); $form->text('restrict_num'); $form->text('start_num'); $form->text('is_infinite'); - $form->text('good_unit'); - $form->text('tags'); + $form->text('details_imgs'); + $form->text('content'); + $form->text('sort'); + + $form->text('tags'); $form->text('spec'); - $form->display('created_at'); - $form->display('updated_at'); }); } } diff --git a/app/Admin/Controllers/StoreController.php b/app/Admin/Controllers/StoreController.php index e9c3f42..027cf75 100644 --- a/app/Admin/Controllers/StoreController.php +++ b/app/Admin/Controllers/StoreController.php @@ -20,30 +20,37 @@ class StoreController extends AdminController */ protected function grid() { - // $m = StoreModel::find(1); - // dd($m->market_name); return Grid::make(new Store(), function (Grid $grid) { $grid->model()->orderBy('id','desc'); $grid->id->sortable(); $grid->logo_url->image('',50); $grid->name; - $grid->market_name; - $grid->mm_user_id; - $grid->store_type_name; + $grid->market_id->display(function ($marketId){ + $market = MarketModel::getMarketInfo($marketId,'name'); + return empty($market) ? '' : $market->name; + }); + $grid->mm_user_id->display(function ($mmUserId){ + $mmUser = MminfoModel::getMmInfo($mmUserId,'name'); + return empty($mmUser) ? '' : $mmUser->name; + }); + $grid->store_type_id->display(function ($storeTypeId){ + $storeType = StoreTypeModel::getStoreTypeInfo($storeTypeId,'type_name'); + return empty($storeType) ? '' : $storeType->type_name; + }); $grid->sort->sortable(); $grid->is_rest->switch(); $grid->is_open->switch(); - // 每页10条 - $grid->paginate(10); - // 搜索 $grid->filter(function (Grid\Filter $filter) { $filter->equal('id'); }); + // 每页10条 + $grid->paginate(10); + // 二维码单独生成 }); @@ -115,7 +122,7 @@ class StoreController extends AdminController $form->select('market_id')->width(4)->required()->options($marketList); $form->select('store_type_id')->width(4)->required()->options($storeTypeList); - $form->text('name')->width(3)->required(); + $form->text('name')->width(3)->required()->maxLength(50); $form->image('logo')->width(2)->required(); $form->mobile('tel')->width(2); diff --git a/app/Models/Goods.php b/app/Models/Goods.php index d43de89..227aadf 100644 --- a/app/Models/Goods.php +++ b/app/Models/Goods.php @@ -15,7 +15,20 @@ class Goods extends Model protected $dateFormat = 'U'; protected $appends = [ 'cover_img_url', - 'market_name', - 'goods_type_name' ]; + + public function getCoverImgUrlAttribute($value) + { + $value = $value ? $value : $this->cover_img; + return $this->imageUrl($value); + } + // 处理图片 + public function imageUrl($value) + { + if(strripos($value,"http") === false){ + return env('OSS_IMG_HOST').'/'.$value; + }else{ + return $value; + } + } } diff --git a/app/Models/GoodsType.php b/app/Models/GoodsType.php index 4e06930..740ee45 100644 --- a/app/Models/GoodsType.php +++ b/app/Models/GoodsType.php @@ -39,6 +39,38 @@ class GoodsType extends Model return $this->imageUrl($value); } + /** + * 获取单个商品信息 + * @param int $id + * @param string $field + * @return string + */ + public static function getGoodsInfo($id,$field = '*') + { + return self::select($field)->find($id); + } + + /** + * 获取二级分类数组 + * id为键,name为值 + * @return array + */ + public static function getGoodsTypeArray() + { + $list = self::select('id','type_name') + ->where('status',1) + ->whereNull('deleted_at') + ->get(); + $array = []; + if(count($list) > 0){ + foreach ($list as $value) { + $array[$value->id] = $value->type_name; + } + } + + return $array; + } + // 处理图片 public function imageUrl($value) { diff --git a/app/Models/LanzuMmInfo.php b/app/Models/LanzuMmInfo.php index cb684ea..988b71f 100644 --- a/app/Models/LanzuMmInfo.php +++ b/app/Models/LanzuMmInfo.php @@ -18,7 +18,7 @@ class LanzuMmInfo extends Model } /** - * 获取市场经理(只搜索状态是正常的经理) + * 获取市场经理(只搜索状态为正常的经理) * id为键,name为值 */ public static function getMmInfoArray() @@ -35,4 +35,12 @@ class LanzuMmInfo extends Model } return $array; } + + /** + * 根据id获取单条记录 + */ + public static function getMmInfo($id,$field = '*') + { + return self::select($field)->find($id); + } } diff --git a/app/Models/Store.php b/app/Models/Store.php index 50bd72f..86c1f2b 100644 --- a/app/Models/Store.php +++ b/app/Models/Store.php @@ -18,22 +18,8 @@ class Store extends Model protected $appends = [ 'logo_url', - 'market_name', - 'store_type_name' ]; - public function getMarketNameAttribute($value) - { - $value = $value ? $value : $this->market_id; - $market = MarketModel::getMarketInfo($value,'name'); - return $market ? $market->name : ''; - } - public function getStoreTypeNameAttribute($value) - { - $value = $value ? $value : $this->store_type_id; - $storeType = StoreTypeModel::getStoreTypeInfo($value,'type_name'); - return $storeType ? $storeType->type_name : ''; - } public function getLogoUrlAttribute($value) { @@ -80,6 +66,27 @@ class Store extends Model return self::select($field)->find($id); } + /** + * 获取店铺数组 + * id为键,name为值 + * @return array + */ + public static function getStoreArray() + { + $list = self::select('id','name') + ->where('status',2) + ->whereNull('deleted_at') + ->get(); + $array = []; + if(count($list) > 0){ + foreach ($list as $value) { + $array[$value->id] = $value->type_name; + } + } + + return $array; + } + // 处理图片 public function imageUrl($value) { diff --git a/resources/lang/zh-CN/goods.php b/resources/lang/zh-CN/goods.php index 360bd33..fd222a0 100644 --- a/resources/lang/zh-CN/goods.php +++ b/resources/lang/zh-CN/goods.php @@ -1,13 +1,15 @@ - [ - 'Goods' => 'Goods', + 'Goods' => '商品管理', + 'goods' => '商品管理', ], 'fields' => [ 'name' => '商品名称', 'type_id' => '商品所属分类', 'store_id' => '所属商家', 'cover_img' => '封面图', + 'cover_img_url' => '封面图', 'price' => '售价', 'original_price' => '原价', 'vip_price' => '会员价',