TeamTalentConfigController.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. namespace App\Module\Team\AdminControllers;
  3. use App\Module\Team\AdminControllers\Helper\FilterHelper;
  4. use App\Module\Team\AdminControllers\Helper\FormHelper;
  5. use App\Module\Team\AdminControllers\Helper\GridHelper;
  6. use App\Module\Team\AdminControllers\Helper\ShowHelper;
  7. use App\Module\Team\Repositorys\TeamTalentConfigRepository;
  8. use Dcat\Admin\Form;
  9. use Dcat\Admin\Grid;
  10. use Dcat\Admin\Show;
  11. use UCore\DcatAdmin\AdminController;
  12. use Spatie\RouteAttributes\Attributes\Resource;
  13. /**
  14. * 达人等级配置管理控制器
  15. *
  16. * @package App\Module\Team\AdminControllers
  17. */
  18. #[Resource('team-talent-configs', names: 'dcat.admin.team-talent-configs')]
  19. class TeamTalentConfigController extends AdminController
  20. {
  21. /**
  22. * 标题
  23. *
  24. * @var string
  25. */
  26. protected $title = '达人等级配置管理';
  27. /**
  28. * 列表页
  29. *
  30. * @return Grid
  31. */
  32. protected function grid()
  33. {
  34. return Grid::make(new TeamTalentConfigRepository(), function (Grid $grid) {
  35. $helper = new GridHelper($grid, $this);
  36. $grid->column('id', 'ID')->sortable();
  37. $grid->column('level', '等级')->sortable();
  38. $grid->column('name', '名称');
  39. $grid->column('direct_count_required', '直推人数要求')->sortable();
  40. $grid->column('team_count_required', '团队总人数要求')->sortable();
  41. $grid->column('profit_rate', '收益比例')->sortable();
  42. $grid->column('icon', '图标');
  43. $grid->column('icon_url', '图标URL');
  44. $grid->column('status', '状态')->switch();
  45. $grid->column('created_at', '创建时间');
  46. $grid->column('updated_at', '更新时间');
  47. // 筛选
  48. $grid->filter(function ($filter) {
  49. $helper = new FilterHelper($filter, $this);
  50. $helper->equal('id', 'ID');
  51. $filter->equal('level', '等级');
  52. $filter->like('name', '名称');
  53. $filter->between('direct_count_required', '直推人数要求');
  54. $filter->between('team_count_required', '团队总人数要求');
  55. $filter->between('profit_rate', '收益比例');
  56. $filter->equal('status', '状态')->radio([
  57. 1 => '启用',
  58. 0 => '禁用',
  59. ]);
  60. $filter->between('created_at', '创建时间')->datetime();
  61. });
  62. return $grid;
  63. });
  64. }
  65. /**
  66. * 详情页
  67. *
  68. * @param mixed $id
  69. * @return Show
  70. */
  71. protected function detail($id)
  72. {
  73. return Show::make($id, new TeamTalentConfigRepository(), function (Show $show) {
  74. $helper = new ShowHelper($show, $this);
  75. $helper->field('id', 'ID');
  76. $show->field('level', '等级');
  77. $show->field('name', '名称');
  78. $show->field('direct_count_required', '直推人数要求');
  79. $show->field('team_count_required', '团队总人数要求');
  80. $show->field('profit_rate', '收益比例');
  81. $show->field('icon', '图标');
  82. $show->field('icon_url', '图标URL');
  83. $show->field('benefits', '权益')->json();
  84. $show->field('status', '状态')->using([
  85. 1 => '启用',
  86. 0 => '禁用',
  87. ]);
  88. $show->field('created_at', '创建时间');
  89. $show->field('updated_at', '更新时间');
  90. return $show;
  91. });
  92. }
  93. /**
  94. * 表单
  95. *
  96. * @return Form
  97. */
  98. protected function form()
  99. {
  100. return Form::make(new TeamTalentConfigRepository(), function (Form $form) {
  101. $helper = new FormHelper($form, $this);
  102. $form->display('id', 'ID');
  103. $form->number('level', '等级')->min(1)->required();
  104. $form->text('name', '名称')->required();
  105. $form->number('direct_count_required', '直推人数要求')->min(0)->default(0)->required();
  106. $form->number('team_count_required', '团队总人数要求')->min(0)->default(0)->required();
  107. $form->rate('profit_rate', '收益比例')->min(0)->max(1)->default(0)->required();
  108. $form->text('icon', '图标');
  109. $form->text('icon_url', '图标URL');
  110. $helper->jsonEditor('benefits', '权益')->help('权益配置,JSON格式');
  111. $form->switch('status', '状态')->default(1);
  112. $form->display('created_at', '创建时间');
  113. $form->display('updated_at', '更新时间');
  114. return $form;
  115. });
  116. }
  117. }