TaskRewardController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace App\Module\Task\AdminControllers;
  3. use App\Module\Task\AdminControllers\Helper\FilterHelper;
  4. use App\Module\Task\AdminControllers\Helper\FormHelper;
  5. use App\Module\Task\AdminControllers\Helper\GridHelper;
  6. use App\Module\Task\AdminControllers\Helper\ShowHelper;
  7. use App\Module\Task\Models\TaskReward;
  8. use App\Module\Task\Repositorys\TaskRewardRepository;
  9. use Dcat\Admin\Form;
  10. use Dcat\Admin\Grid;
  11. use Dcat\Admin\Show;
  12. use Spatie\RouteAttributes\Attributes\Resource;
  13. use UCore\DcatAdmin\AdminController;
  14. /**
  15. * 任务奖励控制器
  16. *
  17. * @package App\Module\Task\AdminControllers
  18. */
  19. #[Resource('task-rewards', names: 'dcat.admin.task-rewards')]
  20. class TaskRewardController extends AdminController
  21. {
  22. /**
  23. * 标题
  24. *
  25. * @var string
  26. */
  27. protected $title = '任务奖励管理';
  28. /**
  29. * 表格构建
  30. *
  31. * @return Grid
  32. */
  33. protected function grid()
  34. {
  35. return Grid::make(new TaskRewardRepository(), function (Grid $grid) {
  36. $helper = new GridHelper($grid, $this);
  37. $helper->columnId();
  38. $grid->column('task.name', '任务名称');
  39. $helper->columnRewardType();
  40. $grid->column('reward_param1', '奖励参数1');
  41. $grid->column('reward_param2', '奖励参数2');
  42. $grid->column('quantity', '奖励数量');
  43. $grid->column('extra_data', '额外数据')->json();
  44. $grid->column('sort_order', '排序权重')->sortable();
  45. $grid->column('created_at', '创建时间')->sortable();
  46. $grid->filter(function (Grid\Filter $filter) {
  47. $filterHelper = new FilterHelper($filter, $this);
  48. $filterHelper->equal();
  49. $filterHelper->equalTaskId();
  50. $filterHelper->equal('reward_type', '奖励类型');
  51. $filterHelper->equal('reward_param1', '奖励参数1');
  52. $filterHelper->equal('reward_param2', '奖励参数2');
  53. });
  54. });
  55. }
  56. /**
  57. * 详情页构建
  58. *
  59. * @param mixed $id
  60. * @return Show
  61. */
  62. protected function detail($id)
  63. {
  64. return Show::make(TaskReward::findOrFail($id), function (Show $show) {
  65. $helper = new ShowHelper($show, $this);
  66. $helper->fieldId();
  67. $show->field('task.name', '任务名称');
  68. $helper->fieldRewardType();
  69. $show->field('reward_param1', '奖励参数1');
  70. $show->field('reward_param2', '奖励参数2');
  71. $show->field('quantity', '奖励数量');
  72. $helper->fieldJson('extra_data', '额外数据');
  73. $helper->fieldSortOrder();
  74. $helper->fieldCreatedAt();
  75. $helper->fieldUpdatedAt();
  76. });
  77. }
  78. /**
  79. * 表单构建
  80. *
  81. * @return Form
  82. */
  83. protected function form()
  84. {
  85. return Form::make(new TaskRewardRepository(), function (Form $form) {
  86. $helper = new FormHelper($form, $this);
  87. $form->display('id', 'ID');
  88. $helper->selectTask();
  89. $helper->selectRewardType();
  90. $form->text('reward_param1', '奖励参数1')->required()->help('如物品类型、货币类型等');
  91. $form->text('reward_param2', '奖励参数2')->required()->help('如物品ID、货币ID等');
  92. $helper->numberQuantity();
  93. $helper->json('extra_data', '额外数据');
  94. $helper->numberSortOrder();
  95. $form->display('created_at', '创建时间');
  96. $form->display('updated_at', '更新时间');
  97. });
  98. }
  99. }