From d30a2531a72913824e5223d6061855295688b0ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E5=BC=BA?= <357099073@qq.com> Date: Fri, 20 Mar 2026 20:35:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0blog=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/Article/ArticleController.php | 32 ++++++- app/index/route/app.php | 3 + public/themes/template3/assets/css/main.css | 37 +++++++- public/themes/template3/blog.php | 95 ++----------------- public/themes/template3/footer.php | 2 +- public/themes/template3/header.php | 9 +- public/themes/template3/index.php | 3 +- 7 files changed, 87 insertions(+), 94 deletions(-) diff --git a/app/index/controller/Article/ArticleController.php b/app/index/controller/Article/ArticleController.php index 58b5c5f..c0d51c2 100644 --- a/app/index/controller/Article/ArticleController.php +++ b/app/index/controller/Article/ArticleController.php @@ -5,14 +5,14 @@ declare(strict_types=1); namespace app\index\controller\Article; use app\index\BaseController; -use app\model\Articles; -use app\model\ArticlesCategory; use Symfony\Component\VarDumper\VarDumper; use think\exception\ValidateException; use think\facade\Request; use think\facade\Session; use think\response\Json; use think\db\exception\DbException; +use app\model\Cms\Articles; +use app\model\Cms\ArticlesCategory; class ArticleController extends BaseController { @@ -102,6 +102,34 @@ class ArticleController extends BaseController } } + /** + * 获取文章分类列表 + * @return Json + */ + public function getArticleCategories(): Json + { + $tid = $this->getTenantId(); + + if (empty($tid)) { + return json([ + 'code' => 400, + 'msg' => '无法识别租户信息', + 'list' => [], + ]); + } + + $articleCategories = ArticlesCategory::where('delete_time', null) + ->where('tid', $tid) + ->select() + ->toArray(); + + return json([ + 'code' => 200, + 'msg' => 'success', + 'list' => $articleCategories, + ]); + } + /** * 游客文章阅读量函数 * @return Json diff --git a/app/index/route/app.php b/app/index/route/app.php index c2ab573..a6f29a8 100644 --- a/app/index/route/app.php +++ b/app/index/route/app.php @@ -27,6 +27,9 @@ Route::get('homeData', 'app\index\controller\Index@getHomeData'); // --- 新闻中心列表路由 --- Route::get('getCenterNews', 'app\index\controller\Article\NewsCenterController@getCenterNews'); +// --- 文章分类路由 --- +Route::get('getArticleCategories', 'app\index\controller\Article\ArticleController@getArticleCategories'); + // --- 新闻中心互动路由 --- Route::post('articleViews/:id', 'app\index\controller\Article\ArticleController@articleViews'); Route::post('articleLikes/:id', 'app\index\controller\Article\ArticleController@articleLikes'); diff --git a/public/themes/template3/assets/css/main.css b/public/themes/template3/assets/css/main.css index 4e25410..8de59c2 100644 --- a/public/themes/template3/assets/css/main.css +++ b/public/themes/template3/assets/css/main.css @@ -1909,9 +1909,38 @@ section, } .blog-posts .post-img { - max-height: 240px; + height: 240px; margin: -30px -30px 15px -30px; overflow: hidden; + position: relative; +} + +.blog-posts .post-img img { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + object-fit: cover; /* 居中裁剪,撑满容器 */ + object-position: center; + display: block; +} + +/* 新结构:blog.php 中的预览图容器 */ +.blog-posts .post-media { + height: 240px; + margin: -30px -30px 15px -30px; + overflow: hidden; + position: relative; +} + +.blog-posts .post-media-img { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + object-fit: cover; + object-position: center; + display: block; } .blog-posts .post-category { @@ -1921,11 +1950,15 @@ section, } .blog-posts .title { + height: 48px; font-size: 20px; font-weight: 700; padding: 0; margin: 0 0 20px 0; - height: 48px; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; } .blog-posts .title a { diff --git a/public/themes/template3/blog.php b/public/themes/template3/blog.php index 65e0f6b..e6bfed1 100644 --- a/public/themes/template3/blog.php +++ b/public/themes/template3/blog.php @@ -13,7 +13,7 @@ if ($currentPage < 1) { $currentPage = 1; } -$pageSize = 4; // 每页展示 4 条(grid 中每条占 col-lg-6,所以刚好两行) +$pageSize = 8; // 每页展示 8 条(grid 中每条占 col-lg-6,所以刚好四行) $totalCount = count($allNewsList); $totalPages = (int)ceil($totalCount / $pageSize); if ($totalPages < 1) { @@ -43,7 +43,7 @@ $newsListForPage = array_slice($allNewsList, ($currentPage - 1) * $pageSize, $pa