问题
用layui写的x-admin后台框架是个很不错的前端框架。使用的时候遇到问题,退出登录后,再登录重新加载tab,同用户没问题,不同的用户登录会导致权限不同的人也访问到这个页面。所以这里直接关闭这个功能。
解决方法一
直接修改xadmin.js,注释掉以下代码即可
Xadmin.prototype.end = function() {
var cate_list = this.get_cate_data();
/*for(var i in cate_list){
if(cate_list[i]!=null){
$('.left-nav #nav li').eq(cate_list[i]).click();
}
}*/
};
直接这样注释,会导致,刷新也关闭所有标签页
解决方法二
<div class="layui-tab tab" lay-filter="xbs_tab" lay-allowclose="false">
<ul class="layui-tab-title">
<li class="home">
<i class="layui-icon"></i>我的桌面
</li>
</ul>
<div class="layui-unselect layui-form-select layui-form-selected" id="tab_right">
<dl>
<dd data-type="this">关闭当前</dd>
<dd data-type="other">关闭其它</dd>
<dd data-type="all">关闭全部</dd>
</dl>
</div>
</div>
<div class="container">
<div class="logo">
<a href="/">XXX</a></div>
<div class="left_open">
<a><i title="展开左侧栏" class="iconfont"></i></a>
</div>
<ul class="layui-nav right" lay-filter="">
<li class="layui-nav-item to-index">
<a href="" ></a></li>
<li class="layui-nav-item to-index">
<a onclick="quit()" href="javascript:;" class="close-all" data-type="closeall">退出</a></li>
</ul>
</div>
//js代码
layui.use('element',function(){
var $ = layui.jquery;
var element = layui.element;//Tab的切换功能,切换事件监听等,需要依赖element模块
var layer = layui.layer;
var active = {
//在这里给active绑定事件,后面可通过active调用这些事件
tabDeleteAll:function(ids){//删除所有
$.each(ids,function(i,item){
element.tabDelete("xbs_tab",item);//ids是一个数组,里面存放了多个id,调用tabDelete方法分别删除
})
}
};
$(".close-all").click(function () {
if ($(this).attr("data-type") == "closeall") {
var tabtitle = $(".layui-tab-title li");
var ids = new Array();
$.each(tabtitle, function (i) {
ids[i] = $(this).attr("lay-id");
});
active.tabDeleteAll(ids);
}
})
});
这样在退出的时候就可以随便吧选项卡关闭了