ConfigController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Module\System\AdminControllers;
  3. use App\Module\System\Admin\Actions\ConfigEmbedsEditAction;
  4. use App\Module\System\Admin\Actions\ConfigFloatEditAction;
  5. use App\Module\System\Admin\Actions\ConfigImgEditAction;
  6. use App\Module\System\Admin\Actions\ConfigIntEditAction;
  7. use App\Module\System\Admin\Actions\ConfigJsonEditAction;
  8. use App\Module\System\Admin\Actions\ConfigStringEditAction;
  9. use App\Module\System\Admin\Actions\ConfigSwitchEditAction;
  10. use App\Module\System\Admin\Actions\ConfigTimeEditAction;
  11. use App\Module\System\Admin\Actions\ToConfigAdmin;
  12. use App\Module\System\Repositorys\AppConfig;
  13. use App\Module\System\Services\ConfigService;
  14. use Dcat\Admin\Grid;
  15. use Dcat\Admin\Http\Controllers\AdminController;
  16. use Spatie\RouteAttributes\Attributes\Resource;
  17. use UCore\DcatAdmin\FilterHelper;
  18. use UCore\DcatAdmin\GridHelper;
  19. /**
  20. * 配置项操作
  21. *
  22. */
  23. #[Resource('system-config', names: 'dcat.admin.system-config')]
  24. class ConfigController extends AdminController
  25. {
  26. protected $title = "系统配置";
  27. /**
  28. * Make a grid builder.
  29. *
  30. * @return Grid
  31. */
  32. protected function grid()
  33. {
  34. $grid = Grid::make(new AppConfig(), function (Grid $grid) {
  35. $helper = new GridHelper($grid, $this);
  36. $grid->column('id');
  37. $grid->column('group', '分组');
  38. $grid->column('group2', '子分组');
  39. $grid->column('title', '配置标题')->width(200);
  40. $grid->column('desc', '描述')->width(300);
  41. $helper->columnView('value', 'admin_core.config.value', '当前值');
  42. $grid->disableBatchActions();
  43. $grid->disableRowSelector();
  44. // $helper->fieldUseing('group',AppConfig::$ENMU);
  45. // $grid->dia
  46. $grid->filter(function (Grid\Filter $filter) {
  47. $filter->panel();
  48. $filter->expand();
  49. $helper = new FilterHelper($filter, $this);
  50. $helper->equalRadioVk('group', ConfigService::getGroupKv(), '分组')->default('应用配置');
  51. $group = request('group');
  52. $helper->equalRadioVk('group2', ConfigService::getGroupKv2($group), '子分组');
  53. if (count($filter->getConditions()) == 0) {
  54. return admin_exit(admin_redirect(admin_route('system-config.index', [ 'group' => '应用配置' ])));
  55. }
  56. });
  57. $grid->disableCreateButton();
  58. $grid->actions(function (Grid\Displayers\Actions $actions) {
  59. $actions->disableDelete();
  60. $actions->disableEdit();
  61. $actions->disableView();
  62. $actions->disableQuickEdit();
  63. $actions->append((new ConfigIntEditAction())->setController($this));
  64. $actions->append((new ConfigImgEditAction())->setController($this));
  65. $actions->append((new ConfigFloatEditAction())->setController($this));
  66. $actions->append((new ConfigStringEditAction())->setController($this));
  67. $actions->append((new ConfigSwitchEditAction())->setController($this));
  68. $actions->append((new ConfigTimeEditAction())->setController($this));
  69. $actions->append((new ConfigJsonEditAction())->setController($this));
  70. $actions->append((new ConfigEmbedsEditAction())->setController($this));
  71. });
  72. $grid->disableBatchActions();
  73. $grid->disableQuickEditButton();
  74. $grid->disableDeleteButton();
  75. $grid->disablePagination();
  76. $grid->tools(function (\Dcat\Admin\Grid\Tools $tools) {
  77. $tools->append(new ToConfigAdmin());
  78. // $tools
  79. });
  80. });
  81. return $grid;
  82. }
  83. }