Jelajahi Sumber

常用菜单 页面

ANG YU 5 tahun lalu
induk
melakukan
ea1a98a9d7

+ 18 - 0
app/Http/Controllers/ControlPanelController.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Services\CheckActiveMenuService;
+use Illuminate\Http\Request;
+
+class ControlPanelController extends Controller
+{
+    public function index(){
+        /**
+         * @var CheckActiveMenuService $checkActiveMenuService
+         */
+        $checkActiveMenuService=app(CheckActiveMenuService::class);
+        $menus=$checkActiveMenuService->activeMenus();
+        return view('control.panel',compact('menus'));
+    }
+}

+ 4 - 7
app/Services/CheckActiveMenuService.php

@@ -170,7 +170,7 @@ class CheckActiveMenuService
                 return $item->count();
                 return $item->count();
             })
             })
             //根据分组结果的二级列表降序排列
             //根据分组结果的二级列表降序排列
-            ->forPage(0, 5)
+//            ->forPage(0, 5)
             //取前数量最高的五条
             //取前数量最高的五条
             ->keys();
             ->keys();
         //只获取对应的菜单Id
         //只获取对应的菜单Id
@@ -189,7 +189,7 @@ class CheckActiveMenuService
             ->get()->sortByDesc(function ($item) {
             ->get()->sortByDesc(function ($item) {
                 return $item->count();
                 return $item->count();
             })
             })
-            ->forPage(0, 5)
+//            ->forPage(0, 5)
             ->map(function ($item) {
             ->map(function ($item) {
                 return $item->menu_id;
                 return $item->menu_id;
             });
             });
@@ -202,10 +202,8 @@ class CheckActiveMenuService
 
 
     /**
     /**
      * 将排好序的菜单集合构造为一级菜单嵌套二级菜单的形式
      * 将排好序的菜单集合构造为一级菜单嵌套二级菜单的形式
-     * @param array|null $menus
-     * @return Collection|\Tightenco\Collect\Support\Collection
      */
      */
-    public static function buildResult(?array $menus)
+    public static function buildResult($menus)
     {
     {
         $result = collect([]);
         $result = collect([]);
         foreach ($menus as $menu) {
         foreach ($menus as $menu) {
@@ -229,10 +227,9 @@ class CheckActiveMenuService
 
 
     /**
     /**
      * 查找到对应子菜单的父菜单,并将其放入到父菜单的集合中
      * 查找到对应子菜单的父菜单,并将其放入到父菜单的集合中
-     * @param \Tightenco\Collect\Support\Collection $data
      * @param $menu
      * @param $menu
      */
      */
-    public static function setToParent(\Tightenco\Collect\Support\Collection $data, $menu): void
+    public static function setToParent($data, $menu): void
     {
     {
         //二级菜单
         //二级菜单
         $firstLevelMenu = $data->where('id', $menu->parent_id)->first();
         $firstLevelMenu = $data->where('id', $menu->parent_id)->first();

+ 38 - 0
resources/views/control/panel.blade.php

@@ -0,0 +1,38 @@
+@extends('layouts.app')
+@section('title')控制台@endsection
+
+@section('content')
+    <div class="container-fluid" id="list">
+        <div class="card">
+            <h5 class="card-header">最近使用功能</h5>
+            <div class="card-body row">
+                <ul class="list-group" v-for="(menu,index) in menus">
+                    <div class="container-fluid btn-group">
+                        <a v-if="index<=3" class="btn-primary btn-lg" :href="'/'+menu.route">@{{ menu.name }}</a>
+                    </div>
+                    <div v-if="menu.secondLevelMenu && menu.secondLevelMenu.length>0">
+                        <div class="container-fluid btn-group">
+                            <a class="bth btn-sm btn-info m-1" v-for="(secondMenu,index) in menu.secondLevelMenu"
+                               :href="'/'+secondMenu.route" v-if="index < 2"> @{{ secondMenu.name }}</a>
+                        </div>
+                    </div>
+                </ul>
+            </div>
+        </div>
+    </div>
+@endsection
+@section('lastScript')
+    <script>
+        let vue = new Vue({
+            el: "#list",
+            data: {
+                menus:{!! $menus !!},
+            },
+            mounted: function () {
+                console.log(this.menus)
+            },
+            methods: {}
+        });
+
+    </script>
+@endsection

+ 4 - 1
routes/web.php

@@ -500,4 +500,7 @@ Route::group(['prefix'=>'customer'],function(){
     });
     });
     Route::get('relating',function (){return view('customer.relating');});
     Route::get('relating',function (){return view('customer.relating');});
 });
 });
-
+/** 控制台 */
+Route::group(['prefix'=>'control'],function () {
+   Route::get('panel/menu','ControlPanelController@index') ;
+});