main
liutk 2026-02-23 14:29:09 +08:00
parent 137512b735
commit f2df604eae
7 changed files with 71 additions and 4 deletions

View File

@ -76,7 +76,7 @@ class HonorController extends AdminController
amis()->Grid()->columns([
amis()->Wrapper()->body([
amis()->TextControl('title', __('admin.honors.title'))->required(true),
amis()->selectControl('cate', __('admin.honors.category'))->options(Keyword::allChildrenOfKey('honors')->pluck('name', 'id'))->required(true),
amis()->selectControl('category', __('admin.honors.category'))->options(Keyword::allChildrenOfKey('honors')->pluck('name', 'id'))->required(true),
Components::make()->cropImageControl('cover', __('admin.honors.cover'))->required(true),
amis()->DateControl('awarded_date', __('admin.honors.awarded_date'))->format('YYYY-MM-DD')->required(true),
Components::make()->sortControl('sort', __('admin.honors.sort')),

View File

@ -0,0 +1,32 @@
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Resources\{HonorResource,KeywordResource};
use App\Traits\PaginatorTrait;
use App\Models\Filters\HonorFilter;
use App\Models\Honor;
use App\Models\Keyword;
class HonorController extends Controller
{
use PaginatorTrait;
public function index(Request $request){
$query = Honor::filter($request->all(), HonorFilter::class)->sort();
$list = $query->show()->sort()->paginate($this->resolvePerPage('per_page', 20));
return $this->json(HonorResource::collection($list));
}
/**
* 标签列表
*/
public function cates(Request $request){
$query = Keyword::allChildrenOfKey('honors');
$list = $query->sort()->get();
return $this->json(KeywordResource::collection($list));
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace App\Http\Resources;
use App\Models\Keyword;
use Illuminate\Http\Resources\Json\JsonResource;
class HonorResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
*/
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'cover' => $this->cover,
'awarded_date' => $this->awarded_date,
];
}
}

View File

@ -14,6 +14,9 @@ class Honor extends Model
use HasFactory;
use Filterable;
protected $appends = ['cover_url'];
protected function serializeDate(\DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');

View File

@ -17,7 +17,7 @@ class KeywordService extends BaseService
public function getTree()
{
$list = $this->query()->filter(request()->all(), $this->modelFilterName)->orderByDesc('sort')->get();
$list = $this->query()->filter(request()->all(), $this->modelFilterName)->orderBy('sort')->get();
$minNum = $list->min('parent_id');
return !$list->isEmpty() ? array2tree($list->toArray(), $minNum) :[];
}

View File

@ -25,10 +25,15 @@ class KeywordSeeder extends Seeder
'index-top'=>'首页', 'companny-top' =>'关于我们', 'project-top'=>'业务范围', 'examples-top'=> '案例展示', 'news-top'=>'资讯动态','contactus-top'=>'联系我们'
]],
['key' => 'honors', 'name' => '资质荣誉', 'list' => [
'honor1'=>'核心资质认证', 'honor2'=>'管理体系认证','honor3'=>'重要荣誉奖项'
]],
['key' => 'case_study_tag', 'name' => '服务案例标签', 'list' => [//标签value填写色号指定标签颜色
'case_study_tag1'=>'全项目保洁',
'case_study_tag2'=>'专项四害消杀消毒',
'case_study_tag3'=>'石材养护',
'case_study_tag4'=>'生活垃圾清运',
'case_study_tag5'=>'高端文旅项目保洁',
'case_study_tag6'=>'海域水上垃圾清理清运'
]],
];

View File

@ -39,4 +39,7 @@ Route::middleware('api')->group(function () {
Route::get('/case_studies/{case_study}', [CaseStudyController::class, 'show']);
//企业资讯
//荣誉资质
Route::get('/honor_cates', [HonorController::class, 'cates']);
Route::get('/honors', [HonorController::class, 'index']);
});