TaskCompletionLogController.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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\TaskCompletionLog;
  7. use App\Module\Task\Repositorys\TaskCompletionLogRepository;
  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-completion-logs', names: 'dcat.admin.task-completion-logs')]
  18. class TaskCompletionLogController 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 TaskCompletionLogRepository(), 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. $grid->column('task_name', '任务名称');
  40. $grid->column('completed_at', '完成时间')->sortable();
  41. $grid->column('ip_address', 'IP地址');
  42. $grid->column('device_info', '设备信息')->limit(30);
  43. $grid->filter(function (Grid\Filter $filter) {
  44. $filterHelper = new FilterHelper($filter, $this);
  45. $filterHelper->equalId();
  46. $filterHelper->equalUserId();
  47. $filterHelper->equalTaskId();
  48. $filterHelper->equal('user_task_id', '用户任务ID');
  49. $filterHelper->betweenDatetime('completed_at', '完成时间');
  50. });
  51. // 禁用创建按钮
  52. $grid->disableCreateButton();
  53. // 禁用编辑和删除按钮
  54. $grid->actions(function (Grid\Displayers\Actions $actions) {
  55. $actions->disableEdit();
  56. $actions->disableDelete();
  57. });
  58. });
  59. }
  60. /**
  61. * 详情页构建
  62. *
  63. * @param mixed $id
  64. * @return Show
  65. */
  66. protected function detail($id)
  67. {
  68. return Show::make(TaskCompletionLog::findOrFail($id), function (Show $show) {
  69. $helper = new ShowHelper($show, $this);
  70. $helper->fieldId();
  71. $show->field('user_id', '用户ID');
  72. $show->field('task_id', '任务ID');
  73. $show->field('user_task_id', '用户任务ID');
  74. $show->field('task_name', '任务名称');
  75. $show->field('completed_at', '完成时间');
  76. $show->field('ip_address', 'IP地址');
  77. $show->field('device_info', '设备信息');
  78. $helper->fieldCreatedAt();
  79. // 禁用编辑和删除按钮
  80. $show->panel()->tools(function (Show\Tools $tools) {
  81. $tools->disableEdit();
  82. $tools->disableDelete();
  83. });
  84. });
  85. }
  86. }