AdminGridViewController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. namespace App\Module\System\AdminControllers;
  3. use App\Module\System\Enums\VIEW_TYPE;
  4. use App\Module\System\Models\AdminGridView;
  5. use Dcat\Admin\Admin;
  6. use Dcat\Admin\Form;
  7. use Dcat\Admin\Grid;
  8. use Illuminate\Http\Request;
  9. use Spatie\RouteAttributes\Attributes\Get;
  10. use Spatie\RouteAttributes\Attributes\Resource;
  11. use UCore\DcatAdmin\AdminController;
  12. use UCore\DcatAdmin\FilterHelper;
  13. use UCore\DcatAdmin\Grid\Views\GridHeader;
  14. use UCore\DcatAdmin\GridHelper;
  15. /**
  16. *
  17. */
  18. #[Resource('admin_view',names: 'dcat.admin.admin_view')]
  19. class AdminGridViewController extends AdminController
  20. {
  21. protected $title = '列表视图';
  22. /**
  23. * Make a grid builder.
  24. *
  25. * @return Grid
  26. */
  27. protected function grid()
  28. {
  29. return Grid::make(new AdminGridView(), function (Grid $grid) {
  30. $grid->column('id')->sortable();
  31. $helper = new GridHelper($grid, $this);
  32. $helper->columnAdminId();
  33. $helper->columnModelCats('type1');
  34. $grid->column('title');
  35. $grid->column('p1');
  36. $helper->columnAtd('created_at');
  37. $helper->columnAtd('updated_at');
  38. GridHeader::gridHeader($grid);
  39. $grid->filter(function (Grid\Filter $filter) {
  40. $help = new FilterHelper($filter, $this);
  41. // $filter->equal('id');
  42. $filter->equal('id');
  43. $filter->equal('admin_id');
  44. });
  45. });
  46. }
  47. /**
  48. * Make a form builder.
  49. *
  50. * @return Form
  51. */
  52. protected function form()
  53. {
  54. return Form::make(new AdminGridView(), function (Form $form) {
  55. // dump(redirect()->getIntendedUrl());
  56. $form->display('id');
  57. //$form->display('p1');
  58. // dd($form);
  59. $form->textarea('p1', '参数(不能改)')
  60. ->help('不要修改这个!')
  61. ->disable()
  62. ->placeholder("不要修改这个!");
  63. $form->text('title', '标题')->required();
  64. $form->radio('type1', '类型')->options(VIEW_TYPE::getValueDescription());
  65. $form->saving(function (Form $form) {
  66. // 删除
  67. $form->deleteInput('p1');
  68. });
  69. $form->saved(function (Form $form) {
  70. return $form->response()->success('保存成功')->redirectToIntended('');
  71. });
  72. });
  73. }
  74. /**
  75. * @param Request $request
  76. * @return \Illuminate\Http\RedirectResponse
  77. */
  78. #[Get('admin_view/add', name: 'dcat.admin.admin_view_add')]
  79. public function getadd(Request $request)
  80. {
  81. $get = $request->query();
  82. $router_name = $get['_router_name']??'';
  83. unset($get['_router_name']);
  84. unset($get['_pjax']);
  85. unset($get['pjax']);
  86. $id = $get['_viewid'] ?? 0;
  87. // unset($get['_viewid']);
  88. if ($id) {
  89. $model = AdminGridView::query()->find($id);
  90. $router_name = $model->router_name ;
  91. admin_success('视图更新成功') ;
  92. } else {
  93. $model = new AdminGridView();
  94. $model->admin_id = Admin::user()->getKey();
  95. $model->type1 = VIEW_TYPE::PUBLIC;
  96. $model->router_name = $router_name;
  97. $model->title = '自定义视图';
  98. admin_success('视图创建成功') ;
  99. }
  100. $model->p1 = $get;
  101. $model->save();
  102. return redirect()->route($router_name, $get);
  103. }
  104. }