rabin 5 年 前
コミット
8f14118190
1 ファイル変更14 行追加6 行削除
  1. 14 6
      src/Menu.php

+ 14 - 6
src/Menu.php

@@ -150,7 +150,7 @@ class Menu
             if (layadmin()) {
                 $console = true;
             }
-            
+            $group = false;
             foreach ($menu as $k => $v) {
 
                 if (!$console && $k == 'console') {
@@ -168,11 +168,19 @@ class Menu
                     continue;
                 }
 
+                $menu[$k]['checked'] = false;
+                if ($group && $group == $menu[$k]['group_id']) {
+                    $menu[$k]['checked'] = true;
+                } elseif (!$group) {
+                    $group = $menu[$k]['group_id'];
+                    $menu[$k]['checked'] = true;
+                }
+
                 $menu[$k] = $this->getChild($menu[$k], $child, $v, $auth);
                 if (!isset($menu[$k]['child'])) {
                     unset($menu[$k]);
                 } else {
-                    $this->group[$menu[$k]['group_id']] = $menu[$k]['group_id'];
+                    $this->group[$menu[$k]['group_id']] = array($menu[$k]['group_id'], $menu[$k]['checked']);
                 }
             }
         } elseif (!$ms && $state == 2) {
@@ -525,6 +533,8 @@ class Menu
             foreach ($group as $k => $v) {
                 if (!isset($this->group[$k])) {
                     unset($group[$k]);
+                } else {
+                    $group[$k]['checked'] = $this->group[$k][1];
                 }
             }
 
@@ -560,10 +570,9 @@ class Menu
     </a>
   </li>';
         if (layadmin() && count($data) > 1) {
-            $i = 0;
             foreach ($data as $k => $v) {
                 $v['icon'] = $v['icon'] ? "layui-icon " . $v['icon'] : "layui-icon layui-icon-home";
-                if ($i == 0) {
+                if ($v['checked']) {
                     $cur = 'layui-this';
                 } else {
                     $cur = '';
@@ -576,7 +585,6 @@ class Menu
                 $html .= '<i class="'.$v['icon'].'"></i><cite style="margin-left:5px;">'.$v['name'].'</cite></a>';
 
                 $html .= '</li>';
-                $i++;
             }
             $html .= '';
         }
@@ -598,7 +606,7 @@ class Menu
             foreach ($data as $k => $v) {
                 $v['icon'] = $v['icon'] ? "layui-icon " . $v['icon'] : "layui-icon layui-icon-home";
                 $style = '';
-                if ($v['group_id'] == 1) {
+                if ($v['checked'] == 1) {
                     $style = '';
                 } else {
                     $style = 'style="display:none;"';