From f4a1064b1571ab95553a7d78b78cc2ee37cdd9e8 Mon Sep 17 00:00:00 2001 From: Wisp X Date: Thu, 23 Dec 2021 22:13:10 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=88=91=E7=9A=84=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=94=AF=E6=8C=81=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/User/ImageController.php | 17 ++++++++++++++++- public/js/app.js | 12 ++++++++---- resources/js/app.js | 12 ++++++++---- resources/views/images.blade.php | 12 +----------- 4 files changed, 33 insertions(+), 20 deletions(-) diff --git a/app/Http/Controllers/User/ImageController.php b/app/Http/Controllers/User/ImageController.php index 8b6776e6..3fb65600 100644 --- a/app/Http/Controllers/User/ImageController.php +++ b/app/Http/Controllers/User/ImageController.php @@ -6,6 +6,7 @@ use App\Http\Controllers\Controller; use App\Models\Album; use App\Models\Image; use App\Models\User; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; @@ -23,7 +24,21 @@ class ImageController extends Controller /** @var User $user */ $user = Auth::user(); - $images = $user->images()->latest()->paginate(40); + $images = $user->images()->when($request->query('order') ?: 'newest', function (Builder $builder, $order) { + switch ($order) { + case 'earliest': + $builder->orderBy('created_at'); + break; + case 'utmost': + $builder->orderByDesc('size'); + break; + case 'least': + $builder->orderBy('size'); + break; + default: + $builder->latest(); + } + })->paginate(40); $images->getCollection()->each(function (Image $image) { $image->human_date = $image->created_at->diffForHumans(); $image->date = $image->created_at->format('Y-m-d H:i:s'); diff --git a/public/js/app.js b/public/js/app.js index 55f47591..87991473 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -3449,7 +3449,9 @@ window.utils = { $btn.text('加载更多').removeClass('disabled'); } - if (opts.data.page !== undefined) opts.data.page++; + if (opts.data.page !== undefined) { + opts.data.page++; + } }, error: function error() { $btn.text(errorText).addClass('disabled'); @@ -3459,8 +3461,10 @@ window.utils = { } }; - var load = function load(params) { - if (props.loading || props.finished) return; + var load = function load(params, force) { + if (!force) { + if (props.loading || props.finished) return; + } if (typeof options.data === 'function') { opts.data = options.data(opts.data) || {}; @@ -3485,7 +3489,7 @@ window.utils = { }); return { refresh: function refresh(params) { - load(params); + load(params, true); } }; } diff --git a/resources/js/app.js b/resources/js/app.js index 940bd7ee..acef1abc 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -56,7 +56,9 @@ window.utils = { } else { $btn.text('加载更多').removeClass('disabled') } - if (opts.data.page !== undefined) opts.data.page++; + if (opts.data.page !== undefined) { + opts.data.page++; + } }, error() { $btn.text(errorText).addClass('disabled') @@ -64,8 +66,10 @@ window.utils = { } }; - let load = (params) => { - if (props.loading || props.finished) return; + let load = (params, force) => { + if (! force) { + if (props.loading || props.finished) return; + } if (typeof options.data === 'function') { opts.data = options.data(opts.data) || {}; } @@ -87,7 +91,7 @@ window.utils = { return { refresh(params) { - load(params); + load(params, true); }, } } diff --git a/resources/views/images.blade.php b/resources/views/images.blade.php index 1c9d9776..3449432b 100644 --- a/resources/views/images.blade.php +++ b/resources/views/images.blade.php @@ -83,9 +83,6 @@