Browse Source

分类修改,banner修改

master
liangyuyan 5 years ago
parent
commit
57af955c9e
  1. 48
      app/Admin/Controllers/BannerController.php
  2. 45
      app/Admin/Controllers/CategoryController.php
  3. 29
      app/Models/Banner.php
  4. 57
      app/Models/Category.php
  5. 3
      resources/lang/zh-CN/banner.php
  6. 17
      resources/lang/zh-CN/category.php

48
app/Admin/Controllers/BannerController.php

@ -8,6 +8,7 @@ use Dcat\Admin\Grid;
use Dcat\Admin\Show; use Dcat\Admin\Show;
use Dcat\Admin\Controllers\AdminController; use Dcat\Admin\Controllers\AdminController;
use App\Models\ImsCjdcMarket as MarketModel; use App\Models\ImsCjdcMarket as MarketModel;
use App\Models\Banner as BannerModel;
class BannerController extends AdminController class BannerController extends AdminController
{ {
@ -20,18 +21,24 @@ class BannerController extends AdminController
{ {
return Grid::make(new Banner(), function (Grid $grid) { return Grid::make(new Banner(), function (Grid $grid) {
$grid->column('id')->sortable(); $grid->column('id')->sortable();
$grid->column('market_id');
$grid->column('market_id')->display(function($markerId){
$market = MarketModel::getMarketInfo($markerId,'name');
return empty($market) ? '' : $market['name'];
});
$grid->column('title'); $grid->column('title');
$grid->column('sub_title');
$grid->column('cover')->image(50);
$grid->column('cover_type');
$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');
$grid->column('path_type');
$grid->column('sort');
$grid->column('status');
$grid->column('type');
$grid->column('created_at');
$grid->column('updated_at')->sortable();
$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')->using(BannerModel::$_status)->label(['default' => 'primary',1 => 'primary', 0 => 'danger']);
$grid->filter(function (Grid\Filter $filter) { $grid->filter(function (Grid\Filter $filter) {
$filter->equal('id'); $filter->equal('id');
@ -74,21 +81,24 @@ class BannerController extends AdminController
protected function form() protected function form()
{ {
return Form::make(new Banner(), function (Form $form) { return Form::make(new Banner(), function (Form $form) {
$form->display('id');
$form->hidden('id');
// 市场 // 市场
$marketList = MarketModel::getMarket(); $marketList = MarketModel::getMarket();
$form->select('market_id')->width(4)->options($marketList); $form->select('market_id')->width(4)->options($marketList);
$form->text('title');
$form->select('type')->options(BannerModel::$_type)->required();
$form->text('title')->required();
$form->text('sub_title'); $form->text('sub_title');
$form->image('cover')->width(2);
$form->select('cover_type')->options([1=>'图片', 2=>'视频']);
$form->text('path');
$form->select('path_type')->options(['page'=>'page','webview'=>'webview','applet'=>'applet']);
$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->text('sort'); $form->text('sort');
$form->select('type')->options([1=>'首页banner']);
$form->display('created_at');
$form->display('updated_at');
$form->disableResetButton();
$form->disableViewCheck();
$form->disableEditingCheck();
$form->disableCreatingCheck();
}); });
} }
} }

45
app/Admin/Controllers/CategoryController.php

@ -8,15 +8,23 @@ use Dcat\Admin\Layout\Row;
use Dcat\Admin\Layout\Content; use Dcat\Admin\Layout\Content;
use Dcat\Admin\Tree; use Dcat\Admin\Tree;
use Dcat\Admin\Controllers\AdminController; use Dcat\Admin\Controllers\AdminController;
use Dcat\Admin\Show;
class CategoryController extends AdminController class CategoryController extends AdminController
{ {
public function index(Content $content) public function index(Content $content)
{ {
return $content->header('树状模型')
return $content->header('分类')
->body(function (Row $row) { ->body(function (Row $row) {
$tree = new Tree(new Category); $tree = new Tree(new Category);
$tree->branch(function ($branch) {
$src = $branch['cover_img_url'];
$logo = "<img src='$src' style='margin-left: 20px; max-width:35px;max-height:35px' class='img'/>";
return "{$branch['id']} - {$branch['title']} $logo";
});
$row->column(12, $tree); $row->column(12, $tree);
}); });
} }
@ -24,11 +32,40 @@ class CategoryController extends AdminController
public function form() public function form()
{ {
return Form::make(new Category(),function (Form $form){ return Form::make(new Category(),function (Form $form){
$form->text('title');
$form->number('sort');
// 只查一级 // 只查一级
$form->select('parent_id')->default(51);
$parentList = Category::getCategoryArray([['parent_id','=',0]],[0=>'顶级']);
$form->select('parent_id')->default(0)->options($parentList);
$form->text('title');
$form->image('cover_img'); $form->image('cover_img');
$form->number('sort');
$form->disableResetButton();
$form->disableViewCheck();
$form->disableEditingCheck();
$form->disableCreatingCheck();
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new Category(), function (Show $show) {
$show->field('parent_id');
$show->field('title');
$show->field('cover_img')->image();
$show->field('sort');
$show->field('status');
}); });
} }
} }

29
app/Models/Banner.php

@ -13,4 +13,33 @@ class Banner extends Model
protected $table = 'lanzu_banners'; protected $table = 'lanzu_banners';
protected $dateFormat = 'U'; protected $dateFormat = 'U';
protected $appends = [
'cover_url',
];
public static $_coverType = [1=>'图片', 2=>'视频'];
public static $_pathType = ['page'=>'page','webview'=>'webview','applet'=>'applet'];
public static $_type = [1=>'首页'];
public static $_status = ['禁用', '正常'];
public function getCoverUrlAttribute($value)
{
$value = $value ? $value : $this->cover;
return $this->imageUrl($value);
}
/**
* 处理旧图片
* @param $value
* @return string
*/
public function imageUrl($value)
{
if(strripos($value,"http") === false){
return env('OSS_IMG_HOST').'/'.$value;
}else{
return $value;
}
}
} }

57
app/Models/Category.php

@ -2,22 +2,71 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\SoftDeletes;
use Dcat\Admin\Traits\ModelTree; use Dcat\Admin\Traits\ModelTree;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Category extends Model class Category extends Model
{ {
use ModelTree; use ModelTree;
use SoftDeletes;
protected $table = 'lanzu_category'; protected $table = 'lanzu_category';
protected $dateFormat = 'U'; protected $dateFormat = 'U';
// 父级ID字段名称,默认值为 parent_id
// 父级ID字段名称,默认值为 parent_id
// protected $parentColumn = 'pid'; // protected $parentColumn = 'pid';
// 排序字段名称,默认值为 order
protected $orderColumn = 'sort';
// 排序字段名称,默认值为 order
protected $orderColumn = 'sort';
// 标题字段名称,默认值为 title
// 标题字段名称,默认值为 title
// protected $titleColumn = 'name'; // protected $titleColumn = 'name';
protected $appends = [
'cover_img_url',
];
public function getCoverImgUrlAttribute($value)
{
$value = $value ? $value : $this->cover_img;
return $this->imageUrl($value);
}
/**
* 获取二级分类数组
* id为键,name为值
* @return array
*/
public static function getCategoryArray($where = [],$options = [])
{
$model = self::select('id','title')
->where('status',1)
->whereNull('deleted_at');
if(count($where) > 0){
$model->where($where);
}
$list = $model->get();
$array = empty($options) ? [] : $options;
if(count($list) > 0){
foreach ($list as $value) {
$array[$value->id] = $value->title;
}
}
return $array;
}
/**
* 处理旧图片
* @param $value
* @return string
*/
public function imageUrl($value)
{
if(strripos($value,"http") === false){
return env('OSS_IMG_HOST').'/'.$value;
}else{
return $value;
}
}
} }

3
resources/lang/zh-CN/banner.php

@ -8,7 +8,8 @@ return [
'market_id' => '市场', 'market_id' => '市场',
'title' => '标题', 'title' => '标题',
'sub_title' => '副标题', 'sub_title' => '副标题',
'cover' => '封面',
'cover' => '封面图',
'cover_url' => '封面图',
'cover_type' => '封面类型', 'cover_type' => '封面类型',
'path' => '链接', 'path' => '链接',
'path_type' => '链接类型', 'path_type' => '链接类型',

17
resources/lang/zh-CN/category.php

@ -0,0 +1,17 @@
<?php
return [
'labels' => [
'Category' => '分类',
'category' => '分类',
],
'fields' => [
'parent_id' => '父级',
'title' => '标题',
'cover_img' => '图标',
'cover_img_url' => '图标',
'sort' => '排序',
'status' => '状态',
],
'options' => [
],
];
Loading…
Cancel
Save