作者 Karson

新增iframeForceRefresh强制刷新iframe功能

修复JS未加载完成时点击链接时的BUG
修复不在菜单栏中选项卡刷新后的BUG
优化选项卡刷新后打开的效率
@@ -31,7 +31,7 @@ class Index extends Backend @@ -31,7 +31,7 @@ class Index extends Backend
31 'dashboard' => 'hot', 31 'dashboard' => 'hot',
32 'addon' => ['new', 'red', 'badge'], 32 'addon' => ['new', 'red', 'badge'],
33 'auth/rule' => 'side', 33 'auth/rule' => 'side',
34 - 'general' => ['18', 'purple'], 34 + 'general' => ['new', 'purple'],
35 ], $this->view->site['fixedpage']); 35 ], $this->view->site['fixedpage']);
36 $this->view->assign('menulist', $menulist); 36 $this->view->assign('menulist', $menulist);
37 $this->view->assign('title', __('Home')); 37 $this->view->assign('title', __('Home'));
@@ -266,8 +266,7 @@ class Tree @@ -266,8 +266,7 @@ class Tree
266 $selected = $selectedids && in_array($id, (is_array($selectedids) ? $selectedids : explode(',', $selectedids))) ? 'selected' : ''; 266 $selected = $selectedids && in_array($id, (is_array($selectedids) ? $selectedids : explode(',', $selectedids))) ? 'selected' : '';
267 $disabled = $disabledids && in_array($id, (is_array($disabledids) ? $disabledids : explode(',', $disabledids))) ? 'disabled' : ''; 267 $disabled = $disabledids && in_array($id, (is_array($disabledids) ? $disabledids : explode(',', $disabledids))) ? 'disabled' : '';
268 $value = array_merge($value, array('selected' => $selected, 'disabled' => $disabled, 'spacer' => $spacer)); 268 $value = array_merge($value, array('selected' => $selected, 'disabled' => $disabled, 'spacer' => $spacer));
269 - $value = array_combine(array_map(function($k)  
270 - { 269 + $value = array_combine(array_map(function($k) {
271 return '@' . $k; 270 return '@' . $k;
272 }, array_keys($value)), $value); 271 }, array_keys($value)), $value);
273 $nstr = strtr((($value["@{$this->pidname}"] == 0 || $this->getChild($id) ) && $toptpl ? $toptpl : $itemtpl), $value); 272 $nstr = strtr((($value["@{$this->pidname}"] == 0 || $this->getChild($id) ) && $toptpl ? $toptpl : $itemtpl), $value);
@@ -303,8 +302,7 @@ class Tree @@ -303,8 +302,7 @@ class Tree
303 $selected = $selectedids && in_array($id, (is_array($selectedids) ? $selectedids : explode(',', $selectedids))) ? 'selected' : ''; 302 $selected = $selectedids && in_array($id, (is_array($selectedids) ? $selectedids : explode(',', $selectedids))) ? 'selected' : '';
304 $disabled = $disabledids && in_array($id, (is_array($disabledids) ? $disabledids : explode(',', $disabledids))) ? 'disabled' : ''; 303 $disabled = $disabledids && in_array($id, (is_array($disabledids) ? $disabledids : explode(',', $disabledids))) ? 'disabled' : '';
305 $value = array_merge($value, array('selected' => $selected, 'disabled' => $disabled)); 304 $value = array_merge($value, array('selected' => $selected, 'disabled' => $disabled));
306 - $value = array_combine(array_map(function($k)  
307 - { 305 + $value = array_combine(array_map(function($k) {
308 return '@' . $k; 306 return '@' . $k;
309 }, array_keys($value)), $value); 307 }, array_keys($value)), $value);
310 $nstr = strtr($itemtpl, $value); 308 $nstr = strtr($itemtpl, $value);
@@ -340,8 +338,7 @@ class Tree @@ -340,8 +338,7 @@ class Tree
340 $selected = in_array($id, (is_array($selectedids) ? $selectedids : explode(',', $selectedids))) ? 'selected' : ''; 338 $selected = in_array($id, (is_array($selectedids) ? $selectedids : explode(',', $selectedids))) ? 'selected' : '';
341 $disabled = in_array($id, (is_array($disabledids) ? $disabledids : explode(',', $disabledids))) ? 'disabled' : ''; 339 $disabled = in_array($id, (is_array($disabledids) ? $disabledids : explode(',', $disabledids))) ? 'disabled' : '';
342 $value = array_merge($value, array('selected' => $selected, 'disabled' => $disabled)); 340 $value = array_merge($value, array('selected' => $selected, 'disabled' => $disabled));
343 - $value = array_combine(array_map(function($k)  
344 - { 341 + $value = array_combine(array_map(function($k) {
345 return '@' . $k; 342 return '@' . $k;
346 }, array_keys($value)), $value); 343 }, array_keys($value)), $value);
347 $bakvalue = array_intersect_key($value, array_flip(['@url', '@caret', '@class'])); 344 $bakvalue = array_intersect_key($value, array_flip(['@url', '@caret', '@class']));
@@ -353,7 +350,7 @@ class Tree @@ -353,7 +350,7 @@ class Tree
353 $childlist = strtr($childlist, array('@class' => $childdata ? 'last' : '')); 350 $childlist = strtr($childlist, array('@class' => $childdata ? 'last' : ''));
354 $value = array( 351 $value = array(
355 '@childlist' => $childlist, 352 '@childlist' => $childlist,
356 - '@url' => $childdata || !isset($value['@url']) ? "javascript:;" : url($value['@url']), 353 + '@url' => $childdata || !isset($value['@url']) ? "javascript:;" : url($value['@url']) . (stripos($value['@url'], "?") !== false ? "&" : "?") . "ref=addtabs",
357 '@caret' => ($childdata && (!isset($value['@badge']) || !$value['@badge']) ? '<i class="fa fa-angle-left"></i>' : ''), 354 '@caret' => ($childdata && (!isset($value['@badge']) || !$value['@badge']) ? '<i class="fa fa-angle-left"></i>' : ''),
358 '@badge' => isset($value['@badge']) ? $value['@badge'] : '', 355 '@badge' => isset($value['@badge']) ? $value['@badge'] : '',
359 '@class' => ($selected ? ' active' : '') . ($disabled ? ' disabled' : '') . ($childdata ? ' treeview' : ''), 356 '@class' => ($selected ? ' active' : '') . ($disabled ? ' disabled' : '') . ($childdata ? ' treeview' : ''),
@@ -398,8 +395,7 @@ class Tree @@ -398,8 +395,7 @@ class Tree
398 $selected = $selectedids && in_array($id, (is_array($selectedids) ? $selectedids : explode(',', $selectedids))) ? 'selected' : ''; 395 $selected = $selectedids && in_array($id, (is_array($selectedids) ? $selectedids : explode(',', $selectedids))) ? 'selected' : '';
399 $disabled = $disabledids && in_array($id, (is_array($disabledids) ? $disabledids : explode(',', $disabledids))) ? 'disabled' : ''; 396 $disabled = $disabledids && in_array($id, (is_array($disabledids) ? $disabledids : explode(',', $disabledids))) ? 'disabled' : '';
400 $value = array_merge($value, array('selected' => $selected, 'disabled' => $disabled, 'spacer' => $spacer)); 397 $value = array_merge($value, array('selected' => $selected, 'disabled' => $disabled, 'spacer' => $spacer));
401 - $value = array_combine(array_map(function($k)  
402 - { 398 + $value = array_combine(array_map(function($k) {
403 return '@' . $k; 399 return '@' . $k;
404 }, array_keys($value)), $value); 400 }, array_keys($value)), $value);
405 $nstr = strtr(!isset($value['@disabled']) || !$value['@disabled'] ? $itemtpl1 : $itemtpl2, $value); 401 $nstr = strtr(!isset($value['@disabled']) || !$value['@disabled'] ? $itemtpl1 : $itemtpl2, $value);
@@ -178,15 +178,23 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'adminlte', 'form'], functi @@ -178,15 +178,23 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'adminlte', 'form'], functi
178 } 178 }
179 }); 179 });
180 180
181 - //绑定tabs事件  
182 - $('#nav').addtabs({iframeHeight: "100%"}); 181 + //绑定tabs事件,如果需要点击强制刷新iframe,则请将iframeForceRefresh置为true
  182 + $('#nav').addtabs({iframeHeight: "100%", iframeForceRefresh: false});
183 183
  184 + var addtabs = localStorage.getItem("addtabs");
184 if ($("ul.sidebar-menu li.active a").size() > 0) { 185 if ($("ul.sidebar-menu li.active a").size() > 0) {
185 $("ul.sidebar-menu li.active a").trigger("click"); 186 $("ul.sidebar-menu li.active a").trigger("click");
186 } else { 187 } else {
187 $("ul.sidebar-menu li a[url!='javascript:;']:first").trigger("click"); 188 $("ul.sidebar-menu li a[url!='javascript:;']:first").trigger("click");
188 } 189 }
189 - if (Config.referer) { 190 + if (addtabs) {
  191 + var active = $("ul.sidebar-menu li a[addtabs=" + $(addtabs).attr("addtabs") + "]");
  192 + if (active.size() > 0) {
  193 + active.trigger("click");
  194 + } else {
  195 + $(addtabs).appendTo(document.body).addClass("hide").trigger("click");
  196 + }
  197 + } else if (Config.referer) {
190 //刷新页面后跳到到刷新前的页面 198 //刷新页面后跳到到刷新前的页面
191 Backend.api.addtabs(Config.referer); 199 Backend.api.addtabs(Config.referer);
192 } 200 }