GameConditionGroupLazyRenderable.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace App\Module\Game\AdminControllers\LazyRenderable;
  3. use App\Module\Game\Models\GameConditionGroup;
  4. use App\Module\Game\Repositories\GameConditionGroupRepository;
  5. use Dcat\Admin\Grid;
  6. use UCore\DcatAdmin\Grid\LazyRenderable;
  7. use UCore\DcatAdmin\Grid\SelectTable;
  8. /**
  9. * 条件组懒加载渲染类
  10. *
  11. * 用于在表单中选择条件组时的数据表格渲染
  12. */
  13. class GameConditionGroupLazyRenderable extends LazyRenderable implements SelectTable
  14. {
  15. /**
  16. * 获取模型
  17. *
  18. * @return string
  19. */
  20. public function getModel(): string
  21. {
  22. return GameConditionGroup::class;
  23. }
  24. /**
  25. * 获取模型选择ID字段
  26. *
  27. * @return string
  28. */
  29. public function getModelSelectId(): string
  30. {
  31. return 'id';
  32. }
  33. /**
  34. * 获取模型显示名称字段
  35. *
  36. * @return string
  37. */
  38. public function getModelViewName(): string
  39. {
  40. return 'name';
  41. }
  42. /**
  43. * 构建表格
  44. *
  45. * @return Grid
  46. */
  47. public function grid(): Grid
  48. {
  49. return Grid::make(new GameConditionGroupRepository(), function (Grid $grid) {
  50. $grid->column('id', 'ID')->sortable();
  51. $grid->column('name', '名称');
  52. $grid->column('code', '编码');
  53. $grid->column('description', '描述')->limit(30);
  54. $grid->column('logic_type', '逻辑类型')->using(GameConditionGroup::getLogicTypes());
  55. $grid->column('created_at', '创建时间');
  56. $grid->quickSearch(['id', 'name', 'code']);
  57. $grid->filter(function (Grid\Filter $filter) {
  58. $filter->panel();
  59. $filter->equal('id', 'ID');
  60. $filter->like('name', '名称');
  61. $filter->like('code', '编码');
  62. $filter->equal('logic_type', '逻辑类型')->select(GameConditionGroup::getLogicTypes());
  63. });
  64. $grid->paginate(10);
  65. $grid->disableActions();
  66. $grid->disableBatchActions();
  67. $grid->disableCreateButton();
  68. });
  69. }
  70. }