- 浏览: 108490 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
墨子宇:
so,为了使用JSLint我还得装一个aptana?
eclipse 添加 JSLint 插件 -
lvjun106:
楼主可以看下这篇文章,介绍的很详细。http://www.os ...
eclipse 添加 JSLint 插件 -
newsletterBroker:
呵呵,感觉不错!
Jquery 源码中的 正则表达式 分析 -
jayliud:
String.prototype.count = funct ...
百度web前端笔试
前些天做了一个利用Jquery做了一个系统授权的东东,个人感觉不错,主要是感觉代码很精简,留个纪念吧,公司有规定,我只截了一部分吧的图片,看图直观啊
上代码:
jsp页面代码:
<div id="listRolePermission">
<c:forEach var="item" items="${result.map.items}">
<div class="dialogPermissionContent">
<input type="checkbox" class="permission_grandpa" <c:if test="${item['selected'] eq 'selected' }">checked="checked"</c:if> />${item['key']}
<c:forEach items="${item['list']}" var="permission">
<div class="permissionFather">
<input type="checkbox" class="permission_father"<c:if test="${permission.selected eq 'selected' }">checked="checked"</c:if> />${permission.name}
<div class="permissionSon">
<c:forEach items="${permission['list']}" var="permissionItem">
<input type="checkbox" class="permission_son" value="${permissionItem.permissionId}" <c:if test="${permissionItem.selected eq 'selected' }">checked="checked"</c:if> />${permissionItem.label}
</c:forEach>
</div>
</div>
</c:forEach>
</div>
</c:forEach>
</div>
js代码://这里不难,在这里真真感觉到了jQuery的强大啊,尤其是那选择器,太NX了
$("#listRolePermission").find("input").each(function(){
if($(this).attr("checked") == true){
$(this).addClass("select");
$(this).parentsUntil("#listRolePermission").find(".permission_grandpa").attr("checked",true);
}
});
$(".permissionFather").children().find("input").each(function(){
if($(this).attr("checked") == true){
$(this).addClass("select");
$(this).parentsUntil(".permissionFather").parent().children("input").attr("checked",true);
}
});
$(".permission_grandpa").live("click",function() {
var flag = $(this).attr("checked");
$(this).parent().children().find("input").each(function() {
$(this).attr("checked", flag);
if(flag){$(this).addClass("select");}else{ $(this).removeClass("select");}
});
});
$(".permission_father").live("click",function() {
var flag = $(this).attr("checked");
var $grandpa = $(this).parent().parent();
$(this).parent().children().find("input").each(function() {
$(this).attr("checked", flag);
if(flag){$(this).addClass("select");}else{ $(this).removeClass("select");}
});
$(this).siblings().find("input").attr("checked", flag);
$grandpa.children("input").attr("checked", flag);
if(!flag){
if($grandpa.children("div").find("input").hasClass("select")){
$grandpa.children("input").attr("checked", !flag);
}else{
$grandpa.children("input").attr("checked", flag);
}
}
});
$(".permission_son").live("click",function() {
var flag = $(this).attr("checked");
var $father = $(this).parent().siblings("input");
$(this).attr("checked", flag);
$father.attr("checked", flag);
if(flag){$(this).addClass("select"); }else{ $(this).removeClass("select");}
if(!flag){
if(!$(this).siblings().hasClass("select")){
$father.attr("checked", flag);
$father.removeClass("select");
$("#listRolePermission").find("input").each(function(){
if($(this).attr("checked") == flag){
$(this).removeClass("select");
$(this).parentsUntil("#listRolePermission").find(".permission_grandpa").attr("checked",flag);
}
});
}else{
$father.attr("checked", !flag);
$father.addClass("select");
}
}else{
$father.addClass("select");
}
$("#listRolePermission").find("input").each(function(){
if($(this).attr("checked") == true){
$(this).addClass("select");
$(this).parentsUntil("#listRolePermission").find(".permission_grandpa").attr("checked",true);
}
});
});
后台处理代码:
@RequestMapping(params="action=permission")
public ModelAndView permission(HttpServletRequest request) throws Exception {
ModelAndView mav = new ModelAndView(PageView.SYSTEM_ROLE_PERMISSION);
QueryCondition conds = new QueryCondition(new Pager());
DataResult dataResult = new DataResult();
conds.getPager().setPageSize(conds.getPager().getTotalCount());
QueryCondition configConds = new QueryCondition();
DataModelList alllist = roleService.findPermission(configConds);
List<PermissionVO> allListP = alllist.getList();
List<PermissionVO> listSelected =null;
String roleIdString = request.getParameter("roleId");
if(UtilValidate.isNotEmpty(roleIdString)){
QueryCondition selectedConds=new QueryCondition();
selectedConds.put("roleId",roleIdString);
listSelected = roleService.findRolePermission(selectedConds).getList();
dataResult.addObject("roleId",roleIdString);
}
List list = new ArrayList();
//这一块处理的好啊,吴大哥就是厉害啊,就应为这个Map使jsp界面很简洁,很优雅。第一回感觉到map的强大啊
Map<String,String> mapType = new HashMap<String,String>();
mapType.put("系统", "system_");
mapType.put( "***","user_");
mapType.put("---", "club_");
//初始化时,判断是否选中
for(int k=0;k<listSelected.size();k++){
for(int i=0;i<allListP.size();i++){
if(listSelected.get(k).getPermissionId() == allListP.get(i).getPermissionId()){
allListP.get(i).setSelected("selected");
}
}
}
for(Map.Entry<String,String> m: mapType.entrySet()){
Map map = new HashMap();
List itemList = new ArrayList();
for(int i=0;i<allListP.size();i++){
PermissionVO permissionVO=allListP.get(i);
if(UtilValidate.isNotEmpty(permissionVO.getCode()) && permissionVO.getCode().indexOf(m.getValue().toString())==0){
checkPermission(itemList,permissionVO,listSelected);
}
}
map.put("key",m.getKey().toString());
map.put("list", itemList);
list.add(map);
}
dataResult.addObject("items",list);
mav.addObject("result", dataResult);
return mav;
}
//因为里面套着2个层,所以还得有两个list
private boolean checkPermission(List itemList,PermissionVO permissionVO,List<PermissionVO> listSelected){
boolean check = false;
List<PermissionVO> perList = null;
for(int i=0;i<itemList.size();i++){
Map perMap = (Map) itemList.get(i);
perList = (List) perMap.get("list");
if(UtilValidate.isNotEmpty(perList)){
if(permissionVO.getPermissionUnion().equals(((PermissionVO)perList.get(0)).getPermissionUnion())){
check = true;
if(!checkPermissionItem(perList,permissionVO)){
perList.add(permissionVO);
}
}
}
}
if(!check){
perList = new ArrayList();
perList.add(permissionVO);
Map perMap = new HashMap();
perMap.put("list", perList);
perMap.put("key", permissionVO.getPermissionUnion());
perMap.put("name", permissionVO.getPermissionUnionName());
perMap.put("id", permissionVO.getPermissionId());
itemList.add(perMap);
}
return check;
}
private boolean checkPermissionItem(List<PermissionVO> itemList,PermissionVO permissionVO ){
for(int i=0;i<itemList.size();i++){
PermissionVO itemPermissionVO = (PermissionVO)itemList.get(i);
if(permissionVO.getCode().equals(itemPermissionVO.getCode())){
return true;
}
}
return false;
}
发表评论
-
支持ctrl,shift键的拖拽排序
2011-08-26 11:23 1137终于搞定了,太不容易了。最近公司要弄一个拖拽排序的 ... -
jquery 图片 无缝 滚动 插件
2011-08-05 13:30 2539插件原文地址:http://playground.mobily ... -
jquery plugin - pngFix 修改
2011-06-23 14:09 1091以前IE下png都用的是pngFix.js这个脚本来解决的,一 ... -
jquery plugin 集合
2011-06-22 22:01 1086jQuery插件-文件上传(File upload)A ... -
jquery 中的 mouseover ,mouseout 多次触发 解决办法
2011-06-14 18:07 2211这篇文章分析的不错:http://www.cnblogs ... -
java 启动 浏览器
2011-04-18 10:10 0import java.lang.reflect.Method ... -
jquery1.5 test 环境搭建
2011-02-21 18:35 8031.下载qunit:https://download.gith ... -
学习Jquery 源码 有一收获 DOM 加载 重新认识
2010-12-30 22:45 1709刚才看Jquery源码时,看见如下,一段不明白,上网一搜,豁然 ... -
URL补全
2010-11-25 14:10 752public static String complet ... -
深入剖析Spring Web源码 - 整理的文档和日志的索引
2010-10-29 18:37 1146原文地址:http://blog.csdn.net/rober ... -
java 操作 excel
2010-09-16 15:47 930今天公司项目中要把用 ...
相关推荐
5. 集成系统认证授权模块 6. 提供角色,部门,用户,菜单,前台应用程序授权 角色对用户授权 角色对菜单授权 角色对部门授权 角色对应用程序授权(多个前台应用公用一个后台权限管理系统) 部门对用户授权 7. ...
系统管理:菜单管理,操作员管理,角色管理,操作员授权。 站点管理:站点信息管理,站点类型。 由于密码是涉及加密,请勿在数据库中任意修改密码 简要说明 使用Java平台,采用SpringMVC+Mybatis等主流框架 ...
代理防伪授权查询系统SECMS是以php+MySQL进行开发的防伪码查询系统。系统特点1、系统参数配置2、用户角色管理3、用户管理4、菜单管理5、权限管理登录日志、调试日志、登录日志、蜘蛛访问8、数据库管理精确记录记录...
使用 ...前台系统不用编写登录、授权、认证模块;只负责编写业务模块即可 后台系统无需任何二次开发,直接发布即可使用 前台与后台系统分离,分别为不同的系统(域名可独立) 可扩展为多租户应用
安全系统: 旨在保护计算机系统免受恶意攻击、未经授权访问、数据泄露等安全威胁的措施和工具,包括防火墙、入侵检测系统、防病毒软件、身份认证与访问控制机制、数据加密技术等。 综上所述,计算机领域的“系统”...
不同角色拥有不同的权限,使用shiro完成认证和授权。 该系统主要分为个模块:基础管理模块、进货管理模块、销售管理模块、系统管理模块。基本上除了超级管理员角色外,每一个角色对应管理一个模块。 主要的业务...
权限管理是基于RBAC设计模式进行设计和改造的,借助DWR、JQuery等框架实现授权和认证功能。 之所以开放源代码,是想跟大家分享经验,系统对有需要的朋友有所帮助。 源码和开发文档都存在与项目中,开发文档都放在...
代理防伪授权查询系统WODECMS是以php+MySQL进行开发的防伪码查询系统。 系统特点: 软件代码全开源,完美支持二次开发,采用大的系统架构,容易扩展,支持海量数据,UI界面体验好。 软件功能: 1、系统参数配置 2、用户...
基于角色的访问控制(RBAC)技术的特点,在综合运用ASP.NET、jQuery和三层架构开发模式等相关技术的基础上,按照软件工程的设计开发思想从需求分析,系统功能设计与实现,测试三方面对系统进行详细阐述,最终实现了一...
shiro权限控制,结合ajax实现了异步认证与异步授权,同时实现了细粒度的权限动态分配(到按钮级别);添加了shiro session过期的登录跳转 jQuery EasyUI开发前端页面,利用jQuery文件上传插件实现拖拽上传的效果并对...
7、易迅工作室不保证您所下载系统功能的完整性,如需使用完整的功能请您选择授权版 YXBOOKCMS院校图书管控系统登录界面 YXBOOKCMS院校图书管控系统后台管理 后台路径:域名/index.php/index/index 用户名与...
项目技术:springboot2+mybatisplus+layui+jquery+shiro 仓库管理系统主要用到的技术有springboot,mybatisplus,shiro。主要角色有超级管理员、基础数据管理员、仓库管理员、销售管理员、系统管理员。不同角色拥有...
在安全性方面,该教务管理系统采用了 SSL 证书进行加密传输,并实现了用户身份验证和授权等功能,以确保用户数据的安全性。 在该系统中,采用了前后端分离的架构,前端使用了 Bootstrap 和 jQuery 等前端框架,可以...
jQuery EasyUI开发前端页面,利用jQuery文件上传插件实现拖拽上传的效果并对文件 类型、大小、数量进行控制;利用searchbox实现查找功能 Druid(数据源配置 sql防注入 sql性能监控) 统一的异常处理 JSP JSTL ...
如添加湖北分公司,公司编号HB001(会生成分公司系统管理员HB001_admin,密码:admin),再用分公司系统管理员给分公司添加业务人员(初始化密码:000000),系统管理员是没有业务功能菜单的,只能给业务人员授权业务...
也集成了很多功能强大,用途广泛的jQuery插件,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。 当前版本:v4.1.0 企业授权版,...
- jQuery EasyUI开发前端页面,利用jQuery文件上传插件实现拖拽上传的效果并对文件类型、大小、数量进行控制;利用search-box实现查找功能 - [Druid(数据源配置 sql防注入 sql性能监控)] - 统一的异常处理 - JSP ...
这个权限系统demo没有MVC、没有ORM、数据库表都没设外键关系、级联删除等,所有需要级联操作的地方都是事务提交。界面上的所有操作基本都是jquery发ajax请求ashx处理,ashx处理后输出json前台接收处理并配合easyui的...