TaskCostController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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\TaskCost;
  8. use App\Module\Task\Repositorys\TaskCostRepository;
  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-costs', names: 'dcat.admin.task-costs')]
  20. class TaskCostController 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 TaskCostRepository(), function (Grid $grid) {
  36. $helper = new GridHelper($grid, $this);
  37. $helper->columnId();
  38. $grid->column('task.name', '任务名称');
  39. $grid->column('cost_type', '消耗类型');
  40. $grid->column('cost_param1', '消耗参数1');
  41. $grid->column('cost_param2', '消耗参数2');
  42. $grid->column('quantity', '消耗数量');
  43. $grid->column('extra_data', '额外数据')->json();
  44. $grid->column('created_at', '创建时间')->sortable();
  45. $grid->filter(function (Grid\Filter $filter) {
  46. $filterHelper = new FilterHelper($filter, $this);
  47. $filterHelper->equal();
  48. $filterHelper->equalTaskId();
  49. $filterHelper->equal('cost_type', '消耗类型');
  50. $filterHelper->equal('cost_param1', '消耗参数1');
  51. $filterHelper->equal('cost_param2', '消耗参数2');
  52. });
  53. });
  54. }
  55. /**
  56. * 详情页构建
  57. *
  58. * @param mixed $id
  59. * @return Show
  60. */
  61. protected function detail($id)
  62. {
  63. return Show::make(TaskCost::findOrFail($id), function (Show $show) {
  64. $helper = new ShowHelper($show, $this);
  65. $helper->fieldId();
  66. $show->field('task.name', '任务名称');
  67. $show->field('cost_type', '消耗类型');
  68. $show->field('cost_param1', '消耗参数1');
  69. $show->field('cost_param2', '消耗参数2');
  70. $show->field('quantity', '消耗数量');
  71. $helper->fieldJson('extra_data', '额外数据');
  72. $helper->fieldCreatedAt();
  73. $helper->fieldUpdatedAt();
  74. });
  75. }
  76. /**
  77. * 表单构建
  78. *
  79. * @return Form
  80. */
  81. protected function form()
  82. {
  83. return Form::make(new TaskCostRepository(), function (Form $form) {
  84. $helper = new FormHelper($form, $this);
  85. $form->display('id', 'ID');
  86. $helper->selectTask();
  87. $form->text('cost_type', '消耗类型')->required()->help('如物品、货币等');
  88. $form->text('cost_param1', '消耗参数1')->required()->help('如物品类型、货币类型等');
  89. $form->text('cost_param2', '消耗参数2')->required()->help('如物品ID、货币ID等');
  90. $form->number('quantity', '消耗数量')->default(1)->min(1)->required();
  91. $helper->json('extra_data', '额外数据');
  92. $form->display('created_at', '创建时间');
  93. $form->display('updated_at', '更新时间');
  94. });
  95. }
  96. }