|
@@ -36,6 +36,7 @@ class AdminMenu extends Base
|
|
public function ActionInfo(){
|
|
public function ActionInfo(){
|
|
return $this->hasMany(Action::class,"action_id")->where(["is_del"=>0]);
|
|
return $this->hasMany(Action::class,"action_id")->where(["is_del"=>0]);
|
|
}
|
|
}
|
|
|
|
+ //由二级菜单获取父级集合
|
|
public static function GetMenuBySecod($menuid,$result=[]){
|
|
public static function GetMenuBySecod($menuid,$result=[]){
|
|
$menuArr = self::where(['id'=>$menuid])->findOrEmpty();
|
|
$menuArr = self::where(['id'=>$menuid])->findOrEmpty();
|
|
|
|
|
|
@@ -45,7 +46,7 @@ class AdminMenu extends Base
|
|
}
|
|
}
|
|
return $result;
|
|
return $result;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ //通过功能集合返回菜单树状集
|
|
public function GetMenuByActionArr($actionArr,$where=[]){
|
|
public function GetMenuByActionArr($actionArr,$where=[]){
|
|
$menuArr = Action::with(["ActionInfo"])->whereIn("id",$actionArr)->select();
|
|
$menuArr = Action::with(["ActionInfo"])->whereIn("id",$actionArr)->select();
|
|
$tree=[];
|
|
$tree=[];
|
|
@@ -64,6 +65,7 @@ class AdminMenu extends Base
|
|
}
|
|
}
|
|
return $tree;
|
|
return $tree;
|
|
}
|
|
}
|
|
|
|
+ //有子找父级
|
|
public function buildForwardTree($itemId, $child = [],&$items, &$menuTree=[]) {
|
|
public function buildForwardTree($itemId, $child = [],&$items, &$menuTree=[]) {
|
|
if(!isset($items[$itemId]))return;
|
|
if(!isset($items[$itemId]))return;
|
|
$node=$items[$itemId];
|
|
$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;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|