一.AdminLTE介绍

1.介绍

​ AdminLTE是一个开源的后台控制面板和仪表盘 WebApp 模板,是建立在Bootstrap3框架和JQuery之上的开源模板主题工具,它提供了一系列响应的组件,并内置了多个模板页面,包括仪表盘、邮箱、日历、锁屏、登录及注册、404错误、500错误等页面。通过AdminLTE,我们可以快速的创建一个响应式的Html5网站。

2.下载

我们可以到其官网下载:https://adminlte.io/

也可选择中文版本的地址:http://adminlte.la998.com/index2.html

其中有一些模板是收费的,当然也有挺多免费的,看需求自行选择。

3.AdminLTE的简单使用

​ AdminLTE的使用并不难,和使用Bootstrap类似。我们将下载的文件导入到我们的工程当中,进行适当的删改即可。当然,我们也可以只使用其中的一小部分,甚至是一个小组件。详见其官方文档:

中文文档:http://adminlte.la998.com/documentation/#introduction

二.zTree的简单使用

1.简介

​ zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。专门适合项目开发,尤其是 树状菜单、树状数据的 Web 显示、权限管理等等。

特点

  • zTree v3.0 将核心代码按照功能进行了分割,不需要的代码可以不用加载。

  • 采用了延迟加载技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀。

  • 兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器。

  • 支持 JSON 数据。

  • 支持静态和 Ajax 异步加载节点数据。

  • 支持任意更换皮肤 / 自定义图标(依靠 css)。

  • 支持极其灵活的 checkbox 或 radio 选择功能。

  • 提供多种事件响应回调。

  • 灵活的编辑(增/删/改/查)功能,可随意拖拽节点,还可以多节点拖拽哟。

  • 在一个页面内可同时生成多个 Tree 实例。

  • 简单的参数配置实现 灵活多变的功能。

2.基本使用

第一步:导入zTree组件

<link rel="stylesheet" href="${ctx }/components/zTree/css/zTreeStyle/zTreeStyle.css" type="text/css" />
<script type="text/javascript" src="${ctx }/components/zTree/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="${ctx }/components/zTree/js/jquery.ztree.core-3.5.min.js"></script>
<script type="text/javascript" src="${ctx }/components/zTree/js/jquery.ztree.excheck-3.5.min.js"></script>

第二步:编写页面

script

<script type="text/javascript">
// 1.设置树的配置信息
var setting = {
check: { // 复选框可用
enable: true
},
data: { // 定义使用简单json数据格式,如下所示:
simpleData: {
enable: true
}
}
};
/** 简单json数据格式:
* [{ id:11, pId:1, name:"系统", checked:true}, { id:12, pId:1, name:"财务",checked:false}]
* 当前项id 父项id 名称 是否勾选
*/ // 2.页面加载完毕后发起异步请求获得json格式的数据
$(document).ready(function(){
$.get("${ctx}/system/role/initModuleData.do?roleid=${role.id}",function(data) {
initZtree(data);
},"json");
}); // 3.定义zTree树
var zTreeObj;
// 4.根据获取到的json数据展示ztree树
function initZtree(data) {
//第一个参数:树显示的位置,第二个参数:树的配置信息,第三个参数:要展示的数据
zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, data);
zTreeObj.expandAll(true);//true:展开所有节点
} // 5.实现权限分配(zTree树复选框提交时)
function submitCheckedNodes() {
//1.获取所有的勾选权限节点
var nodes = zTreeObj.getCheckedNodes(true);//true:被勾选,false:未被勾选
//2.循环nodes,获取每个节点的id, 拼接模块字符串(以,分隔)
var moduleIds = "";
for(var i=0;i<nodes.length;i++) {
moduleIds += nodes[i].id +",";
}
if(moduleIds.length>0) {
//substr : 字符串剪切 0 :起始位置, 第二个参数:最大长度
//123456789, 0 9
moduleIds = moduleIds.substr(0,moduleIds.length-1);
}
$("#moduleIds").val(moduleIds); // 设置表单隐藏域的值
$("#icform").submit(); // 提交表单
}
</script>

树菜单

<!-- 树菜单 -->
<form name="icform" id="icform" method="post" action="${ctx}/system/role/updateRoleModule.do">
<input type="hidden" name="roleid" value="${role.id}"/>
<input type="hidden" id="moduleIds" name="moduleIds" value=""/>
<div class="content_wrap">
<div class="zTreeDemoBackground left" style="overflow: visible">
<!-- 展示zTree树的地方 -->
<ul id="treeDemo" class="ztree"></ul>
</div>
</div>
</form>
<!-- 树菜单 /-->

第三步:Controller返回正确的json格式数据

Tips: 分析页面所需json数据格式为:

[{ id:11, pId:1, name:"系统", checked:true}, { id:12, pId:1, name:"财务",checked:false}]

因此可以将数据查出来后自行转为json格式的。也可通过sql语句直接查出我们所需要的数据格式:

<!-- 查找角色权限的功能模块(一条语句,包含所有模块及当前角色的模块权限标记)注意返回的是map类型 -->
<select id="findTreeJson" parameterType="string" resultType="map">
select
module_id as id ,
parent_id as pId,
name as name,
case when module_id in (select module_id from pe_role_module where role_id = #{roleId})
then 'true'
else 'false'
end
as checked
from ss_module;
</select>

Controller返回json数据

//页面加载完毕后直接发起异步请求初始化 权限菜单树
@RequestMapping(value = "/initModuleData",name = "加载角色权限")
public @ResponseBody List initModuleData(@RequestParam("roleid") String id){
List<Map> list = roleService.findTreeJson(id);
return list;
}

这样,页面就可以根据我们的json数据动态的生成一个zTree树啦!

喜欢的朋友可以关注我的公众号,需要广告托管的朋友可以加QQ哦!

AdminLTE介绍和zTree的简单使用的更多相关文章

  1. WeX5的简单介绍及UI的简单讲解

    WeX5的简单介绍及UI的简单讲解 (2016-01-13 14:49:05) 标签: it 分类: WeX5的初步自学 一.WeX5的简单讲解 1.WeX5是前端快速开发框架,可开发跨端运行应用.是 ...

  2. Ztree的简单使用和后台交互的写法(二)

    针对Ztree的简单使用和后台交互的写法(一)中的树进行改进 1.增加节点的权限 由页面的当前用户,决定树的根节点 然后动态获取树的详细节点: 初始化函数为: function init(){ //初 ...

  3. Node.js简单介绍并实现一个简单的Web MVC框架

    编号:1018时间:2016年6月13日16:06:41功能:Node.js简单介绍并实现一个简单的Web MVC框架URL :https://cnodejs.org/topic/4f16442cca ...

  4. 项目中简单使用ztree,简单数据。

    由于公司架构较旧,使用的jdk版本为1.4,页面上也没有el表达式. 加入 js 文件 <% String context = request.getContextPath(); %> & ...

  5. iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信

    一.iOS中的多线程 多线程的原理(之前多线程这块没好好学,之前对多线程的理解也是错误的,这里更正,好好学习这块) iOS中多线程的实现方案有以下几种 二.NSThread线程类的简单实用(直接上代码 ...

  6. Ztree学习(-)简单例子

    https://www.cnblogs.com/shinhwazt/p/5828031.html ztree包:https://pan.baidu.com/s/1vOgGm_elF-lF0VowoHw ...

  7. MQTT介绍(1)简单介绍

    MQTT目录: MQTT简单介绍 window安装MQTT服务器和client java模拟MQTT的发布,订阅 MQTT: MQTT(Message Queuing Telemetry Transp ...

  8. zTree的简单使用

    理论可以看:http://www.cnblogs.com/shinhwazt/p/5828031.html zTree包:链接:http://pan.baidu.com/s/1eR4xP6M 密码:w ...

  9. 什么是Cookie。Cookie的原理介绍,Cookie的简单应用

    1 介绍:Cookies亦称Cookie .Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.Cookies是当你浏览某网站时,由Web服务 ...

随机推荐

  1. MySQL 乐观锁和悲观锁

    前言 1)在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和一致性以及数据库的一致性. 2)加锁是为了解决更新丢失问题 ...

  2. [bzoj4987]Tree_树形dp

    Tree bzoj-4987 题目大意:给定一颗n个点的有边权的树,选出k个点,使得:$\sum\limits_{i=1}^{k-1}dis_idis_j$最小. 注释:$1\le n\le 3000 ...

  3. BAT经典面试题,深入理解Java内存模型JMM

    Java 内存模型 Java 内存模型(JMM)是一种抽象的概念,并不真实存在,它描述了一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段.静态字段和构成数组对象的元素)的访问方式.试图屏 ...

  4. HashMap源码分析2:扩容

    本文源码基于JDK1.8.0_45. final Node<K,V>[] resize() { Node<K,V>[] oldTab = table; int oldCap = ...

  5. 今天又学到了一个很重要的公式,(a+b)^n,组合数的求和,牛逼,为自己鼓掌👏

    另外还有: C(n, 0) + ... + C(n, n) = 2^n 其实从上面的二项式定理,也可以推导出来的.

  6. C++ - 模板函数须要类型转换时使用友元(friend)模板函数

    模板函数须要类型转换时使用友元(friend)模板函数 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24357301 非模板函数 ...

  7. 1. 青蛙跳跳FrogJmp Count minimal number of jumps from position X to Y.

    青蛙跳跳: package com.code; public class Test03_1 { public int solution(int X, int Y, int D) { int res = ...

  8. MyBatis參数格式化异常解决方式:MyBatisSystemException:

    MyBatis參数格式化异常解决方式:MyBatisSystemException: 问题:今天使用MyBatis开发查询功能时,前台传入查询条件明明是String类型,到后台就报错,提示格式化数值错 ...

  9. 如何定义StrokeIt手势 常用StrokeIt手势大全

    1 最小化,最大化,最小化所有(显示桌面) 斜向上表示最大化或者还原,斜向下表示最小化,适用于任务管理器和一般应用程序(有这三个按钮的都可以),先斜向下再斜向上表示显示桌面,这个在WIN7系统中不太实 ...

  10. 到底什么是RPC?

    RPC:远程过程调用,是一种同意分布式应用程序调用网络上不同计算机的可用服务的机制.RPC服务会在注冊表中给自己注冊一个UUID,成为通用唯一标识符.这个UUID针对每一项服务都是一个唯一的值,且在全 ...