SiteMenu.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace App\Distributor\Repositories;
  3. use Dcat\Admin\Traits\ModelTree;
  4. use App\Models\SiteMenu as Model;
  5. use Dcat\Admin\Repositories\EloquentRepository;
  6. class SiteMenu extends EloquentRepository
  7. {
  8. /**
  9. * Model.
  10. *
  11. * @var string
  12. */
  13. protected $eloquentClass = Model::class;
  14. /*
  15. * 只能显示2层
  16. */
  17. public static function selectOptions(\Closure $closure = null)
  18. {
  19. if (!$closure) {
  20. $closure = function ($query) {
  21. $query = $query->where('dist_id', getDistributorId())->orderBy('order', 'asc');
  22. return $query;
  23. };
  24. }
  25. $selectOptions = Model::class::selectOptions($closure);
  26. //只显示2层
  27. foreach ($selectOptions as $key => $value) {
  28. if (substr_count($value,'&nbsp;') > 8) {
  29. unset($selectOptions[$key]);
  30. }
  31. }
  32. return $selectOptions;
  33. }
  34. public static function showAllSelectOptions($siteDomain = '') {
  35. $model = new Model();
  36. $allMenu = $model->where('dist_id', getDistributorId())->orderBy('order', 'asc')->get();
  37. $arrayMenu = [];
  38. foreach ($allMenu as $menu) {
  39. $arrayMenu[$menu->id] = $menu;
  40. }
  41. $topSelectOptions = Model::class::selectOptions(function ($query) {
  42. $query = $query->where('menu_location',0)->where('dist_id', getDistributorId())->orderBy('order', 'asc');
  43. return $query;
  44. });
  45. $bottomSelectOptions = Model::class::selectOptions(function ($query) {
  46. $query = $query->where('menu_location',1)->where('dist_id', getDistributorId())->orderBy('order', 'asc');
  47. return $query;
  48. });
  49. $selectOptions = [];
  50. foreach ($topSelectOptions as $key => $value) {
  51. if ($key == 0) {
  52. $selectOptions[] = ['id'=>-1,'title'=>admin_trans_label('top_menu'),'url'=>''];
  53. } else {
  54. $url = $siteDomain == '' ? $arrayMenu[$key]['uri'] : $siteDomain.$arrayMenu[$key]['uri'];
  55. $selectOptions[] = ['id'=>$key,'title'=>$value,'url'=>$url];
  56. }
  57. }
  58. foreach ($bottomSelectOptions as $key => $value) {
  59. if ($key == 0) {
  60. $selectOptions[] = ['id'=>-2,'title'=>admin_trans_label('bottom_menu'),'url'=>''];
  61. } else {
  62. $url = $siteDomain == '' ? $arrayMenu[$key]['uri'] : $siteDomain.$arrayMenu[$key]['uri'];
  63. $selectOptions[] = ['id'=>$key,'title'=>$value,'url'=>$url];
  64. }
  65. }
  66. return $selectOptions;
  67. }
  68. /*
  69. * 获取一个标签
  70. */
  71. public static function getOneById($id)
  72. {
  73. return Model::where('id', $id)->where('dist_id', getDistributorId())->first();
  74. }
  75. public static function createMenuBatch($data) {
  76. $model = new Model();
  77. return $model->createMenuBatch($data);
  78. }
  79. //生成uri
  80. public static function generateUri($menuType,$menuConfig,$isId = true) {
  81. $distId = getDistributorId();
  82. $model = new Model();
  83. return $model->generateUri($menuType,$menuConfig,$distId,$isId);
  84. }
  85. }