diff --git a/app/Admin/Controllers/v3/BannerController.php b/app/Admin/Controllers/v3/BannerController.php deleted file mode 100644 index 5f40e5e..0000000 --- a/app/Admin/Controllers/v3/BannerController.php +++ /dev/null @@ -1,122 +0,0 @@ -column('id')->sortable(); - $grid->column('market_id')->display(function($markerId){ - $market = MarketModel::getMarketInfo($markerId,'name'); - return empty($market) ? '' : $market['name']; - }); - $grid->column('title'); - $grid->column('cover_url')->image(50); - $grid->column('cover_type')->display(function($coverType){ - return isset(BannerModel::$_coverType[$coverType]) ? BannerModel::$_coverType[$coverType] : ''; - }); - $grid->column('path'); - $grid->column('path_type')->display(function($pathType){ - return isset(BannerModel::$_pathType[$pathType]) ? BannerModel::$_pathType[$pathType] : ''; - }); - $grid->column('type')->display(function($type){ - return isset(BannerModel::$_type[$type]) ? BannerModel::$_type[$type] : ''; - }); - $grid->column('sort')->sortable(); - $grid->column('status')->switch(); - // ->using(BannerModel::$_status)->label(['default' => 'primary',1 => 'primary', 0 => 'danger']); - - $grid->filter(function (Grid\Filter $filter) { - $filter->equal('id'); - - }); - }); - } - - /** - * Make a show builder. - * - * @param mixed $id - * - * @return Show - */ - protected function detail($id) - { - return Show::make($id, new Banner(), function (Show $show) { - - $show->row(function (Show\Row $show) { - $show->width(6)->field('id'); - $show->width(6)->field('market_id'); - $show->width(6)->field('cover_type'); - $show->width(6)->field('cover')->image(); - - $show->width(6)->field('type'); - $show->width(6)->field('sort'); - $show->width(6)->field('created_at'); - }); - $show->row(function (Show\Row $show) { - $show->width(6)->field('title'); - $show->width(6)->field('sub_title'); - $show->width(6)->field('path_type'); - $show->width(6)->field('path'); - $show->width(6)->field('status'); - - $show->width(6)->field('updated_at'); - }); - - - - - - - - - }); - } - - /** - * Make a form builder. - * - * @return Form - */ - protected function form() - { - return Form::make(new Banner(), function (Form $form) { - $form->hidden('id'); - // 市场 - $marketList = MarketModel::getMarket(); - $form->select('market_id')->width(4)->options($marketList)->default(0); - // 多个市场 - $form->multipleSelect('market_ids')->options($marketList); - $form->select('type')->options(BannerModel::$_type)->required(); - $form->text('title')->required(); - $form->text('sub_title'); - $form->image('cover')->width(2)->required(); - $form->select('cover_type')->options(BannerModel::$_coverType)->required(); - $form->text('path')->default(''); - $form->select('path_type')->options(BannerModel::$_pathType)->default(''); - $form->number('sort')->width(2)->default(0); - - - $form->disableResetButton(); - $form->disableViewCheck(); - $form->disableEditingCheck(); - $form->disableCreatingCheck(); - }); - } -} diff --git a/app/Admin/Controllers/v3/BannersController.php b/app/Admin/Controllers/v3/BannersController.php new file mode 100644 index 0000000..ae7b1af --- /dev/null +++ b/app/Admin/Controllers/v3/BannersController.php @@ -0,0 +1,120 @@ +column('id')->sortable(); + $grid->column('market_id')->display(function($markerId){ + $market = MarketModel::getMarketInfo($markerId,'name'); + return empty($market) ? '' : $market['name']; + }); + $grid->column('title'); + $grid->column('cover_url')->image(50); + $grid->column('cover_type_text'); + $grid->column('path'); + $grid->column('path_type_text'); + $grid->column('type_text'); + $grid->column('sort')->sortable(); + $grid->column('status')->switch(); + // ->using(BannersModel::$_status)->label(['default' => 'primary',1 => 'primary', 0 => 'danger']); + $grid->model()->orderby('id','desc'); + $grid->filter(function (Grid\Filter $filter) { + $filter->equal('id'); + + }); + }); + } + + /** + * Make a show builder. + * + * @param mixed $id + * + * @return Show + */ + protected function detail($id) + { + return Show::make($id, new Banners(), function (Show $show) { + + $show->row(function (Show\Row $show) { + $show->width(6)->field('id'); + $show->width(6)->field('market_id')->as(function ($marketId){ + $market = MarketModel::getMarketInfo($marketId,'name'); + return empty($market) ? '' : $market->name; + }); + $show->width(6)->field('title'); + $show->width(6)->field('sub_title'); + $show->width(6)->field('cover_type_text'); + $show->width(6)->field('cover')->image(); + $show->width(6)->field('type_text'); + }); + $show->row(function (Show\Row $show) { + $show->width(6)->field('path_type_text'); + $show->width(6)->field('path'); + $show->width(6)->field('status_text'); + $show->width(6)->field('sort'); + $show->width(6)->field('created_at'); + $show->width(6)->field('updated_at'); + }); + }); + } + + /** + * Make a form builder. + * + * @return Form + */ + protected function form() + { + return Form::make(new Banners(), function (Form $form) { + + $form->column(6, function (Form $form) { + $form->hidden('id'); + // 市场 + $marketList = MarketModel::getMarket(); + $form->select('market_id')->options($marketList)->default(0); + // 多个市场 + $form->multipleSelect('market_ids')->options($marketList); + $form->select('type')->options(BannersModel::$_type)->required(); + $form->text('title')->required(); + $form->text('sub_title'); + $form->number('sort')->default(0); + $form->switch('status') + ->customFormat(function ($v) { + return $v == '正常' ? 1 : 0; + }) + ->saving(function ($v) { + return $v; + }); + }); + $form->column(6, function (Form $form) { + $form->image('cover')->required(); + $form->select('cover_type')->options(BannersModel::$_coverType)->required(); + $form->text('path')->default(''); + $form->select('path_type')->options(BannersModel::$_pathType)->default(''); + }); + + $form->disableResetButton(); + $form->disableViewCheck(); + $form->disableEditingCheck(); + $form->disableCreatingCheck(); + }); + } +} diff --git a/app/Admin/Controllers/v3/GoodsController.php b/app/Admin/Controllers/v3/GoodsController.php index d5ba4d5..0cdf73a 100644 --- a/app/Admin/Controllers/v3/GoodsController.php +++ b/app/Admin/Controllers/v3/GoodsController.php @@ -59,28 +59,45 @@ class GoodsController extends AdminController */ protected function detail($id) { + // $g = GoodsModel::find(1572); + // dd($g->toArray()); return Show::make($id, new Goods(), function (Show $show) { - $show->id; - $show->name; - $show->type_id; - $show->store_id; - $show->cover_img; - $show->price; - $show->original_price; - $show->vip_price; - $show->on_sale; - $show->inventory; - $show->content; - $show->sort; - $show->restrict_num; - $show->start_num; - $show->is_infinite; - $show->good_unit; - $show->tags; - $show->details_imgs; - $show->spec; - $show->created_at; - $show->updated_at; + $show->row(function (Show\Row $show) { + $show->width(6)->field('id'); + $show->width(6)->field('name'); + $show->width(6)->category_id->as(function ($categoryId){ + $item = CategoryModel::getCategoryInfo($categoryId,'title'); + return empty($item) ? '' : $item->title; + }); + $show->width(6)->store_id->as(function ($storeId){ + $item = StoreModel::getStoreInfo($storeId,'name'); + return empty($item) ? '' : $item->name; + }); + $show->width(6)->cover_img->image(); + $show->width(6)->price; + $show->width(6)->original_price; + $show->width(6)->vip_price; + $show->width(6)->inventory; + $show->width(6)->good_unit; + + }); + $show->row(function (Show\Row $show) { + $show->width(6)->on_sale_text; + $show->width(6)->content; + $show->width(6)->sort; + $show->width(6)->restrict_num; + $show->width(6)->start_num; + $show->width(6)->is_infinite_text; + + $show->width(6)->tags->as(function ($value){ + return $value; + }); + // $show->width(6)->spec; + // $show->details_imgs; + + // $show->created_at; + // $show->updated_at; + }); }); } @@ -96,7 +113,7 @@ class GoodsController extends AdminController return Form::make($builder, function (Form $form) { $form->hidden('id'); - // 二级分类 + // 二级分类 $categoryList = CategoryModel::getCategoryArray([['parent_id','>',0]]); // 店铺 $storeList = StoreModel::getStoreArray(); @@ -116,7 +133,7 @@ class GoodsController extends AdminController $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->radio('is_infinite')->options(['关闭','开启'])->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); diff --git a/app/Admin/Controllers/v3/StoreController.php b/app/Admin/Controllers/v3/StoreController.php index 7faea5a..00b4d84 100644 --- a/app/Admin/Controllers/v3/StoreController.php +++ b/app/Admin/Controllers/v3/StoreController.php @@ -65,6 +65,13 @@ class StoreController extends AdminController protected function detail($id) { return Show::make($id, new Store(), function (Show $show) { + + $show->row(function (Show\Row $show) { + + }); + $show->row(function (Show\Row $show) { + + }); $show->id; $show->mm_user_id; $show->market_id; diff --git a/app/Admin/Repositories/v3/Banner.php b/app/Admin/Repositories/v3/Banners.php similarity index 72% rename from app/Admin/Repositories/v3/Banner.php rename to app/Admin/Repositories/v3/Banners.php index 7f2bb8c..135c559 100644 --- a/app/Admin/Repositories/v3/Banner.php +++ b/app/Admin/Repositories/v3/Banners.php @@ -2,10 +2,10 @@ namespace App\Admin\Repositories\v3; -use App\Models\v3\Banner as Model; +use App\Models\v3\Banners as Model; use Dcat\Admin\Repositories\EloquentRepository; -class Banner extends EloquentRepository +class Banners extends EloquentRepository { /** * Model. diff --git a/app/Admin/routes.php b/app/Admin/routes.php index 65a6675..6c01ee2 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -53,7 +53,7 @@ Route::group([ // 商品 $router->resource('/goods', 'v3\GoodsController'); // banner - $router->resource('/banner', 'v3\BannerController'); + $router->resource('/banners', 'v3\BannersController'); $router->any('/test', 'Test@test'); }); diff --git a/app/Models/v3/Banner.php b/app/Models/v3/Banners.php similarity index 54% rename from app/Models/v3/Banner.php rename to app/Models/v3/Banners.php index 7631409..89524eb 100644 --- a/app/Models/v3/Banner.php +++ b/app/Models/v3/Banners.php @@ -6,7 +6,7 @@ use Dcat\Admin\Traits\HasDateTimeFormatter; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Model; -class Banner extends Model +class Banners extends Model { use HasDateTimeFormatter; use SoftDeletes; @@ -16,6 +16,10 @@ class Banner extends Model protected $appends = [ 'cover_url', + 'cover_type_text', + 'path_type_text', + 'type_text', + 'status_text' ]; protected $casts = [ 'market_ids'=>'array', @@ -32,6 +36,26 @@ class Banner extends Model return $this->imageUrl($value); } + public function getCoverTypeTextAttribute($value) + { + $value = $value ? $value : $this->cover_type; + return isset(self::$_coverType[$value]) ? self::$_coverType[$value] : ''; + } + public function getPathTypeTextAttribute($value) + { + $value = $value ? $value : $this->path_type; + return isset(self::$_pathType[$value]) ? self::$_pathType[$value] : ''; + } + public function getTypeTextAttribute($value) + { + $value = $value ? $value : $this->type; + return isset(self::$_type[$value]) ? self::$_type[$value] : ''; + } + public function getStatusTextAttribute($value) + { + $value = $value ? $value : $this->stauts; + return isset(self::$_status[$value]) ? self::$_status[$value] : ''; + } /** * 处理旧图片 * @param $value diff --git a/app/Models/v3/Goods.php b/app/Models/v3/Goods.php index e411d86..b745717 100644 --- a/app/Models/v3/Goods.php +++ b/app/Models/v3/Goods.php @@ -15,6 +15,8 @@ class Goods extends Model protected $dateFormat = 'U'; protected $appends = [ 'cover_img_url', + 'on_sale_text', + 'is_infinite_text' ]; protected $casts = [ @@ -23,12 +25,24 @@ class Goods extends Model 'spec'=>'array', ]; + public static $_onSale = ['否','是']; + public static $_isInfinite = ['关闭','开启']; + public function getCoverImgUrlAttribute($value) { $value = $value ? $value : $this->cover_img; return $this->imageUrl($value); } - + public function getOnSaleTextAttribute($value) + { + $value = $value ? $value : $this->on_sale; + return isset(self::$_onSale[$value]) ? self::$_onSale[$value] : ''; + } + public function getIsInfiniteTextAttribute($value) + { + $value = $value ? $value : $this->is_infinite; + return isset(self::$_isInfinite[$value]) ? self::$_isInfinite[$value] : ''; + } public function ImageBanners(){ return $this->hasMany('\App\Models\v3\GoodsBanners','goods_id','id')->where('type',1); } diff --git a/app/Models/v3/GoodsBanners.php b/app/Models/v3/GoodsBanners.php index 21dfc7d..699438a 100644 --- a/app/Models/v3/GoodsBanners.php +++ b/app/Models/v3/GoodsBanners.php @@ -11,7 +11,7 @@ class GoodsBanners extends Model use HasDateTimeFormatter; use SoftDeletes; - protected $table = 'lanzu_goods_banner'; + protected $table = 'lanzu_goods_banners'; protected $dateFormat = 'U'; protected $fillable = ['path', 'id', 'goods_id','type','url']; diff --git a/resources/lang/zh-CN/banner.php b/resources/lang/zh-CN/banners.php similarity index 67% rename from resources/lang/zh-CN/banner.php rename to resources/lang/zh-CN/banners.php index 102e020..32f3352 100644 --- a/resources/lang/zh-CN/banner.php +++ b/resources/lang/zh-CN/banners.php @@ -1,8 +1,8 @@ - [ - 'Banner' => '横幅管理', - 'banner' => '横幅管理', + 'Banners' => '横幅管理', + 'banners' => '横幅管理', ], 'fields' => [ 'market_id' => '市场', @@ -12,11 +12,15 @@ return [ 'cover' => '封面图', 'cover_url' => '封面图', 'cover_type' => '封面类型', + 'cover_type_text' => '封面类型', 'path' => '链接', 'path_type' => '链接类型', + 'path_type_text' => '链接类型', 'sort' => '排序', 'status' => '状态', + 'status_text' => '状态', 'type' => '位置', + 'type_text' => '位置', ], 'options' => [ ], diff --git a/resources/lang/zh-CN/goods.php b/resources/lang/zh-CN/goods.php index 8aedc2d..6b0c339 100644 --- a/resources/lang/zh-CN/goods.php +++ b/resources/lang/zh-CN/goods.php @@ -17,12 +17,14 @@ return [ 'original_price' => '原价', 'vip_price' => '会员价', 'on_sale' => '是否上架', + 'on_sale_text' => '是否上架', 'inventory' => '库存', 'content' => '简介', 'sort' => '排序', 'restrict_num' => '限购份数', 'start_num' => '起售份数', 'is_infinite' => '开启无限库存', + 'is_infinite_text' => '开启无限库存', 'good_unit' => '商品单位', 'tags' => '标签', 'details_imgs' => '详情图片',