补充后台查看排行榜

main
liutk 2024-05-26 16:25:39 +08:00
parent 5a80f9cd06
commit 166f7850e0
7 changed files with 123 additions and 1 deletions

View File

@ -68,6 +68,23 @@ class ActivityController extends AdminController
$this->rowShowTypeButton('drawer', 'xl'),//活动详情 $this->rowShowTypeButton('drawer', 'xl'),//活动详情
$this->rowEditTypeButton('drawer', 'lg'), $this->rowEditTypeButton('drawer', 'lg'),
$this->rowDeleteButton()->visibleOn('${state === 0}'), $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') amisMake()->AjaxAction()->label('结算')->icon('fa-regular fa-hand-point-up')->level('link')
->actionType('ajax') ->actionType('ajax')

View File

@ -0,0 +1,61 @@
<?php
namespace App\Admin\Controllers;
use Slowlyo\OwlAdmin\Admin;
use Slowlyo\OwlAdmin\Renderers\Page;
use Slowlyo\OwlAdmin\Renderers\Form;
use Slowlyo\OwlAdmin\Renderers\Operation;
use Slowlyo\OwlAdmin\Controllers\AdminController;
use App\Services\Admin\UserActivityService;
use App\Admin\Components;
class UserActivityController extends AdminController
{
protected string $serviceName = UserActivityService::class;
public function list(): Page
{
$crud = $this->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()
];
}
}

View File

@ -46,6 +46,7 @@ Route::group([
$router->resource('user_gifts', \App\Admin\Controllers\UserGiftController::class)->only(['index']); $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_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']); $router->post('upload_file', [\App\Admin\Controllers\IndexController::class, 'uploadFile']);

View File

@ -0,0 +1,13 @@
<?php
namespace App\Models\Filters;
use Illuminate\Support\Arr;
use EloquentFilter\ModelFilter;
class UserActivityFilter extends ModelFilter
{
public function activity($activity){
return $this->where('activity_id', $activity);
}
}

View File

@ -5,10 +5,11 @@ namespace App\Models;
use DB; use DB;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use EloquentFilter\Filterable;
class UserActivity extends Model class UserActivity extends Model
{ {
use HasFactory; use HasFactory,Filterable;
protected $fillable = [ protected $fillable = [
'user_id', 'activity_id', 'join_times', 'user_id', 'activity_id', 'join_times',

View File

@ -0,0 +1,23 @@
<?php
namespace App\Services\Admin;
use App\Models\UserActivity;
use App\Models\Filters\UserActivityFilter;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Storage;
/**
* @method UserActivity getModel()
* @method UserActivity|\Illuminate\Database\Query\Builder query()
*/
class UserActivityService extends BaseService
{
protected string $modelName = UserActivity::class;
protected string $modelFilterName = UserActivityFilter::class;
protected bool $modelSortAble = true;
protected array $withRelationships = ['user'];
}

View File

@ -366,5 +366,11 @@ return [
'user_games' => [ 'user_games' => [
'score' => '竞猜比分', 'score' => '竞猜比分',
'is_right' => '状态', 'is_right' => '状态',
],
'user_activities' => [
'join_times' => '猜',
'right_times' => '中',
'mark' =>'成绩',
'last_join_at' => '最后一次竞猜时间'
] ]
]; ];