x-admin退出登录后再登录出现tab重新加载,x-admin退出账号时,关闭全部选项卡(tab)

问题

  用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">&#xe68e;</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">&#xe699;</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);
            }

        })
    });

这样在退出的时候就可以随便吧选项卡关闭了

原文地址:https://www.cnblogs.com/MoooJL/p/14874461.html