/**
@Name:layuiAdmin iframe版主入口
@Author:贤心
@Site:http://www.layui.com/admin/
@License:LPPL
*/
layui.extend({
setter: 'config' //配置模块
, admin: 'lib/admin' //核心模块
, view: 'lib/view' //视图渲染模块
}).define(['setter', 'admin'], function (exports) {
var setter = layui.setter
, element = layui.element
, admin = layui.admin
, tabsPage = admin.tabsPage
, view = layui.view
//打开标签页
, openTabsPage = function (url, text) {
//遍历页签选项卡
var matchTo
, tabs = $('#LAY_app_tabsheader>li')
, path = url.replace(/(^http(s*):)|(\?[\s\S]*$)/g, '');
tabs.each(function (index) {
var li = $(this)
, layid = li.attr('lay-id');
if (layid === url) {
matchTo = true;
tabsPage.index = index;
}
});
text = text || '新标签页';
if (setter.pageTabs) {
//如果未在选项卡中匹配到,则追加选项卡
if (!matchTo) {
$(APP_BODY).append([
'
'
, ''
, '
'
].join(''));
tabsPage.index = tabs.length;
element.tabAdd(FILTER_TAB_TBAS, {
title: '' + text + ''
, id: url
, attr: path
});
}
} else {
var iframe = admin.tabsBody(admin.tabsPage.index).find('.layadmin-iframe');
iframe[0].contentWindow.location.href = url;
}
//定位当前tabs
element.tabChange(FILTER_TAB_TBAS, url);
admin.tabsBodyChange(tabsPage.index, {
url: url
, text: text
});
}
//权限处理
, removeNoPermButtons = function () {
var permissions = layui.data(layui.setter.tableName)['permissions'];
$('.layui-btn').each(function () {
var perm = $(this).data("permission");
var is_has = judgePermissions(permissions, perm);
if (!is_has) {
$(this).remove();
}
});
$('.LAY-btns .layui-nav').each(function () {
var perm = $(this).data("permission");
var is_has = judgePermissions(permissions, perm);
if (!is_has) {
$(this).remove();
}
});
}
, APP_BODY = '#LAY_app_body', FILTER_TAB_TBAS = 'layadmin-layout-tabs'
, $ = layui.$, $win = $(window);
function judgePermissions(permissions, perm) {
if (!perm) {
return true;
}
var perms = perm.split('|');
var is_has = false;
for (var i in perms) {
if (permissions.indexOf(perms[i]) != -1) {
is_has = true;
break;
}
}
return is_has;
}
//初始
if (admin.screen() < 2) admin.sideFlexible();
//将模块根路径设置为 controller 目录
layui.config({
base: setter.base + 'modules/'
});
//扩展 lib 目录下的其它模块
layui.each(setter.extend, function(index, item){
var mods = {};
mods[item] = '{/}' + setter.base + 'lib/extend/' + item;
layui.extend(mods);
});
removeNoPermButtons();
view().autoRender();
//加载公共模块
layui.use('common');
//对外输出
exports('index', {
openTabsPage: openTabsPage
, removeNoPermButtons: removeNoPermButtons
});
});