GridHeader.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace UCore\DcatAdmin\Grid\Views;
  3. use App\Module\System\Enums\ViewType;
  4. use App\Module\System\Models\AdminGridView;
  5. use Illuminate\Contracts\Support\Renderable;
  6. use Dcat\Admin\Admin;
  7. use Illuminate\Support\Facades\Route;
  8. use Illuminate\Support\Facades\URL;
  9. use Dcat\Admin\Grid;
  10. class GridHeader
  11. {
  12. protected $grid;
  13. public function __construct(\Dcat\Admin\Grid $grid)
  14. {
  15. redirect()->setIntendedUrl(URL::full());
  16. $this->grid = $grid;
  17. }
  18. public function getBs()
  19. {
  20. $bs = [];
  21. $router_name= Route::getCurrentRoute()->getName();
  22. // 视图按钮
  23. $listPublic = AdminGridView::query()
  24. ->where('type1', ViewType::PUBLIC)
  25. ->where('router_name', $router_name)
  26. ->get();
  27. $listPrivate = AdminGridView::query()
  28. ->where('type1', ViewType::PRIVATE)
  29. ->where('router_name', $router_name)
  30. ->get();
  31. $_viewid = request('_viewid');
  32. $_viewnow = '';
  33. foreach ($listPrivate as $value) {
  34. $bs[] = new GridHeaderButtonPrivate($value);
  35. if ($_viewid == $value->id) {
  36. $bs[] = new GridHeaderButtonUpdate2($value);
  37. }
  38. }
  39. foreach ($listPublic as $value) {
  40. $bs[] = new GridHeaderButtonPublic($value);
  41. if ($_viewid == $value->id) {
  42. $bs[] = new GridHeaderButtonUpdate2($value);
  43. }
  44. }
  45. $bs[] = new GridHeaderButtonSave();
  46. if ($_viewid) {
  47. $bs[] = new GridHeaderButtonEdit();
  48. }
  49. return $bs;
  50. }
  51. static public function gridTools(\Dcat\Admin\Grid $grid)
  52. {
  53. $new = new static($grid);
  54. $grid->tools($new->getBs());
  55. }
  56. static public function gridHeader(\Dcat\Admin\Grid $grid)
  57. {
  58. $new = new static($grid);
  59. $s = ' <br>';
  60. $bs = $new->getBs();
  61. // dd($bs);
  62. foreach ($bs as $b) {
  63. $s .= $b.' ';
  64. };
  65. $grid->header($s);
  66. }
  67. }