generated from liutk/owl-admin-base
0.8
parent
f2df604eae
commit
ea174e3b88
|
|
@ -83,6 +83,7 @@ class ArticleController extends AdminController
|
||||||
amis()->Grid()->columns([
|
amis()->Grid()->columns([
|
||||||
amis()->Wrapper()->body([
|
amis()->Wrapper()->body([
|
||||||
amis()->TextControl('title', __('admin.articles.title'))->required(true),
|
amis()->TextControl('title', __('admin.articles.title'))->required(true),
|
||||||
|
amis()->TextareaControl('description', __('admin.articles.description')),
|
||||||
// Components::make()->parentControl(admin_url('api/keywords/tree-list?parent_name=article_category&has_owner=0'), 'category', __('admin.articles.category'), 'name', 'key'),
|
// Components::make()->parentControl(admin_url('api/keywords/tree-list?parent_name=article_category&has_owner=0'), 'category', __('admin.articles.category'), 'name', 'key'),
|
||||||
// Components::make()->keywordsTagControl('t_ids', __('admin.articles.tags'), 'article_tag'),
|
// Components::make()->keywordsTagControl('t_ids', __('admin.articles.tags'), 'article_tag'),
|
||||||
Components::make()->cropImageControl('cover', __('admin.articles.cover')),
|
Components::make()->cropImageControl('cover', __('admin.articles.cover')),
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Traits\PaginatorTrait;
|
||||||
|
use App\Models\Filters\ArticleFilter;
|
||||||
|
use App\Http\Resources\NewsResource;
|
||||||
|
use App\Models\Article;
|
||||||
|
use App\Models\ProjectArticle;
|
||||||
|
|
||||||
|
class NewsController extends Controller
|
||||||
|
{
|
||||||
|
use PaginatorTrait;
|
||||||
|
|
||||||
|
public function index(Request $request){
|
||||||
|
$query = Article::filter($request->all(), ArticleFilter::class)->sort();
|
||||||
|
$list = $query->show()->sort()->paginate($this->resolvePerPage('per_page', 20));
|
||||||
|
|
||||||
|
return $this->json(NewsResource::collection($list));
|
||||||
|
}
|
||||||
|
public function show(Article $news){
|
||||||
|
request()->merge(['include_content' => true]);
|
||||||
|
return $this->json(NewsResource::make($news));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Http\Resources\{TimelineResource};
|
||||||
|
use App\Traits\PaginatorTrait;
|
||||||
|
use App\Models\Filters\TimelineFilter;
|
||||||
|
use App\Models\Timeline;
|
||||||
|
|
||||||
|
class TimelineController extends Controller
|
||||||
|
{
|
||||||
|
use PaginatorTrait;
|
||||||
|
|
||||||
|
public function index(Request $request){
|
||||||
|
$query = Timeline::filter($request->all(), TimelineFilter::class)->sort();
|
||||||
|
$list = $query->show()->sort()->paginate($this->resolvePerPage('per_page', 20));
|
||||||
|
|
||||||
|
return $this->json(TimelineResource::collection($list));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -15,7 +15,7 @@ class HonorResource extends JsonResource
|
||||||
public function toArray($request)
|
public function toArray($request)
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'id' => $this->id,
|
// 'id' => $this->id,
|
||||||
'title' => $this->title,
|
'title' => $this->title,
|
||||||
'cover' => $this->cover,
|
'cover' => $this->cover,
|
||||||
'awarded_date' => $this->awarded_date,
|
'awarded_date' => $this->awarded_date,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class NewsResource 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,
|
||||||
|
'description' => $this->description,
|
||||||
|
'content' => $this->when($request->boolean('include_content'), $this->content),
|
||||||
|
'published_at' => $this->published_at->toDateTimeString()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use App\Models\Keyword;
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class TimelineResource 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,
|
||||||
|
'description' => $this->description,
|
||||||
|
'cover' => $this->cover,
|
||||||
|
'awarded_date' => $this->awarded_date,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -32,6 +32,7 @@ class Article extends Model
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'title',
|
'title',
|
||||||
|
'description',
|
||||||
'content',
|
'content',
|
||||||
'cover',
|
'cover',
|
||||||
'category',
|
'category',
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('articles', function (Blueprint $table) {
|
||||||
|
//
|
||||||
|
$table->text('description')->nullable()->comment('简介');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('articles', function (Blueprint $table) {
|
||||||
|
//
|
||||||
|
$table->dropColumn(['description']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -298,6 +298,7 @@ return [
|
||||||
'sort' => '排序',
|
'sort' => '排序',
|
||||||
'appendixes' => '附件',
|
'appendixes' => '附件',
|
||||||
'published_at_remark' => '*若未设置发布时间且操作设置为显示,则默认生成发布时间',
|
'published_at_remark' => '*若未设置发布时间且操作设置为显示,则默认生成发布时间',
|
||||||
|
'description' => '简述',
|
||||||
],
|
],
|
||||||
'ads' => [
|
'ads' => [
|
||||||
'id' => 'ID',
|
'id' => 'ID',
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,11 @@ Route::middleware('api')->group(function () {
|
||||||
Route::get('/case_studies', [CaseStudyController::class, 'index']);
|
Route::get('/case_studies', [CaseStudyController::class, 'index']);
|
||||||
Route::get('/case_studies/{case_study}', [CaseStudyController::class, 'show']);
|
Route::get('/case_studies/{case_study}', [CaseStudyController::class, 'show']);
|
||||||
//企业资讯
|
//企业资讯
|
||||||
|
Route::get('/news', [NewsController::class, 'index']);
|
||||||
|
Route::get('/news/{news}', [NewsController::class, 'show']);
|
||||||
//荣誉资质
|
//荣誉资质
|
||||||
Route::get('/honor_cates', [HonorController::class, 'cates']);
|
Route::get('/honor_cates', [HonorController::class, 'cates']);
|
||||||
Route::get('/honors', [HonorController::class, 'index']);
|
Route::get('/honors', [HonorController::class, 'index']);
|
||||||
|
//发展历程
|
||||||
|
Route::get('/timelines', [TimelineController::class, 'index']);
|
||||||
});
|
});
|
||||||
Loading…
Reference in New Issue