From 7aa0a2047ea3aaa43cd78bee4e1dc23c0dfb2725 Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Fri, 12 Aug 2022 18:14:52 +0800 Subject: [PATCH] fixed pages --- .../Http/Controllers/AdminRoleController.php | 2 +- .../Http/Controllers/PagesController.php | 5 +++- beike/Admin/Repositories/PageRepo.php | 8 ++++-- beike/Helpers.php | 25 ++++++++++++++++--- beike/Shop/Http/Resources/PageDetail.php | 2 ++ .../admin/views/pages/pages/index.blade.php | 17 +++++++------ 6 files changed, 43 insertions(+), 16 deletions(-) diff --git a/beike/Admin/Http/Controllers/AdminRoleController.php b/beike/Admin/Http/Controllers/AdminRoleController.php index 8318aa0a..e8f8fd7c 100644 --- a/beike/Admin/Http/Controllers/AdminRoleController.php +++ b/beike/Admin/Http/Controllers/AdminRoleController.php @@ -51,7 +51,7 @@ class AdminRoleController extends Controller /** - * 保存 + * 保存后台用户角色 * * @param AdminRoleRequest $request * @return array diff --git a/beike/Admin/Http/Controllers/PagesController.php b/beike/Admin/Http/Controllers/PagesController.php index d473d0ef..b97a34b4 100644 --- a/beike/Admin/Http/Controllers/PagesController.php +++ b/beike/Admin/Http/Controllers/PagesController.php @@ -13,6 +13,7 @@ namespace Beike\Admin\Http\Controllers; use Beike\Models\Page; use Beike\Repositories\ProductRepo; +use Beike\Shop\Http\Resources\PageDetail; use Illuminate\Http\Request; use Beike\Admin\Repositories\PageRepo; @@ -20,8 +21,10 @@ class PagesController { public function index() { + $pageList = PageRepo::getList(); $data = [ - 'pages' => PageRepo::getList() + 'pages' => $pageList, + 'pages_format' => PageDetail::collection($pageList)->jsonSerialize() ]; return view('admin::pages.pages.index', $data); } diff --git a/beike/Admin/Repositories/PageRepo.php b/beike/Admin/Repositories/PageRepo.php index a8ce9619..39848dbf 100644 --- a/beike/Admin/Repositories/PageRepo.php +++ b/beike/Admin/Repositories/PageRepo.php @@ -13,19 +13,23 @@ namespace Beike\Admin\Repositories; use Beike\Models\Page; use Beike\Models\Product; +use Beike\Shop\Http\Resources\PageDetail; use Illuminate\Contracts\Pagination\LengthAwarePaginator; class PageRepo { /** * 获取列表页数据 + * * @return LengthAwarePaginator */ public static function getList(): LengthAwarePaginator { - return Page::query()->with([ + $builder = Page::query()->with([ 'description' - ])->paginate(); + ])->orderByDesc('created_at'); + + return $builder->paginate(); } diff --git a/beike/Helpers.php b/beike/Helpers.php index 72cc832e..ddba3553 100644 --- a/beike/Helpers.php +++ b/beike/Helpers.php @@ -374,12 +374,11 @@ function quantity_format($quantity) */ function json_success($message, $data = []): array { - $result = [ + return [ 'status' => 'success', 'message' => $message, 'data' => $data, ]; - return $result; } /** @@ -387,12 +386,30 @@ function json_success($message, $data = []): array */ function json_fail($message, $data = []): array { - $result = [ + return [ 'status' => 'fail', 'message' => $message, 'data' => $data, ]; - return $result; +} + +if (!function_exists('sub_string')) { + /** + * @param $string + * @param int $length + * @param string $dot + * @return string + */ + function sub_string($string, int $length = 16, string $dot = '...'): string + { + $strLength = strlen($string); + if ($length <= 0) { + return $string; + } elseif ($strLength <= $length) { + return $string; + } + return mb_substr($string, 0, $length) . $dot; + } } /** diff --git a/beike/Shop/Http/Resources/PageDetail.php b/beike/Shop/Http/Resources/PageDetail.php index 2531be97..7829fe3b 100644 --- a/beike/Shop/Http/Resources/PageDetail.php +++ b/beike/Shop/Http/Resources/PageDetail.php @@ -26,7 +26,9 @@ class PageDetail extends JsonResource $description = $this->description; return [ 'id' => $this->id, + 'active' => $this->active, 'title' => $description->title, + 'title_format' => sub_string($description->title), 'content' => $description->content, 'meta_title' => $description->meta_title, 'meta_description' => $description->meta_description, diff --git a/resources/beike/admin/views/pages/pages/index.blade.php b/resources/beike/admin/views/pages/pages/index.blade.php index 3412ac95..8bb61fe5 100644 --- a/resources/beike/admin/views/pages/pages/index.blade.php +++ b/resources/beike/admin/views/pages/pages/index.blade.php @@ -20,16 +20,16 @@ - @foreach ($pages as $page) + @foreach ($pages_format as $page) - {{ $page->id }} - {{ $page->description->title ?? '' }} - {{ $page->active }} - {{ $page->created_at }} - {{ $page->updated_at }} + {{ $page['id'] }} + {{ $page['title_format'] ?? '' }} + {{ $page['active'] }} + {{ $page['created_at'] }} + {{ $page['updated_at'] }} - 编辑 -
+ 编辑 + {{ method_field('delete') }} {{ csrf_field() }} @@ -41,6 +41,7 @@ {{ $pages->links('admin::vendor/pagination/bootstrap-4') }} + @endsection