From 166f7850e04cb5128facb63bcd6306e272db3d08 Mon Sep 17 00:00:00 2001 From: liutk <961510893@qq.com> Date: Sun, 26 May 2024 16:25:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=90=8E=E5=8F=B0=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E6=8E=92=E8=A1=8C=E6=A6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/ActivityController.php | 17 ++++++ .../Controllers/UserActivityController.php | 61 +++++++++++++++++++ app/Admin/routes.php | 1 + app/Models/Filters/UserActivityFilter.php | 13 ++++ app/Models/UserActivity.php | 3 +- app/Services/Admin/UserActivityService.php | 23 +++++++ lang/zh_CN/admin.php | 6 ++ 7 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 app/Admin/Controllers/UserActivityController.php create mode 100644 app/Models/Filters/UserActivityFilter.php create mode 100644 app/Services/Admin/UserActivityService.php diff --git a/app/Admin/Controllers/ActivityController.php b/app/Admin/Controllers/ActivityController.php index 9194cf3..26a1319 100644 --- a/app/Admin/Controllers/ActivityController.php +++ b/app/Admin/Controllers/ActivityController.php @@ -68,6 +68,23 @@ class ActivityController extends AdminController $this->rowShowTypeButton('drawer', 'xl'),//活动详情 $this->rowEditTypeButton('drawer', 'lg'), $this->rowDeleteButton()->visibleOn('${state === 0}'), + amisMake()->DialogAction()->label('排行榜')->icon('fa-regular fa-chart-bar')->level('link') + ->dialog(Dialog::make()->title('排行榜')->body([ + amisMake()->CRUDTable()->affixHeader()->columnsTogglable(false) + ->perPage(999)->loadDataOnce(true) + ->headerToolbar([]) + ->title('') + ->api(admin_url('user_activities?_action=getData&activity=${id}&perPage=999')) + ->columns([ + amis()->TableColumn('${index +1}', '排名'), + amis()->TableColumn('user.nick_name', __('admin.users.nick_name')), + amis()->TableColumn('user.avatar', __('admin.users.avatar'))->type('image')->height('30px')->width('30px'), + amis()->TableColumn('join_times', __('admin.user_activities.join_times')), + amis()->TableColumn('right_times', __('admin.user_activities.right_times')), + amis()->TableColumn('mark', __('admin.user_activities.mark')), + amis()->TableColumn('last_join_at', __('admin.user_activities.last_join_at')), + ]) + ])->size('lg'))->visibleOn('${state != 0}'), //结算活动(参与时间结束后,且最后一场竞猜结束,点击结算则发送奖品) amisMake()->AjaxAction()->label('结算')->icon('fa-regular fa-hand-point-up')->level('link') ->actionType('ajax') diff --git a/app/Admin/Controllers/UserActivityController.php b/app/Admin/Controllers/UserActivityController.php new file mode 100644 index 0000000..8fb34e9 --- /dev/null +++ b/app/Admin/Controllers/UserActivityController.php @@ -0,0 +1,61 @@ +baseCRUD()->tableLayout('fixed') + ->headerToolbar([ + + ]) + ->filter($this->baseFilter()->labelWidth('80px')->body([ + ])) + ->columns([ + + ]); + + return $this->baseList($crud); + } + + public function form($isEdit = false): Form + { + return $this->baseForm()->body([ + + ]); + } + + public function detail() + { + $form = amisMake()->form()->title('')->panelClassName('border-r border-t-0 border-b-0 border-l-0')->mode('horizontal') + ->static(true)->actions([]) + ->body([ + + ]); + + return amisMake()->Grid()->columns([ + amis()->Column()->body($form)->md(4), + amis()->Column()->body([ + ])->md(8), + ]); + } + + public function detailActions() + { + return [ + //返回 + amis()->Button()->actionType('cancel')->label(__('admin.back'))->primary() + ]; + } +} \ No newline at end of file diff --git a/app/Admin/routes.php b/app/Admin/routes.php index 7bdeb96..9e25b5f 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -46,6 +46,7 @@ Route::group([ $router->resource('user_gifts', \App\Admin\Controllers\UserGiftController::class)->only(['index']); $router->resource('user_games', \App\Admin\Controllers\UserGameController::class)->only(['index']); + $router->resource('user_activities', \App\Admin\Controllers\UserActivityController::class)->only(['index']); //修改上传 $router->post('upload_file', [\App\Admin\Controllers\IndexController::class, 'uploadFile']); diff --git a/app/Models/Filters/UserActivityFilter.php b/app/Models/Filters/UserActivityFilter.php new file mode 100644 index 0000000..91b6eee --- /dev/null +++ b/app/Models/Filters/UserActivityFilter.php @@ -0,0 +1,13 @@ +where('activity_id', $activity); + } +} diff --git a/app/Models/UserActivity.php b/app/Models/UserActivity.php index dc2f16e..147bcf3 100644 --- a/app/Models/UserActivity.php +++ b/app/Models/UserActivity.php @@ -5,10 +5,11 @@ namespace App\Models; use DB; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use EloquentFilter\Filterable; class UserActivity extends Model { - use HasFactory; + use HasFactory,Filterable; protected $fillable = [ 'user_id', 'activity_id', 'join_times', diff --git a/app/Services/Admin/UserActivityService.php b/app/Services/Admin/UserActivityService.php new file mode 100644 index 0000000..33b389e --- /dev/null +++ b/app/Services/Admin/UserActivityService.php @@ -0,0 +1,23 @@ + [ 'score' => '竞猜比分', 'is_right' => '状态', + ], + 'user_activities' => [ + 'join_times' => '猜', + 'right_times' => '中', + 'mark' =>'成绩', + 'last_join_at' => '最后一次竞猜时间' ] ];