| /** 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); | 
| }); |