From 64843b6805a5b787e75a65d510773971dec9ee23 Mon Sep 17 00:00:00 2001 From: liutk <961510893@qq.com> Date: Sat, 21 Feb 2026 20:00:42 +0800 Subject: [PATCH] 0.3 --- app/Admin/Components.php | 4 +- app/Admin/routes.php | 1 + app/Models/Filters/ProjectArticleFilter.php | 45 ++++++++++++++++++++ app/Models/ProjectArticle.php | 1 + app/Services/Admin/ProjectArticleService.php | 2 + database/seeders/AdminMenuSeeder.php | 2 +- 6 files changed, 52 insertions(+), 3 deletions(-) diff --git a/app/Admin/Components.php b/app/Admin/Components.php index 51a1dd5..e0ea876 100644 --- a/app/Admin/Components.php +++ b/app/Admin/Components.php @@ -115,7 +115,7 @@ class Components extends BaseRenderer { * 标签选择 */ public function keywordsTagControl($name = 'tags', $label= null, $pKey = null){ - return amisMake()->TagControl() + return amis()->TagControl() ->name($name)->label($label ?? __('admin.components.tag')) ->maxTagLength(0) ->options(Keyword::where('parent_key', $pKey)->pluck('name', 'id')->toArray()); @@ -123,7 +123,7 @@ class Components extends BaseRenderer { public function keywordsTag($label = null, $color = null){ if($color){ - $tag = amisMake()->Tag()->label($label ?? __('admin.components.tag')) + $tag = amis()->Tag()->label($label ?? __('admin.components.tag')) ->displayMode('rounded')->style([ 'color' => '#fff', 'backgroundColor' =>$color, diff --git a/app/Admin/routes.php b/app/Admin/routes.php index ca0d8ce..94094ff 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -38,6 +38,7 @@ Route::group([ $router->resource('project_flows', \App\Admin\Controllers\ProjectFlowController::class); $router->resource('project_photos', \App\Admin\Controllers\ProjectPhotoController::class); $router->resource('project_advances', \App\Admin\Controllers\ProjectAdvanceController::class); + $router->resource('case_studies', \App\Admin\Controllers\CaseStudyController::class); //修改上传 $router->post('upload_file', [\App\Admin\Controllers\IndexController::class, 'uploadFile']); diff --git a/app/Models/Filters/ProjectArticleFilter.php b/app/Models/Filters/ProjectArticleFilter.php index dece9ec..0a0ec08 100644 --- a/app/Models/Filters/ProjectArticleFilter.php +++ b/app/Models/Filters/ProjectArticleFilter.php @@ -29,4 +29,49 @@ class ProjectArticleFilter extends ModelFilter { return $this->where('type', $type); } + + public function tIds($tIds){ + $tIds = explode(',',$tIds); + return $this->where(function($q) use ($tIds) { + foreach ($tIds as $tId) { + $q->whereRaw("FIND_IN_SET('".$tId."',t_ids)"); + } + }); + } + + public function publishedAt($publishedAt){ + $publishedAt = explode(',',$publishedAt); + return $this->where(function($q) use ($publishedAt) { + $startAt = Arr::get($publishedAt, 0) ?? null; + $endAt = Arr::get($publishedAt, 1) ?? null; + if(!empty($startAt)){ + $q->where('published_at', '>=', $startAt); + } + if(!empty($endAt)){ + $q->where('published_at', '<=', $endAt); + } + }); + } + + public function createdAt($createdAt){ + $createdAt = explode(',',$createdAt); + return $this->where(function($q) use ($createdAt) { + $startAt = Arr::get($createdAt, 0) ?? null; + $endAt = Arr::get($createdAt, 1) ?? null; + if(!empty($startAt)){ + $q->where('created_at', '>=', $startAt); + } + if(!empty($endAt)){ + $q->where('created_at', '<=', $endAt); + } + }); + } + + public function enable($enable){ + return $this->where('is_enable', $enable); + } + + public function recommend($recommend){ + return $this->where('is_recommend', $recommend); + } } diff --git a/app/Models/ProjectArticle.php b/app/Models/ProjectArticle.php index 24447f2..f047079 100644 --- a/app/Models/ProjectArticle.php +++ b/app/Models/ProjectArticle.php @@ -18,6 +18,7 @@ class ProjectArticle extends Model public const TYPE_FLOW = 2; //服务流程 public const TYPE_PHOTO = 3; //相关图片 public const TYPE_ADVANCE = 4; //核心优势 + public const TYPE_CASE_STUDY = 5; //服务案例 protected function serializeDate(\DateTimeInterface $date) { diff --git a/app/Services/Admin/ProjectArticleService.php b/app/Services/Admin/ProjectArticleService.php index 2562406..4dd51d7 100644 --- a/app/Services/Admin/ProjectArticleService.php +++ b/app/Services/Admin/ProjectArticleService.php @@ -32,6 +32,8 @@ class ProjectArticleService extends BaseService $query->where('type', ProjectArticle::TYPE_PHOTO); }elseif(Str::contains($currentUrl, 'project_advances')){ $query->where('type', ProjectArticle::TYPE_ADVANCE); + }elseif(Str::contains($currentUrl, 'case_studies')){ + $query->where('type', ProjectArticle::TYPE_CASE_STUDY); } return $query; } diff --git a/database/seeders/AdminMenuSeeder.php b/database/seeders/AdminMenuSeeder.php index c8ec311..3f9f431 100644 --- a/database/seeders/AdminMenuSeeder.php +++ b/database/seeders/AdminMenuSeeder.php @@ -29,7 +29,7 @@ class AdminMenuSeeder extends Seeder ['title'=> 'project_advances', 'icon'=>'', 'url'=>'/project_advances', 'order'=>5], ] ], - ['title'=>'case_studies', 'icon'=>'carbon:cloud-satellite-services','url'=>'/case_study_articles', 'order'=>3], + ['title'=>'case_studies', 'icon'=>'carbon:cloud-satellite-services','url'=>'/case_studies', 'order'=>3], ['title' => 'web_content', 'icon' => 'ic:outline-collections-bookmark', 'url' => '/web_content', 'order'=>4, 'children' =>[ ['title'=>'news', 'icon'=>'','url'=>'/articles', 'order'=>1],