/** EasyWeb iframe v3.1.8 date:2020-05-04 License By http://easyweb.vip */ 
 | 
  
 | 
layui.define(['layer', 'element', 'admin'], function (exports) { 
 | 
    var $ = layui.jquery; 
 | 
    var layer = layui.layer; 
 | 
    var element = layui.element; 
 | 
    var admin = layui.admin; 
 | 
    var setter = admin.setter; 
 | 
    var headerDOM = '.layui-layout-admin>.layui-header'; 
 | 
    var sideDOM = '.layui-layout-admin>.layui-side>.layui-side-scroll'; 
 | 
    var bodyDOM = '.layui-layout-admin>.layui-body'; 
 | 
    var tabDOM = bodyDOM + '>.layui-tab'; 
 | 
    var titleDOM = bodyDOM + '>.layui-body-header'; 
 | 
    var tabFilter = 'admin-pagetabs'; 
 | 
    var navFilter = 'admin-side-nav'; 
 | 
    var tabEndCall = {};  // Tab关闭的事件回调 
 | 
    var mIsAddTab = false;  // 是否是添加Tab,添加Tab的时候切换不自动刷新 
 | 
    var index = {homeUrl: undefined, mTabPosition: undefined, mTabList: []}; 
 | 
  
 | 
    /** 渲染主体部分 */ 
 | 
    index.loadView = function (param) { 
 | 
        if (!param.menuPath) return layer.msg('url不能为空', {icon: 2, anim: 6}); 
 | 
        if (setter.pageTabs) {  // 多标签模式 
 | 
            var flag;  // 选项卡是否已添加 
 | 
            $(tabDOM + '>.layui-tab-title>li').each(function () { 
 | 
                if ($(this).attr('lay-id') === param.menuPath) flag = true; 
 | 
            }); 
 | 
            if (!flag) {  // 添加选项卡 
 | 
                if (index.mTabList.length + 1 >= setter.maxTabNum) { 
 | 
                    layer.msg('最多打开' + setter.maxTabNum + '个选项卡', {icon: 2, anim: 6}); 
 | 
                    return admin.activeNav(index.mTabPosition); 
 | 
                } 
 | 
                mIsAddTab = true; 
 | 
                element.tabAdd(tabFilter, { 
 | 
                    id: param.menuPath, title: '<span class="title">' + (param.menuName || '') + '</span>', 
 | 
                    content: '<iframe class="admin-iframe" lay-id="' + param.menuPath + '" src="' + param.menuPath + 
 | 
                        '" onload="layui.index.hideLoading(this);" frameborder="0"></iframe>' 
 | 
                }); 
 | 
                admin.showLoading({elem: $('iframe[lay-id="' + param.menuPath + '"]').parent(), size: ''}); 
 | 
                if (param.menuPath !== index.homeUrl) index.mTabList.push(param);  // 记录tab 
 | 
                if (setter.cacheTab) admin.putTempData('indexTabs', index.mTabList);  // 缓存tab 
 | 
            } 
 | 
            if (!param.noChange) element.tabChange(tabFilter, param.menuPath);  // 切换到此tab 
 | 
        } else {  // 单标签模式 
 | 
            admin.activeNav(param.menuPath); 
 | 
            var $contentDom = $(bodyDOM + '>div>.admin-iframe'); 
 | 
            if ($contentDom.length === 0) { 
 | 
                $(bodyDOM).html([ 
 | 
                    '<div class="layui-body-header">', 
 | 
                    '   <span class="layui-body-header-title"></span>', 
 | 
                    '   <span class="layui-breadcrumb pull-right" lay-filter="admin-body-breadcrumb" style="visibility: visible;"></span>', 
 | 
                    '</div>', 
 | 
                    '<div style="-webkit-overflow-scrolling: touch;">', 
 | 
                    '   <iframe class="admin-iframe" lay-id="', param.menuPath, '" src="', param.menuPath, '"', 
 | 
                    '      onload="layui.index.hideLoading(this);" frameborder="0"></iframe>', 
 | 
                    '</div>'].join('')); 
 | 
                admin.showLoading({elem: $('iframe[lay-id="' + param.menuPath + '"]').parent(), size: ''}); 
 | 
            } else { 
 | 
                admin.showLoading({elem: $contentDom.parent(), size: ''}); 
 | 
                $contentDom.attr('lay-id', param.menuPath).attr('src', param.menuPath); 
 | 
            } 
 | 
            $('[lay-filter="admin-body-breadcrumb"]').html(index.getBreadcrumbHtml(param.menuPath)); 
 | 
            index.mTabList.splice(0, index.mTabList.length); 
 | 
            if (param.menuPath === index.homeUrl) { 
 | 
                index.mTabPosition = undefined; 
 | 
                index.setTabTitle($(param.menuName).text() || $(sideDOM + ' [lay-href="' + index.homeUrl + '"]').text() || '主页'); 
 | 
            } else { 
 | 
                index.mTabPosition = param.menuPath; 
 | 
                index.mTabList.push(param); 
 | 
                index.setTabTitle(param.menuName); 
 | 
            } 
 | 
            if (!setter.cacheTab) return; 
 | 
            admin.putTempData('indexTabs', index.mTabList); 
 | 
            admin.putTempData('tabPosition', index.mTabPosition); 
 | 
        } 
 | 
        if (admin.getPageWidth() <= 768) admin.flexible(true); // 移动端自动收起侧导航 
 | 
    }; 
 | 
  
 | 
    /** 加载主页 */ 
 | 
    index.loadHome = function (param) { 
 | 
        var cacheTabs = admin.getTempData('indexTabs');  // 获取缓存tab 
 | 
        var cachePosition = admin.getTempData('tabPosition'); 
 | 
        var recover = (param.loadSetting === undefined || param.loadSetting) && (setter.cacheTab && cacheTabs && cacheTabs.length > 0); 
 | 
        index.homeUrl = param.menuPath; 
 | 
        param.noChange = cachePosition ? recover : false; 
 | 
        if (setter.pageTabs || !recover) index.loadView(param); 
 | 
        if (recover) {  // 恢复缓存tab 
 | 
            for (var i = 0; i < cacheTabs.length; i++) { 
 | 
                cacheTabs[i].noChange = cacheTabs[i].menuPath !== cachePosition; 
 | 
                if (!cacheTabs[i].noChange || (setter.pageTabs && !param.onlyLast)) index.loadView(cacheTabs[i]); 
 | 
            } 
 | 
        } 
 | 
        admin.removeLoading(undefined, false); 
 | 
    }; 
 | 
  
 | 
    /** 打开tab */ 
 | 
    index.openTab = function (param) { 
 | 
        if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.openTab(param); 
 | 
        if (param.end) tabEndCall[param.url] = param.end; 
 | 
        index.loadView({menuPath: param.url, menuName: param.title}); 
 | 
    }; 
 | 
  
 | 
    /** 关闭tab */ 
 | 
    index.closeTab = function (url) { 
 | 
        if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.closeTab(url); 
 | 
        element.tabDelete(tabFilter, url); 
 | 
    }; 
 | 
  
 | 
    /** 设置是否记忆Tab */ 
 | 
    index.setTabCache = function (isCache) { 
 | 
        if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabCache(isCache); 
 | 
        admin.putSetting('cacheTab', isCache); 
 | 
        if (!isCache) return index.clearTabCache(); 
 | 
        admin.putTempData('indexTabs', index.mTabList); 
 | 
        admin.putTempData('tabPosition', index.mTabPosition); 
 | 
    }; 
 | 
  
 | 
    /** 清除tab记忆 */ 
 | 
    index.clearTabCache = function () { 
 | 
        admin.putTempData('indexTabs', null); 
 | 
        admin.putTempData('tabPosition', null); 
 | 
    }; 
 | 
  
 | 
    /** 设置tab标题 */ 
 | 
    index.setTabTitle = function (title, tabId) { 
 | 
        if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabTitle(title, tabId); 
 | 
        if (setter.pageTabs) { 
 | 
            if (!tabId) tabId = $(tabDOM + '>.layui-tab-title>li.layui-this').attr('lay-id'); 
 | 
            if (tabId) $(tabDOM + '>.layui-tab-title>li[lay-id="' + tabId + '"] .title').html(title || ''); 
 | 
        } else if (title) { 
 | 
            $(titleDOM + '>.layui-body-header-title').html(title); 
 | 
            $(titleDOM).addClass('show'); 
 | 
            $(headerDOM).css('box-shadow', '0 1px 0 0 rgba(0, 0, 0, .03)'); 
 | 
        } else { 
 | 
            $(titleDOM).removeClass('show'); 
 | 
            $(headerDOM).css('box-shadow', ''); 
 | 
        } 
 | 
    }; 
 | 
  
 | 
    /** 自定义tab标题 */ 
 | 
    index.setTabTitleHtml = function (html) { 
 | 
        if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabTitleHtml(html); 
 | 
        if (setter.pageTabs) return; 
 | 
        if (!html) return $(titleDOM).removeClass('show'); 
 | 
        $(titleDOM).html(html); 
 | 
        $(titleDOM).addClass('show'); 
 | 
    }; 
 | 
  
 | 
    /** 获取面包屑 */ 
 | 
    index.getBreadcrumb = function (tabId) { 
 | 
        if (!tabId) tabId = $(bodyDOM + '>div>.admin-iframe').attr('lay-id'); 
 | 
        var breadcrumb = []; 
 | 
        var $href = $(sideDOM).find('[lay-href="' + tabId + '"]'); 
 | 
        if ($href.length > 0) breadcrumb.push($href.text().replace(/(^\s*)|(\s*$)/g, '')); 
 | 
        while (true) { 
 | 
            $href = $href.parent('dd').parent('dl').prev('a'); 
 | 
            if ($href.length === 0) break; 
 | 
            breadcrumb.unshift($href.text().replace(/(^\s*)|(\s*$)/g, '')); 
 | 
        } 
 | 
        return breadcrumb; 
 | 
    }; 
 | 
  
 | 
    /** 获取面包屑结构 */ 
 | 
    index.getBreadcrumbHtml = function (tabId) { 
 | 
        var breadcrumb = index.getBreadcrumb(tabId); 
 | 
        var htmlStr = tabId === index.homeUrl ? '' : ('<a ew-href="' + index.homeUrl + '">首页</a>'); 
 | 
        for (var i = 0; i < breadcrumb.length - 1; i++) { 
 | 
            if (htmlStr) htmlStr += '<span lay-separator="">/</span>'; 
 | 
            htmlStr += ('<a><cite>' + breadcrumb[i] + '</cite></a>'); 
 | 
        } 
 | 
        return htmlStr; 
 | 
    }; 
 | 
  
 | 
    /** 关闭loading */ 
 | 
    index.hideLoading = function (url) { 
 | 
        if (typeof url !== 'string') url = $(url).attr('lay-id'); 
 | 
        admin.removeLoading($('iframe[lay-id="' + url + '"],' + bodyDOM + ' iframe[lay-id]').parent(), false); 
 | 
    }; 
 | 
  
 | 
    /** 移动设备遮罩层 */ 
 | 
    var siteShadeDom = '.layui-layout-admin .site-mobile-shade'; 
 | 
    if ($(siteShadeDom).length === 0) $('.layui-layout-admin').append('<div class="site-mobile-shade"></div>'); 
 | 
    $(siteShadeDom).click(function () { 
 | 
        admin.flexible(true); 
 | 
    }); 
 | 
  
 | 
    /** 补充tab的dom */ 
 | 
    if (setter.pageTabs && $(tabDOM).length === 0) { 
 | 
        $(bodyDOM).html([ 
 | 
            '<div class="layui-tab" lay-allowClose="true" lay-filter="', tabFilter, '" lay-autoRefresh="', setter.tabAutoRefresh == 'true', '">', 
 | 
            '   <ul class="layui-tab-title"></ul><div class="layui-tab-content"></div>', 
 | 
            '</div>', 
 | 
            '<div class="layui-icon admin-tabs-control layui-icon-prev" ew-event="leftPage"></div>', 
 | 
            '<div class="layui-icon admin-tabs-control layui-icon-next" ew-event="rightPage"></div>', 
 | 
            '<div class="layui-icon admin-tabs-control layui-icon-down">', 
 | 
            '   <ul class="layui-nav" lay-filter="admin-pagetabs-nav">', 
 | 
            '      <li class="layui-nav-item" lay-unselect>', 
 | 
            '         <dl class="layui-nav-child layui-anim-fadein">', 
 | 
            '            <dd ew-event="closeThisTabs" lay-unselect><a>关闭当前标签页</a></dd>', 
 | 
            '            <dd ew-event="closeOtherTabs" lay-unselect><a>关闭其它标签页</a></dd>', 
 | 
            '            <dd ew-event="closeAllTabs" lay-unselect><a>关闭全部标签页</a></dd>', 
 | 
            '         </dl>', 
 | 
            '      </li>', 
 | 
            '   </ul>', 
 | 
            '</div>' 
 | 
        ].join('')); 
 | 
        element.render('nav', 'admin-pagetabs-nav'); 
 | 
    } 
 | 
  
 | 
    /** 侧导航点击监听 */ 
 | 
    element.on('nav(' + navFilter + ')', function (elem) { 
 | 
        var $that = $(elem); 
 | 
        var href = $that.attr('lay-href'); 
 | 
        if (!href || href === '#') return; 
 | 
        if (href.indexOf('javascript:') === 0) return new Function(href.substring(11))(); 
 | 
        var name = $that.attr('ew-title') || $that.text().replace(/(^\s*)|(\s*$)/g, ''); 
 | 
        var end = $that.attr('ew-end'); 
 | 
        try { 
 | 
            if (end) end = new Function(end); 
 | 
            else end = undefined; 
 | 
        } catch (e) { 
 | 
            console.error(e); 
 | 
        } 
 | 
        index.openTab({url: href, title: name, end: end}); 
 | 
        layui.event.call(this, 'admin', 'side({*})', {href: href}); 
 | 
    }); 
 | 
  
 | 
    /** tab切换监听 */ 
 | 
    element.on('tab(' + tabFilter + ')', function () { 
 | 
        var layId = $(this).attr('lay-id'); 
 | 
        index.mTabPosition = (layId !== index.homeUrl ? layId : undefined);  // 记录当前Tab位置 
 | 
        if (setter.cacheTab) admin.putTempData('tabPosition', index.mTabPosition); 
 | 
        admin.activeNav(layId); 
 | 
        admin.rollPage('auto'); 
 | 
        if ($(tabDOM).attr('lay-autoRefresh') == 'true' && !mIsAddTab) admin.refresh(layId, true);  // 切换tab刷新 
 | 
        mIsAddTab = false; 
 | 
        layui.event.call(this, 'admin', 'tab({*})', {layId: layId}); 
 | 
    }); 
 | 
  
 | 
    /** tab删除监听 */ 
 | 
    element.on('tabDelete(' + tabFilter + ')', function (data) { 
 | 
        var mTab = index.mTabList[data.index - 1]; 
 | 
        if (mTab) { 
 | 
            index.mTabList.splice(data.index - 1, 1); 
 | 
            if (setter.cacheTab) admin.putTempData('indexTabs', index.mTabList); 
 | 
            tabEndCall[mTab.menuPath] && tabEndCall[mTab.menuPath].call(); 
 | 
            layui.event.call(this, 'admin', 'tabDelete({*})', {layId: mTab.menuPath}); 
 | 
        } 
 | 
        if ($(tabDOM + '>.layui-tab-title>li.layui-this').length === 0) 
 | 
            $(tabDOM + '>.layui-tab-title>li:last').trigger('click');  // 解决删除后可能无选中bug 
 | 
    }); 
 | 
  
 | 
    /** 多系统切换事件 */ 
 | 
    $(document).off('click.navMore').on('click.navMore', '[nav-bind]', function () { 
 | 
        var navId = $(this).attr('nav-bind'); 
 | 
        $('ul[lay-filter="' + navFilter + '"]').addClass('layui-hide'); 
 | 
        $('ul[nav-id="' + navId + '"]').removeClass('layui-hide'); 
 | 
        $(headerDOM + '>.layui-nav .layui-nav-item').removeClass('layui-this'); 
 | 
        $(this).parent('.layui-nav-item').addClass('layui-this'); 
 | 
        if (admin.getPageWidth() <= 768) admin.flexible(false);  // 展开侧边栏 
 | 
        layui.event.call(this, 'admin', 'nav({*})', {navId: navId}); 
 | 
    }); 
 | 
  
 | 
    /** 开启Tab右键菜单 */ 
 | 
    if (setter.openTabCtxMenu && setter.pageTabs) { 
 | 
        layui.use('contextMenu', function () { 
 | 
            if (!layui.contextMenu) return; 
 | 
            $(tabDOM + '>.layui-tab-title').off('contextmenu.tab').on('contextmenu.tab', 'li', function (e) { 
 | 
                var layId = $(this).attr('lay-id'); 
 | 
                layui.contextMenu.show([{ 
 | 
                    icon: 'layui-icon layui-icon-refresh', 
 | 
                    name: '刷新当前', 
 | 
                    click: function () { 
 | 
                        element.tabChange(tabFilter, layId); 
 | 
                        if ('true' != $(tabDOM).attr('lay-autoRefresh')) admin.refresh(layId); 
 | 
                    } 
 | 
                }, { 
 | 
                    icon: 'layui-icon layui-icon-close-fill ctx-ic-lg', 
 | 
                    name: '关闭当前', 
 | 
                    click: function () { 
 | 
                        admin.closeThisTabs(layId); 
 | 
                    } 
 | 
                }, { 
 | 
                    icon: 'layui-icon layui-icon-unlink', 
 | 
                    name: '关闭其他', 
 | 
                    click: function () { 
 | 
                        admin.closeOtherTabs(layId); 
 | 
                    } 
 | 
                }, { 
 | 
                    icon: 'layui-icon layui-icon-close ctx-ic-lg', 
 | 
                    name: '关闭全部', 
 | 
                    click: function () { 
 | 
                        admin.closeAllTabs(); 
 | 
                    } 
 | 
                }], e.clientX, e.clientY); 
 | 
                return false; 
 | 
            }); 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    exports('index', index); 
 | 
}); 
 |