//add by owen 修复 path 无法引用http://页面的问题 begin String.prototype.startWith = function (str) { if (str == null || str == "" || this.length == 0 || str.length > this.length) return false; if (this.substr(0, str.length) == str) return true; else return false; return true; } function initIFrame() { var $parent = $(".admin-iframe").parent(); if ($parent.hasClass('layui-body')) { $parent.addClass('admin-iframe-body'); return; } if ($parent.hasClass('layui-tab-item')) { $parent.css({ 'padding': '0', 'overflow-y': 'hidden' }); } else { $parent.css({ 'width': '100%', 'height': '100%' }); } } //add by owen 修复 path 无法引用http://页面的问题 end layui.define(['config', 'admin', 'layer', 'laytpl', 'element', 'form'], function (exports) { var $ = layui.$; var config = layui.config; var admin = layui.admin; var layer = layui.layer; var laytpl = layui.laytpl; var element = layui.element; var form = layui.form; var index = { // 渲染左侧菜单栏 initLeftNav: function () { admin.req('api-user/menus/current', {}, function (data) { admin.putTempData("menus", data.data); var menus = data.data; // 判断权限 for (var i = menus.length - 1; i >= 0; i--) { var tempMenu = menus[i]; if (tempMenu.auth && !admin.hasPerm(tempMenu.auth)) { menus.splice(i, 1); continue; } if (!tempMenu.subMenus) { continue; } for (var j = tempMenu.subMenus.length - 1; j >= 0; j--) { var jMenus = tempMenu.subMenus[j]; if (jMenus.auth && !admin.hasPerm(jMenus.auth)) { tempMenu.subMenus.splice(j, 1); continue; } if (!jMenus.subMenus) { continue; } for (var k = jMenus.subMenus.length - 1; k >= 0; k--) { if (jMenus.subMenus[k].auth && !admin.hasPerm(jMenus.subMenus[k].auth)) { jMenus.subMenus.splice(k, 1); continue; } } } } // 去除空的目录 for (var i = menus.length - 1; i >= 0; i--) { var tempMenu = menus[i]; if (tempMenu.subMenus && tempMenu.subMenus.length <= 0) { menus.splice(i, 1); continue; } if (!tempMenu.subMenus) { continue; } for (var j = tempMenu.subMenus.length - 1; j >= 0; j--) { var jMenus = tempMenu.subMenus[j]; if (jMenus.subMenus && jMenus.subMenus.length <= 0) { tempMenu.splice(j, 1); continue; } } } // 渲染 $('.layui-layout-admin .layui-side').load('pages/side.html', function () { laytpl(sideNav.innerHTML).render(menus, function (html) { $('#sideNav').after(html); }); element.render('nav'); admin.activeNav(Q.lash); }); }, 'GET'); }, // 路由注册 initRouter: function () { index.regRouter(admin.getTempData("menus")); // index.regRouter(config.menus); Q.reg('console', function () { var menuPath = 'pages/console.html' index.loadView('console', menuPath, '主页'); }); Q.init({ index: 'console' }); }, // 使用递归循环注册 regRouter: function (menus) { $.each(menus, function (i, data) { if (data.url && data.url.indexOf('#!') == 0) { Q.reg(data.url.substring(2), function () { if (data.path.startWith("http://")) { window.open(data.path); } else { //临时保存url data.path.startWith("http://") ? admin.putTempData("params", data.path) : null; var menuId = data.url.substring(2); //add by owen 修复 path 无法引用http://页面的问题 var menuPath = data.path.startWith("http://") ? 'pages/tpl/iframe.html' : 'pages/' + data.path index.loadView(menuId, menuPath, data.name); } }); } if (data.subMenus) { index.regRouter(data.subMenus); } }); }, // 路由加载组件 loadView: function (menuId, menuPath, menuName) { var contentDom = '.layui-layout-admin .layui-body'; admin.showLoading('.layui-layout-admin .layui-body'); var flag; // 选项卡是否添加 flag = menuPath.startWith("http://") ? false : flag; // 判断是否开启了选项卡功能 if (config.pageTabs) { $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title>li').each(function (index) { if ($(this).attr('lay-id') === menuId) { flag = true; } }); if (!flag) { element.tabAdd('admin-pagetabs', { title: menuName, //add by owen 修复 path 无法引用http://页面的问题 content: menuPath.startWith("http://") ? '