RewardGroupLazyRenderable.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Module\Game\AdminControllers\LazyRenderable;
  3. use App\Module\Game\Models\GameRewardGroup;
  4. use Dcat\Admin\Grid;
  5. use Dcat\Admin\Grid\LazyRenderable;
  6. /**
  7. * 奖励组懒加载渲染类
  8. *
  9. * 用于在表单中选择奖励组时的数据表格渲染
  10. */
  11. class RewardGroupLazyRenderable extends LazyRenderable
  12. {
  13. /**
  14. * 获取模型
  15. *
  16. * @return string
  17. */
  18. public function getModel(): string
  19. {
  20. return GameRewardGroup::class;
  21. }
  22. /**
  23. * 获取模型选择ID字段
  24. *
  25. * @return string
  26. */
  27. public function getModelSelectId(): string
  28. {
  29. return 'id';
  30. }
  31. /**
  32. * 获取模型显示名称字段
  33. *
  34. * @return string
  35. */
  36. public function getModelViewName(): string
  37. {
  38. return 'name';
  39. }
  40. /**
  41. * 构建表格
  42. *
  43. * @param Grid $grid
  44. * @return void
  45. */
  46. public function grid(Grid $grid): void
  47. {
  48. $grid->column('id', 'ID')->sortable();
  49. $grid->column('name', '名称');
  50. $grid->column('code', '编码');
  51. $grid->column('description', '描述')->limit(30);
  52. $grid->column('is_random', '随机发放')->switch();
  53. $grid->column('random_count', '随机数量');
  54. $grid->column('created_at', '创建时间');
  55. $grid->quickSearch(['id', 'name', 'code']);
  56. $grid->filter(function (Grid\Filter $filter) {
  57. $filter->panel();
  58. $filter->equal('id', 'ID');
  59. $filter->like('name', '名称');
  60. $filter->like('code', '编码');
  61. $filter->equal('is_random', '随机发放')->select([0 => '否', 1 => '是']);
  62. });
  63. }
  64. }