TaskResetLogController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. namespace App\Module\Task\AdminControllers;
  3. use App\Module\Task\AdminControllers\Helper\FilterHelper;
  4. use App\Module\Task\AdminControllers\Helper\GridHelper;
  5. use App\Module\Task\AdminControllers\Helper\ShowHelper;
  6. use App\Module\Task\Models\TaskResetLog;
  7. use App\Module\Task\Repositorys\TaskResetLogRepository;
  8. use Dcat\Admin\Grid;
  9. use Dcat\Admin\Show;
  10. use Spatie\RouteAttributes\Attributes\Resource;
  11. use UCore\DcatAdmin\AdminController;
  12. /**
  13. * 任务重置日志控制器
  14. *
  15. * @package App\Module\Task\AdminControllers
  16. */
  17. #[Resource('task-reset-logs', names: 'dcat.admin.task-reset-logs')]
  18. class TaskResetLogController extends AdminController
  19. {
  20. /**
  21. * 标题
  22. *
  23. * @var string
  24. */
  25. protected $title = '任务重置日志';
  26. /**
  27. * 表格构建
  28. *
  29. * @return Grid
  30. */
  31. protected function grid()
  32. {
  33. return Grid::make(new TaskResetLogRepository(), function (Grid $grid) {
  34. $helper = new GridHelper($grid, $this);
  35. $helper->columnId();
  36. $helper->columnUserId();
  37. $grid->column('task_id', '任务ID');
  38. $grid->column('user_task_id', '用户任务ID');
  39. $helper->columnResetType();
  40. $grid->column('old_status', '旧状态')->display(function ($status) {
  41. return \App\Module\Task\Enums\TASK_STATUS::getDescription(\App\Module\Task\Enums\TASK_STATUS::from($status));
  42. });
  43. $grid->column('old_progress', '旧进度')->display(function ($progress) {
  44. return $progress . '%';
  45. });
  46. $grid->column('reset_time', '重置时间')->sortable();
  47. $grid->column('next_reset_time', '下次重置时间');
  48. $grid->column('reset_count', '重置次数');
  49. $grid->filter(function (Grid\Filter $filter) {
  50. $filterHelper = new FilterHelper($filter, $this);
  51. $filterHelper->equal();
  52. $filterHelper->equalUserId();
  53. $filterHelper->equalTaskId();
  54. $filterHelper->equal('user_task_id', '用户任务ID');
  55. $filterHelper->equalResetType();
  56. $filterHelper->betweenDatetime('reset_time', '重置时间');
  57. });
  58. // 禁用创建按钮
  59. $grid->disableCreateButton();
  60. // 禁用编辑和删除按钮
  61. $grid->actions(function (Grid\Displayers\Actions $actions) {
  62. $actions->disableEdit();
  63. $actions->disableDelete();
  64. });
  65. });
  66. }
  67. /**
  68. * 详情页构建
  69. *
  70. * @param mixed $id
  71. * @return Show
  72. */
  73. protected function detail($id)
  74. {
  75. return Show::make(TaskResetLog::findOrFail($id), function (Show $show) {
  76. $helper = new ShowHelper($show, $this);
  77. $helper->fieldId();
  78. $show->field('user_id', '用户ID');
  79. $show->field('task_id', '任务ID');
  80. $show->field('user_task_id', '用户任务ID');
  81. $helper->fieldResetType();
  82. $helper->fieldTaskStatus('old_status', '旧状态');
  83. $helper->fieldProgress('old_progress', '旧进度');
  84. $show->field('reset_time', '重置时间');
  85. $show->field('next_reset_time', '下次重置时间');
  86. $show->field('reset_count', '重置次数');
  87. $helper->fieldCreatedAt();
  88. // 禁用编辑和删除按钮
  89. $show->panel()->tools(function (Show\Tools $tools) {
  90. $tools->disableEdit();
  91. $tools->disableDelete();
  92. });
  93. });
  94. }
  95. }