| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace App\Module\Activity\AdminControllers\LazyRenderable;
- use App\Module\Activity\Enums\ACTIVITY_STATUS;
- use App\Module\Activity\Enums\ACTIVITY_TYPE;
- use App\Module\Activity\Models\ActivityConfig;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Grid\LazyRenderable;
- /**
- * 活动懒加载渲染类
- *
- * 用于在表单中选择活动时的数据表格渲染
- */
- class ActivityLazyRenderable extends LazyRenderable
- {
- /**
- * 获取模型
- *
- * @return string
- */
- public function getModel(): string
- {
- return ActivityConfig::class;
- }
- /**
- * 获取模型选择ID字段
- *
- * @return string
- */
- public function getModelSelectId(): string
- {
- return 'id';
- }
- /**
- * 获取模型显示名称字段
- *
- * @return string
- */
- public function getModelViewName(): string
- {
- return 'name';
- }
- /**
- * 构建表格
- *
- * @param Grid $grid
- * @return void
- */
- public function grid(Grid $grid): void
- {
- $grid->column('id', 'ID')->sortable();
- $grid->column('name', '活动名称');
- $grid->column('type', '活动类型')->using(ACTIVITY_TYPE::getAll());
- $grid->column('status', '活动状态')->using(ACTIVITY_STATUS::getAll());
- $grid->column('start_time', '开始时间');
- $grid->column('end_time', '结束时间');
- $grid->quickSearch(['id', 'name']);
- $grid->filter(function (Grid\Filter $filter) {
- $filter->panel();
- $filter->equal('id', 'ID');
- $filter->like('name', '活动名称');
- $filter->equal('type', '活动类型')->select(ACTIVITY_TYPE::getAll());
- $filter->equal('status', '活动状态')->select(ACTIVITY_STATUS::getAll());
- });
- }
- }
|