adminlte+layui框架搭建2 - 动态菜单
动态菜单
参考文章:https://cloud.tencent.com/developer/article/1342558
主要修改两个地方:
1.系统初始化加载一级菜单,在adminlte.js文件
$(window).on('load', function () { $.ajax({
url: "/Home/GetTree?id=0",
type: "Post",
timeout: 5000,
async: true,
dataType: "json",
success: function (data) {
if (data != null && data != undefined) {
var leftTreeBox = $("#ModuleNav").empty();
leftTreeBox.append("<li class=\"header\">MAIN NAVIGATION</li>");
var treeHtml = "";
for (var i = 0; i < data.length; i++) {
//if (i == 0) {
// treeHtml += "<li class=\"active treeview\" name=" + data[i].parentId + " id="+data[i].id+"><a href=#" + data[i].id + "><i class=\"fa fa-heartbeat\"></i><span>" + data[i].text + "</span><span class=\"pull-right-container\"><i class=\"fa fa-angle-left pull-right\"></i></span></a></li>";
//}
//else {
treeHtml += "<li class=\"treeview\" name=" + data[i].parentId + " id=" + data[i].id +"><a href=#" + data[i].id + "><i class=\"fa fa-heartbeat\"></i><span>" + data[i].text + "</span><span class=\"pull-right-container\"><i class=\"fa fa-angle-left pull-right\"></i></span></a></li>";
//} }
leftTreeBox.append(treeHtml);
}
else {
console.log("菜单加载失败");
}
},
error: function (error) {
console.log("菜单加载失败:" + error);
}
}) $(Selector.data).each(function () {
//原文
Plugin.call($(this)); });
});
2.加载二级菜单,在adminlte.js文件
// 判断该菜单是否是二级菜单如果是则添加选项卡 (2018-12-25 lzy add)
Tree.prototype._setUpListeners = function () {
var that = this;//获取树节点 $(this.element).on('click', this.options.trigger, function (event) {
var ele = $(this);
var id = ele.attr("href").substring(1, $(this).attr("href").length);//如果是一级菜单那么获取ID否则获取到节点的链接串为跳转页 //获取二级菜单
if (ele.parent().attr("name") == 0) { //赋予当前项选中样式,且菜单展开
ele.parent().addClass("active").siblings().removeClass("active");
that.toggle($(this), event); $.ajax({
url: "/Home/GetTree?id=" + encodeURI(id),
type: "Post",
timeout: 5000,
async: true,
dataType: "json",
success: function (data) {
if (data != null && data != undefined) {
ele.parent().children(".treeview-menu").remove();
ele.parent().append("<ul class=\"treeview-menu menu-open\">");
var treeHtml = "";
for (var i = 0; i < data.length; i++) {
treeHtml += "<li name=\"1\" id=" + data[i].id +"><a href=#" + data[i].value + "><i class=\"fa fa-circle-o\"></i>" + data[i].text + "</a></li>"
}
ele.parent().find(".treeview-menu").append(treeHtml);
ele.parent().find(".treeview-menu").append("</ul>");
}
else {
console.log("菜单加载失败");
} return;
},
error: function (error) {
console.log("菜单加载失败:" + error);
}
}) }//添加选项卡调转
else if ($(this).parent().attr("name") == 1)
{
var tabId = ele.parent().attr("id");
var tabUrl = id;
var tabName = ele.text();
//isCheckAddTab(tabId, tabUrl, tabName);
addTabs({ "id": tabId, "title": tabName, "content": "", "url": tabUrl });
}
//原来执行的函数
//that.toggle($(this), event);
});
};
注:
bootstrap tab封装
var addTabs = function (obj) {
var id = "tab_" + obj.id;
var content = ""; $("#tabMain .active").removeClass("active");
$(".tab-content .active").removeClass("active"); //如果TAB不存在,创建一个新的TAB
if (!$("#" + id)[0]) {
//固定TAB中IFRAME高度
var mainHeight = $(document.body).height() - 95;
//创建新TAB的title
var title = '<li id="tab_' + id + '"><a href="#' + id + '" data-toggle="tab">' + obj.title;
//是否允许关闭
if (obj.close) {
title += ' <i class="icon-cancel3"tabclose="' + id + '"></i>';
}
title += '</a></li>';
//是否指定TAB内容
if (obj.content) {
content = '<div role="tabpanel"class="tab-pane"id="' + id + '">' + obj.content + '</div>';
} else {//没有内容,使用IFRAME打开链接
content = '<div role="tabpanel" class="tab-pane" id="' + id + '"><iframe frameborder="0" src="' + obj.url + '" scrolling="auto" style="width:100%;height:' + mainHeight + 'px;"></iframe></div>'
}
//加入TABS
$("#tabMain").append(title);
$("#tabContent").append(content);
} //激活TAB
$("#tab_" + id).addClass('active');
$("#" + id).addClass("active");
};
adminlte+layui框架搭建2 - 动态菜单的更多相关文章
- adminlte+layui框架搭建1
之前写过一篇layui-master的UI搭建,但是感觉layui-master缺少一些东西(前台页面不过多研究),比如说页面的皮肤.菜单.插件,当然我也希望layui的插件可以越来越多,支持多个浏览 ...
- adminlte+layui框架搭建3 - layui弹出层
在amdinlte首页引入layui.js 和layui.css后添加代码 <script> layui.use(['layer'], function () { var layer = ...
- SAAS云平台搭建札记: (三) AntDesign + .Net Core WebAPI权限控制、动态菜单的生成
我们知道,当下最火的前端框架,非蚂蚁金服的AntDesign莫属,这个框架不仅在国内非常有名,在国外GitHub上React前端框架也排名第一.而且这个框架涵盖了React.Vue.Angular等多 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2 ...
- Unity 游戏框架搭建 (一) 概述
为了重构手头的一款项目,翻出来当时未接触Unity时候收藏的视频<Unity项目架构设计与开发管理>,对于我这种初学者来说全是干货.简单的总结了一下,以后慢慢提炼. 关于Unity的架 ...
- [原创]基于VueJs的前后端分离框架搭建之完全攻略
首先请原谅本文标题取的有点大,但并非为了哗众取宠.本文取这个标题主要有3个原因,这也是写作本文的初衷: (1)目前国内几乎搜索不到全面讲解如何搭建前后端分离框架的文章,讲前后端分离框架思想的就更少了, ...
- 权限管理系统之项目框架搭建并集成日志、mybatis和分页
前一篇博客中使用LayUI实现了列表页面和编辑页面的显示交互,但列表页面table渲染的数据是固定数据,本篇博客主要是将固定数据变成数据库数据. 一.项目框架 首先要解决的是项目框架问题,搭建什么样的 ...
- webapi框架搭建-安全机制(四)-可配置的基于角色的权限控制
webapi框架搭建系列博客 在上一篇的webapi框架搭建-安全机制(三)-简单的基于角色的权限控制,某个角色拥有哪些接口的权限是用硬编码的方式写在接口上的,如RBAuthorize(Roles = ...
- Unity 游戏框架搭建 2018 (一) 架构、框架与 QFramework 简介
约定 还记得上版本的第二十四篇的约定嘛?现在出来履行啦~ 为什么要重制? 之前写的专栏都是按照心情写的,在最初的时候笔者什么都不懂,而且文章的发布是按照很随性的一个顺序.结果就是说,大家都看完了,都还 ...
随机推荐
- sql合并列
oralce写法: select WM_CONCAT(A.title) as citys from tmpcity A sql server写法: select stuff((select ','+A ...
- mysql存储引擎简介
- 201671010127 2016—2017-2 java编程中遇到的问题
学习了Java的一些基本语法后,心里的激动无法按捺,总是比较Java与C语言语法的区别,一有闲时间就会用刚学的Java基本语法写一些简单的程序.这不,一不小心又陷入了困难,本人在此诚挚的请教各位园友, ...
- PHP自动加载配置ArrayAccess类
ArrayAccess是PHP的类,可以把对象当成数组来使用访问. Config.php 配置类 <?php namespace IMooc; class Config implements ...
- 【bzoj1083】[SCOI2005]繁忙的都市
1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2424 Solved: 1591[Submit][Sta ...
- 【codevs2495】水叮当的舞步
题目描述 Description 水叮当得到了一块五颜六色的格子形地毯作为生日礼物,更加特别的是,地毯上格子的颜色还能随着踩踏而改变.为了讨好她的偶像虹猫,水叮当决定在地毯上跳一支轻盈的舞来卖萌~~~ ...
- Java IO简介
-------------siwuxie095 Java IO简介: IO 也写作"I/O",可理解为 In 和 Out,即 输入 与 输出 ...
- 常用Xcode文档位置,修改Xcode项目模板地址总结,以及常用地址,随时更新。
Xcode文档 ~/Library/Developer/Shared/Documentation/DocSets or /Applications/Xcode.app/Contents/Develop ...
- Solidity 没名字的function(){...}作用
官方解释: 这个叫做fallback function,当有人 1. 只发送以太币给合约而不带任何输入数据:2. 调用smart contract时调起了一个不存在的方法.会触发执行这个方法. Wha ...
- 跨平台的图形软件Dia
一款非常不错的软件Dia,软件很小,免费.好用.跨平台(linux.windows.mac).可导出多种格式图片,除了流程图.UML建模图,还可以绘制其他很多图. ubuntu下可以直接通过命令行su ...