From 3381820ba0554cbb32b387cc92a8012eb45fe7c6 Mon Sep 17 00:00:00 2001 From: xuanchen <122383162@qq.com> Date: Mon, 11 Oct 2021 15:56:12 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=B6=E6=AE=B5=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Article/IndexController.php | 7 +- .../Controllers/Category/IndexController.php | 6 + .../Controllers/Video/IndexController.php | 21 +- app/Helpers/function.php | 37 +- app/Http/Controllers/CategoryController.php | 6 +- app/Models/Article.php | 5 + app/Models/Category.php | 8 +- app/Models/Video.php | 5 + public/assets/index/css/style.css | 6 +- resources/views/category/djwh.blade.php | 7 +- resources/views/category/jianjie.blade.php | 6 +- resources/views/category/kxjs_rcdw.blade.php | 3 +- resources/views/category/kxyj.blade.php | 4 +- resources/views/category/navigation.blade.php | 2 +- resources/views/category/videos.blade.php | 47 +- resources/views/index/index.blade.php | 613 +++++------------- resources/views/layouts/pagination.blade.php | 70 +- 17 files changed, 319 insertions(+), 534 deletions(-) diff --git a/app/Admin/Controllers/Article/IndexController.php b/app/Admin/Controllers/Article/IndexController.php index 3471ac4..f8a78c3 100644 --- a/app/Admin/Controllers/Article/IndexController.php +++ b/app/Admin/Controllers/Article/IndexController.php @@ -34,13 +34,13 @@ class IndexController extends AdminController $grid->column('id', '#ID#'); $grid->column('cover', '封面图片')->image('', 100); $grid->column('category.title', '所属分类'); - $grid->column('category_old.title', '所属老分类'); $grid->column('title', '文章标题'); $states = [ 'on' => ['value' => 1, 'text' => '打开', 'color' => 'primary'], 'off' => ['value' => 2, 'text' => '关闭', 'color' => 'default'], ]; $grid->column('status', '状态')->switch($states); + $grid->column('recommen', '推荐')->switch(); $grid->column('sort', '序号'); $grid->column('created_at', '创建时间'); @@ -63,6 +63,10 @@ class IndexController extends AdminController ->move('images/' . date('Y/m/d')) ->removable() ->uniqueName(); + $form->image('logo', 'logo') + ->move('images/' . date('Y/m/d')) + ->removable() + ->uniqueName(); $form->ueditor('content', '文章内容')->rules('required', ['required' => '详情不能为空']); $form->number('sort', '序号')->default(0)->rules('required', ['required' => '序号必须填写'])->help('倒序优先'); $states = [ @@ -71,6 +75,7 @@ class IndexController extends AdminController ]; $form->datetime('created_at', '发布时间'); $form->switch('status', '状态')->states($states)->default(1); + $form->switch('recommen', '推荐')->default(0); return $form; } diff --git a/app/Admin/Controllers/Category/IndexController.php b/app/Admin/Controllers/Category/IndexController.php index 22162ef..ca5c6f1 100644 --- a/app/Admin/Controllers/Category/IndexController.php +++ b/app/Admin/Controllers/Category/IndexController.php @@ -44,6 +44,9 @@ class IndexController extends AdminController })->pluck('title', 'id'); })->help('当分类类型是文章详情的时候需要选择关联文章'); }) + ->when(Category::TYPE_LINK, function (WidgetsForm $form) { + $form->text('url', '跳转地址'); + }) ->required(); $form->textarea('description', '分类简介') ->rules('nullable'); @@ -114,6 +117,9 @@ class IndexController extends AdminController })->pluck('title', 'id'); })->help('当分类类型是文章详情的时候需要选择关联文章'); }) + ->when(Category::TYPE_LINK, function (Form $form) { + $form->text('url', '跳转地址'); + }) ->required() ->rules('required'); $form->textarea('description', '分类简介')->rows(4)->rules('nullable'); diff --git a/app/Admin/Controllers/Video/IndexController.php b/app/Admin/Controllers/Video/IndexController.php index 9e59945..4fe5764 100644 --- a/app/Admin/Controllers/Video/IndexController.php +++ b/app/Admin/Controllers/Video/IndexController.php @@ -31,9 +31,9 @@ class IndexController extends AdminController $grid->column('id'); $grid->column('title', '视频名称'); - $grid->column('cover', '视频地址')->downloadable(); + $grid->column('cover', '封面')->image(); + $grid->column('link', '视频地址')->downloadable(); $grid->column('category.title', '分类名称'); - $grid->column('url', '地址'); $grid->column('sort', '排序'); return $grid; @@ -60,7 +60,20 @@ class IndexController extends AdminController 'required' => '必须选择所属分类', 'min' => '必须选择所属分类', ]); - $form->file('cover', '视频') + + $form->file('cover', '封面') + ->rules(function ($form) { + if ($form->model()->cover != []) { + return 'nullable|image'; + } else { + return 'required'; + } + }) + ->move('images/' . date('Y/m/d')) + ->removable() + ->uniqueName(); + + $form->file('link', '视频') ->rules(function ($form) { if ($form->model()->cover != []) { return 'nullable|image'; @@ -71,7 +84,7 @@ class IndexController extends AdminController ->move('videos/' . date('Y/m/d')) ->removable() ->uniqueName(); - $form->text('url', '链接地址'); + $form->number('sort', '排序') ->default(1) ->required() diff --git a/app/Helpers/function.php b/app/Helpers/function.php index 972feb1..30c7bbf 100644 --- a/app/Helpers/function.php +++ b/app/Helpers/function.php @@ -52,39 +52,36 @@ function getOneArticleBYCate($categoryId, $result = '') * @Date : 2020/9/10 10:05 * @param $categoryId * @param int $take - * @param string $mark + * @param int $recommen * @return \App\Models\Article */ -function getArticlesBYCate($categoryId, $take = 8, $mark = 'one') +function getArticlesBYCate($categoryId, $take = 8, $recommen = 0) { - if ($mark == 'one') { - $articles = Article::where('status', 1) - ->ByCategory($categoryId) - ->latest('sort') - ->latest() - ->take($take) - ->get(); - } else { - $cate = Category::find($categoryId); - $ids = $cate ? $cate->getAllChildrenId() : []; + $cate = Category::find($categoryId); + $ids = $cate ? $cate->getAllChildrenId() : []; - $articles = Article::where('status', 1) - ->ByCategory($ids) - ->latest('sort') - ->latest() - ->take($take) - ->get(); - } + $articles = Article::where('status', 1) + ->ByCategory([$categoryId]) + ->latest('sort') + ->latest() + ->when($recommen, function ($q) use ($recommen) { + $q->where('recommen', 1); + }) + ->take($take) + ->get(); return $articles; } //获取子分类 -function getCateChild($categoryId) +function getCateChild($categoryId, $take = '') { return Category::where('status', 1) ->where('parent_id', $categoryId) ->orderBy('order', 'desc') + ->when($take, function ($q) use ($take) { + $q->take($take); + }) ->get(); } diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php index 1a692c1..34d560a 100644 --- a/app/Http/Controllers/CategoryController.php +++ b/app/Http/Controllers/CategoryController.php @@ -18,17 +18,19 @@ class CategoryController extends Controller { if ($category->type == Category::TYPE_SHOW && $category->article_id) { return redirect("articles/" . $category->article_id); + } elseif ($category->type == Category::TYPE_LINK && $category->url) { + return redirect()->away($category->url); } else { $template = 'show'; if ($category->template) { $template = $category->template; } - $articles = $category->relations(Category::TYPE_ARTICLE) + $articles = $category->relations($category->type) ->where('status', 1) ->latest('sort') ->latest('created_at') - ->paginate(8); + ->paginate(); $parent = $category; if ($category->childrens->isEmpty() && $category->parent) { diff --git a/app/Models/Article.php b/app/Models/Article.php index 0dec20c..af69bfc 100644 --- a/app/Models/Article.php +++ b/app/Models/Article.php @@ -17,6 +17,11 @@ class Article extends Model return route('article.show', $this); } + public function getLogoUrlAttribute(): string + { + return $this->parseImageUrl($this->logo); + } + /*** * Notes: 获取详情内图片 * @Author: 玄尘 diff --git a/app/Models/Category.php b/app/Models/Category.php index 9b23578..ac35af1 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -18,11 +18,13 @@ class Category extends Model public const TYPE_ARTICLE = 'article'; public const TYPE_ADVERT = 'advert'; public const TYPE_VIDEO = 'video'; + public const TYPE_LINK = 'link'; public const TYPES = [ self::TYPE_ARTICLE => '文章列表', self::TYPE_SHOW => '文章详情', self::TYPE_ADVERT => '图片列表', self::TYPE_VIDEO => '视频列表', + self::TYPE_LINK => '跳转链接', ]; public $cover_field = 'cover'; @@ -48,7 +50,8 @@ class Category extends Model return $this->hasOne(Article::class)->where('id', $this->article_id); break; case self::TYPE_ARTICLE: - return $this->belongsToMany(Article::class); + // return $this->belongsToMany(Article::class); + return $this->hasMany(Article::class); break; case self::TYPE_ADVERT: return $this->hasMany(Advert::class); @@ -85,13 +88,14 @@ class Category extends Model public function getAllChildrenId(): array { $ids = array_keys($this->buildSelectOptions([], $this->id)); + if ($ids) { array_unshift($ids, $this->id); return $ids; } - return []; + return [$this->id]; } // public function articles(): BelongsToMany diff --git a/app/Models/Video.php b/app/Models/Video.php index bd18f75..3be6534 100644 --- a/app/Models/Video.php +++ b/app/Models/Video.php @@ -10,4 +10,9 @@ class Video extends Model use HasCovers, BelongsToCategory; + + public function getLogoUrlAttribute(): string + { + return $this->parseImageUrl($this->logo); + } } diff --git a/public/assets/index/css/style.css b/public/assets/index/css/style.css index 9f3224c..c8c5229 100644 --- a/public/assets/index/css/style.css +++ b/public/assets/index/css/style.css @@ -308,7 +308,7 @@ body { top: 2px; width: 14px; height: 14px; - background: url(../image/indexIcon/indexNew_row.png) center no-repeat; + background: url(/assets/index/images/indexIcon/indexNew_row.png) center no-repeat; } .indexNew-list li .indexNew-name { @@ -643,7 +643,7 @@ body { .modularServe-label { cursor: pointer; - background: url(../image/titleTem_back.png) no-repeat center; + background: url(/assets/index/images/titleTem_back.png) no-repeat center; background-size: cover; width: 100%; padding: 40px 20px 20px; @@ -695,7 +695,7 @@ body { top: 4px; width: 15px; height: 15px; - background: url(../image/indexIcon/indexNew_row.png) center no-repeat; + background: url(/assets/index/images/indexIcon/indexNew_row.png) center no-repeat; background-size: 100% 100%; } diff --git a/resources/views/category/djwh.blade.php b/resources/views/category/djwh.blade.php index b88d0ba..585797e 100644 --- a/resources/views/category/djwh.blade.php +++ b/resources/views/category/djwh.blade.php @@ -18,7 +18,7 @@
{{ $article->title }}
+
+ 抱歉,暂无内容
+