(function ($) {
$.fn.sidebarMenu = function (options) {
options = $.extend({}, $.fn.sidebarMenu.defaults, options || {});
var target = $(this);
var level = 0;
// target.addClass('nav');
// target.addClass('nav-list');
if (options.data) {
init(target, options.data, level);
}
else {
if (!options.url) return;
$.getJSON(options.url, options.param, function (data) {
init(target, data,level);
});
}
function init(target, data,level) {
$.each(data, function (i, item) {
//如果标签是isHeader
var header = $('
');
if (item.isHeader != null && item.isHeader === true) {
header.append(item.text);
target.append(header);
return;
}
//如果不是header
var li = $('');
var a;
if (level > 0) {
a = $('');
} else {
a = $('');
}
var icon = $('');
icon.addClass(item.icon);
var isOpen = item.isOpen;
var text = $(' ');
text.addClass('menu-text').text(item.text);
a.append(icon);
a.append(text);
a.addClass("nav-link");
if (isOpen === true) {
li.addClass("active");
}
if (item.children && item.children.length > 0) {
;
var pullSpan = $('');
var pullIcon = $('');
pullSpan.append(pullIcon);
a.append(pullSpan);
li.append(a);
var menus = $('');
menus.addClass('treeview-menu');
if (isOpen===true) {
menus.css("display", "block");
menus.addClass("menu-open");
} else {
menus.css("display", "none");
}
init(menus, item.children,level+1);
li.append(menus);
}
else {
if (item.targetType != null && item.targetType === "blank") //代表打开新页面
{
a.attr("href", item.url);
a.attr("target", "_blank");
}
else if (item.targetType != null && item.targetType === "ajax") { //代表ajax方式打开页面
a.attr("href", item.url);
a.addClass("ajaxify");
}
else if (item.targetType != null && item.targetType === "iframe-tab") {
var href = 'addTabs({id:\'' + item.id + '\',title: \'' + item.text + '\',close: true,url: \'' + item.url + '\'});';
a.attr('onclick', href);
}
else if (item.targetType != null && item.targetType === "iframe") { //代表单iframe页面
a.attr("href", item.url);
a.addClass("iframeOpen");
$("#iframe-main").addClass("tab_iframe");
} else {
a.attr("href", item.url);
a.addClass("iframeOpen");
$("#iframe-main").addClass("tab_iframe");
}
a.addClass("nav-link");
var badge = $("");
// 1
if (item.tip != null && item.tip > 0) {
badge.addClass("label").addClass("label-success").text(item.tip);
}
a.append(badge);
li.append(a);
}
target.append(li);
});
}
}
$.fn.sidebarMenu.defaults = {
url: null,
param: null,
data: null
};
})(jQuery);
//sidebar - menu组件封装
//在页面上面直接调用sidebar - menu的方法