wugg hai 9 meses
pai
achega
5d4acd7138
Modificáronse 2 ficheiros con 29 adicións e 1 borrados
  1. 8 0
      app/admin/controller/Menu.php
  2. 21 1
      app/admin/model/AdminMenu.php

+ 8 - 0
app/admin/controller/Menu.php

@@ -30,4 +30,12 @@ class Menu extends Base{
         $list=$this->model->GetMenuByActionArr($action,$condition);
         return success("获取成功",$list);
 	}
+
+	public function GetMenuAction(){
+        $param = $this->request->param(["level"=>""],"post","trim");
+        $condition=[["status","=",1],["is_del","=",0]];
+//        if(isset($param['level']) && $param['level'] !== '') $condition[] = ['level','in',[0,$param['level']]];
+        $list=$this->model->GetMenuActionTree();
+        return success('获取成功',$list);
+	}
 }

+ 21 - 1
app/admin/model/AdminMenu.php

@@ -36,6 +36,7 @@ class AdminMenu extends Base
    public function ActionInfo(){
     	return $this->hasMany(Action::class,"action_id")->where(["is_del"=>0]);
    }
+   //由二级菜单获取父级集合
    public static function GetMenuBySecod($menuid,$result=[]){
        $menuArr = self::where(['id'=>$menuid])->findOrEmpty();
 
@@ -45,7 +46,7 @@ class AdminMenu extends Base
         }
         return $result;
     }
-
+    //通过功能集合返回菜单树状集
    public function GetMenuByActionArr($actionArr,$where=[]){
        $menuArr = Action::with(["ActionInfo"])->whereIn("id",$actionArr)->select();
        $tree=[];
@@ -64,6 +65,7 @@ class AdminMenu extends Base
        }
         return $tree;
    }
+   //有子找父级
   public function buildForwardTree($itemId, $child = [],&$items, &$menuTree=[]) {
         if(!isset($items[$itemId]))return;
             $node=$items[$itemId];
@@ -80,4 +82,22 @@ class AdminMenu extends Base
             }
    }
 
+   public function GetMenuActionTree($pid=0){
+        $result = $this->field('menu_name,menu_img,menu_route,is_display,status,pid,weight,id')
+        ->where(['pid'=>$pid,'is_del'=>0])
+        ->order(['weight'=>'desc','id'=>'desc'])->select();
+        $remp=[];
+        if($result->isEmpty())return $remp;
+            foreach ($result as $item){
+                $item->child = $this->GetMenuActionTree($item->id);
+                if($item->pid>0){
+                    $item->action = Action::with(["ActionInfo"])->field("id,action_code")->where
+                    (['menuid'=>$item->id,'is_del'=>0])->select();
+                }
+                $remp[] = $item;
+            }
+
+        return $remp;
+   }
+
 }