generated from liutk/owl-admin-base
68 lines
2.7 KiB
PHP
68 lines
2.7 KiB
PHP
<?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\ActivityService;
|
|
use App\Traits\CustomActionTrait;
|
|
use App\Admin\Components;
|
|
|
|
class ActivityController extends AdminController
|
|
{
|
|
use CustomActionTrait;
|
|
protected string $serviceName = ActivityService::class;
|
|
|
|
public function list(): Page
|
|
{
|
|
$crud = $this->baseCRUD()->tableLayout('fixed')
|
|
->headerToolbar([
|
|
$this->createTypeButton('drawer', 'lg'),
|
|
...$this->baseHeaderToolBar(),
|
|
])
|
|
->filter($this->baseFilter()->labelWidth('80px')->body([
|
|
amis()->GroupControl()->mode('horizontal')->body([
|
|
amis()->TextControl('id', __('admin.id'))->columnRatio(3)
|
|
->placeholder(__('admin.id')),
|
|
amis()->TextControl('name', __('admin.activities.name'))->columnRatio(3)
|
|
->placeholder(__('admin.activities.name')),
|
|
]),
|
|
]))
|
|
->columns([
|
|
amis()->TableColumn('id', __('admin.id'))->width('50px')->sortable(),
|
|
amis()->TableColumn('name', __('admin.activities.name')),
|
|
amis()->TableColumn('state', __('admin.activities.state')),
|
|
amis()->TableColumn('start_at', __('admin.activities.start_at')),
|
|
amis()->TableColumn('end_at', __('admin.activities.end_at')),
|
|
|
|
amis()->TableColumn('created_at', __('admin.created_at'))->type('datetime')->sortable(true),
|
|
Operation::make()->label(__('admin.actions'))->buttons([
|
|
//发布活动-todo
|
|
//结算活动(参与时间结束后,且最后一场竞猜结束,点击结算则发送奖品)-todo
|
|
$this->rowShowTypeButton('drawer', 'xl'),//活动详情-todo-//竞猜赛程//活动奖品
|
|
])
|
|
]);
|
|
|
|
return $this->baseList($crud);
|
|
}
|
|
|
|
public function form($isEdit = false): Form
|
|
{
|
|
return $this->baseForm()->body([
|
|
amis()->TextControl('name', __('admin.activities.name'))->required(true),
|
|
Components::make()->cropImageControl('cover', __('admin.activities.cover'))->required(true),
|
|
amis()->DateRangeControl('activity_at', __('admin.activities.activity_at'))->clearable(false)->format('YYYY-MM-DD HH:mm:ss')->required(true),
|
|
amis()->TextareaControl('rules', __('admin.activities.rules'))
|
|
]);
|
|
}
|
|
|
|
public function detail(): Form
|
|
{
|
|
return $this->baseDetail()->body([
|
|
|
|
]);
|
|
}
|
|
} |