抽取okMenu

v1.0
bobi 2019-05-18 22:50:51 +08:00
parent dac9be277f
commit 233ed2f4a8
2 changed files with 139 additions and 72 deletions

View File

@ -2,13 +2,15 @@ layui.config({
base: "lib/okPlugins/"
}).extend({
okTab: "okTab",
okUtils: "okUtils"
}).use(["element", "layer", "okTab", "okUtils"], function () {
okUtils: "okUtils",
okMenu: "okMenu"
}).use(["element", "layer", "okTab", "okUtils", "okMenu"], function () {
var element = layui.element;
var layer = layui.layer;
var $ = layui.jquery;
var okTab = layui.okTab;
var okUtils = layui.okUtils;
var okMenu = layui.okMenu;
/**
* localhost运行提示
@ -34,78 +36,82 @@ layui.config({
}
});
// TODO 无限级菜单
okUtils.ajax("data/menu.json", "get").done(function (response) {
var html = "";
for (var i = 0; i < response.length; i++) {
var d = response[i];
html += liHtml(d);
html += "<a href='javascript:;'>"
html += iconHtml(d) + " " + response[i].title;
html += "</a>"
// var children = d.children;
// if (children != undefined && children.length > 0) {
// html += "<dl class='layui-nav-child'>"
// for (var j = 0; j < children.length; j++) {
// html += "<dd>";
// html += "<a href='javascript:;' path='" + children[j].path + "'>" + iconHtml(children[j]) + " " + children[j].title + "</a>";
// html += "</dd>";
// }
// html += "</dl>"
// }
var temp = createMenu(d.children);
html += temp;
html += "</li>";
}
$(".layui-nav-tree").html(html);
element.render("nav");
}).fail(function (error) {
console.log(error)
});
/**
* 生成左侧菜单树
*/
okMenu.generatorMenu("data/menu.json", "get");
function liHtml(obj) {
var html = "";
if (obj.spread) {
html += "<li class='layui-nav-item layui-nav-itemed'>";
} else {
html += "<li class='layui-nav-item'>";
}
return html;
}
// okUtils.ajax("data/menu.json", "get").done(function (response) {
// var html = "";
// for (var i = 0; i < response.length; i++) {
// var d = response[i];
// html += liHtml(d);
// html += "<a href='javascript:;'>"
// html += iconHtml(d) + " " + response[i].title;
// html += "</a>"
// // var children = d.children;
// // if (children != undefined && children.length > 0) {
// // html += "<dl class='layui-nav-child'>"
// // for (var j = 0; j < children.length; j++) {
// // html += "<dd>";
// // html += "<a href='javascript:;' path='" + children[j].path + "'>" + iconHtml(children[j]) + " " + children[j].title + "</a>";
// // html += "</dd>";
// // }
// // html += "</dl>"
// // }
// var temp = createMenu(d.children);
// html += temp;
// html += "</li>";
// }
// $(".layui-nav-tree").html(html);
// element.render("nav");
// }).fail(function (error) {
// console.log(error)
// });
function iconHtml(obj) {
var html = "";
if (obj.icon) {
if (obj.font == "iconfont") {
html += "<i class='iconfont'>" + obj.icon + "</i>";
} else if (obj.font == "layui-icon") {
html += "<i class='layui-icon'> " + obj.icon + "</i>";
} else {
html += "<i class='iconfont'>" + obj.icon + "</i>";
}
} else {
console.warn(obj.title, "icon未定义");
}
return html;
}
// function liHtml(obj) {
// var html = "";
// if (obj.spread) {
// html += "<li class='layui-nav-item layui-nav-itemed'>";
// } else {
// html += "<li class='layui-nav-item'>";
// }
// return html;
// }
function createMenu(obj) {
var html = "";
if (obj != undefined && obj.length > 0) {
html += "<dl class='layui-nav-child'>"
for (var i = 0; i < obj.length; i++) {
html += "<dd>";
html += "<a href='javascript:;' path='" + obj[i].path + "'>" + iconHtml(obj[i]) + " " + obj[i].title + "</a>";
var children = obj[i].children;
if (children != undefined && children.length > 0) {
html += createMenu(children);
}
html += "</dd>";
}
html += "</dl>"
}
return html;
}
// function iconHtml(obj) {
// var html = "";
// if (obj.icon) {
// if (obj.font == "iconfont") {
// html += "<i class='iconfont'>" + obj.icon + "</i>";
// } else if (obj.font == "layui-icon") {
// html += "<i class='layui-icon'> " + obj.icon + "</i>";
// } else {
// html += "<i class='iconfont'>" + obj.icon + "</i>";
// }
// } else {
// console.warn(obj.title, "icon未定义");
// }
// return html;
// }
// function createMenu(obj) {
// var html = "";
// if (obj != undefined && obj.length > 0) {
// html += "<dl class='layui-nav-child'>"
// for (var i = 0; i < obj.length; i++) {
// html += "<dd>";
// html += "<a href='javascript:;' path='" + obj[i].path + "'>" + iconHtml(obj[i]) + " " + obj[i].title + "</a>";
// var children = obj[i].children;
// if (children != undefined && children.length > 0) {
// html += createMenu(children);
// }
// html += "</dd>";
// }
// html += "</dl>"
// }
// return html;
// }
/**
* 监听导航菜单的点击

View File

@ -4,7 +4,68 @@ layui.define(["element", "okUtils"], function (exports) {
var okUtils = layui.okUtils;
var $ = layui.jquery;
var okMenu = {}
var okMenu = {
generatorMenu: function (url, method) {
okUtils.ajax(url, method).done(function (response) {
var html = "";
for (var i = 0; i < response.length; i++) {
var d = response[i];
html += okMenu.liHtml(d);
html += "<a href='javascript:;'>"
html += okMenu.iconHtml(d) + " " + response[i].title;
html += "</a>"
var temp = okMenu.createMenu(d.children);
html += temp;
html += "</li>";
}
$(".layui-nav-tree").html(html);
element.render("nav");
}).fail(function (error) {
console.log(error)
});
},
liHtml: function (obj) {
var html = "";
if (obj.spread) {
html += "<li class='layui-nav-item layui-nav-itemed'>";
} else {
html += "<li class='layui-nav-item'>";
}
return html;
},
iconHtml: function (obj) {
var html = "";
if (obj.icon) {
if (obj.font == "iconfont") {
html += "<i class='iconfont'>" + obj.icon + "</i>";
} else if (obj.font == "layui-icon") {
html += "<i class='layui-icon'> " + obj.icon + "</i>";
} else {
html += "<i class='iconfont'>" + obj.icon + "</i>";
}
} else {
console.warn(obj.title, "icon未定义");
}
return html;
},
createMenu: function (obj) {
var html = "";
if (obj != undefined && obj.length > 0) {
html += "<dl class='layui-nav-child'>"
for (var i = 0; i < obj.length; i++) {
html += "<dd>";
html += "<a href='javascript:;' path='" + obj[i].path + "'>" + okMenu.iconHtml(obj[i]) + " " + obj[i].title + "</a>";
var children = obj[i].children;
if (children != undefined && children.length > 0) {
html += okMenu.createMenu(children);
}
html += "</dd>";
}
html += "</dl>"
}
return html;
}
}
exports("okMenu", okMenu);
});