常用菜单开发设计思路
2017-03-23 10:15
225 查看
1.常用菜单便于用户使用
遇到一系列的菜单,眼花缭乱!设计一张菜单用户表 加上系统原有的角色菜单表即可解决
2.常用菜单弹窗
3.对常用菜单选择处理
4。难点在于取消选择的常用菜单需要回到原来的节点上
所以设计表的时候需要保存常用菜单的父节点ID
建表语句
-- Create table
create table SYS_USER_MENU
(
MENU_ID VARCHAR2(64) not null,
USER_ID VARCHAR2(64) not null,
MENU_STATUS VARCHAR2(64),
CREATED_BY VARCHAR2(64),
CREATED TIMESTAMP(6)
)
tablespace YZ_BUSI07
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 10M
next 10M
minextents 1
maxextents unlimited
pctincrease 0
);
-- Add comments to the table
comment on table SYS_USER_MENU
is '用户常用菜单权限管理';
-- Add comments to the columns
comment on column SYS_USER_MENU.MENU_ID
is '菜单ID:SEQ_MENU_ID自动生成';
comment on column SYS_USER_MENU.USER_ID
is '用户ID';
comment on column SYS_USER_MENU.MENU_STATUS
is '菜单状态 0 有效 1:删除';
comment on column SYS_USER_MENU.CREATED_BY
is '菜单创建人';
comment on column SYS_USER_MENU.CREATED
is '菜单创建时间';
-- Create/Recreate primary, unique and foreign key constraints
alter table SYS_USER_MENU
add constraint PK_SYS_USER_MENU primary key (MENU_ID, USER_ID)
using index
tablespace YZ_BUSI07
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 10M
next 10M
minextents 1
maxextents unlimited
pctincrease 0
);
实现效果
点击编辑
点击完成
遇到一系列的菜单,眼花缭乱!设计一张菜单用户表 加上系统原有的角色菜单表即可解决
2.常用菜单弹窗
<!-- 常用菜单 弹窗 --> <div class="addpop normal-addpop dis-none " id="addpop"> <div class="addpop_title"> 常用菜单配置 <a href="javascript:void(0)" onclick="closeMenu()" class="btn_addpopClose"></a> </div><!--ddpop_title end--> <div class="addpop_cont pdlr-0"> <div class="normal-subtitle">常用菜单已选(<span class="num"></span>/10)</div> <form:form id="saveUserMenuForm" modelAttribute="sysUserMenu" action="${ctx}/sys/menu/saveUserMenu" method="post"> <div class="normal-select"> <ul class="js_normal_selected"> <c:forEach items="${fns:getUserMenuList()}" var="subMenu" > <c:if test="${subMenu.isShow==1}"> <li data-tag="${subMenu.parent.id}" id="${subMenu.id}">${subMenu.name}</li> </c:if> </c:forEach> </ul> </div> </form:form> <div class="normal-subtitle mgt-10">点击添加菜单<a href="#" onclick="saveAllMenu()" class="font-blue fr">完成</a></div> <div class="normal-con"> <%--<c:if test="${secondMenu.parent.id != '1'}">--%> <c:forEach items="${fns:getNoUserMenuList()}" var="menu" varStatus="status"> <c:if test="${menu.parent.id eq '1'&&menu.isShow eq '1'}" > <div class="normal-bg" id="manager${menu.id}"> <div class="normal-subtitle " id="${subMenu.id}">${menu.name}</div> <div class="normal-select"> <ul class="normal-option-list js_normal_options"> <c:forEach items="${fns:getNoUserMenuList()}" var="subMenu" > <c:if test="${subMenu.parent.id eq menu.id &&subMenu.isShow==1}"> <li data-tag="${ menu.id}" id="${subMenu.id}">${subMenu.name}</li> </c:if> </c:forEach> </ul> </div> </div> </c:if> </c:forEach> </div></div></div> <div id="backMask" class="dis-none "></div>
3.对常用菜单选择处理
<script type="text/javascript"> $(function(){ var num = $('.js_normal_selected li').length; $('.normal-subtitle').find('.num').text(num); //隐藏遮罩 $("#backMask").hide(); $("#addpop").hide(); $(document).on('click','.dropdown-toggle', function () { $('.dropdown-menu').toggle(); }); $(document).on('click','.dropdown-menu li', function () { $('.dropdown-menu').hide(); }); $(".right-icon-lift .right-icon-lift-a").click(function(){ $(".right-icon-lift a").removeClass("click"); $(this).addClass("click"); }); //背景变黄色 $(".js_ewm_icon").click(function(){ $(".js_ewm_con").removeClass("dis-none"); $(".mode-bg").show(); }); $(".js_hh_ewm_close").click(function(){ $(".js_ewm_con").addClass("dis-none"); $(".mode-bg").hide(); }); //增加删除 $(document).on('click','.js_normal_selected li', function () { var indexTag=$(this).attr("data-tag"); $("#manager"+indexTag).find(".js_normal_options").append($(this).clone()); $(this).detach(); var num = $('.js_normal_selected li').length; $('.normal-subtitle').find('.num').text(num); }); $(document).on('click','.js_normal_options li', function () { var num = $('.js_normal_selected li').length; if (num>=10){ alertx("最多只能添加10个常用菜单!"); return; } $(".js_normal_selected").append($(this).clone()); $(this).detach(); num = $('.js_normal_selected li').length; $('.normal-subtitle').find('.num').text(num); }); }) function showSubMenu(id){ var menuHtml=""; var i=1; <c:forEach items="${fns:getMenuList()}" var="threeMenu"> if(id=='${threeMenu.parent.id}'&&'1'=='${threeMenu.isShow}'){ if(i==1){ var threeHref='${threeMenu.href}'; threeHref=threeHref.replace("&","&"); window.location.href='${ctx}'+threeHref; } i++; } </c:forEach> } /** * 常用菜单 点击编辑的方法 * 展示弹框 * caoww */ function editAllMenu(){ //展示遮罩 $("#backMask").removeClass("dis-none") $("#addpop").removeClass("dis-none"); $("#backMask").show(); $("#addpop").show(); } /** * 常用菜单 点击关闭的方法 * 展示弹框 * caoww */ function closeMenu(){ //隐藏遮罩 $("#backMask").hide(); $("#addpop").hide(); $("#addpop").addClass("dis-none"); $("#backMask").addClass("dis-none"); } /** * 常用菜单 点击完成的的方法 * 将页面的值保存到用户数据中 * * caoww */ function saveAllMenu(){ loading('正在处理,请稍等...'); //拼接常用menuID的逻辑 var num = $('.js_normal_selected li').length; var menuIds=""; var menuStatus=""; if(num>0){ for ( var i=0; i<num; i++){ var menuId = $('.js_normal_selected li').eq(i).attr("id"); var status = $('.js_normal_selected li').eq(i).attr("data-tag"); menuIds+=menuId+","; menuStatus+=status+","; } } console.log("menuIds====="+menuIds); $.ajax({ type : "POST", url : ctx + "/sys/menu/saveUserMenu", data :{menuIds:menuIds,menuStatus:menuStatus}, dataType : "json", success : function(data){ if (data.code=="1"){ window.location.reload(); }else{ closeTip(); alertx(data.message); } } }); } function alertx(b, a) { top.$.jBox.info(b, "提示", { closed: function() { if (typeof a == "function") { a() } } }); top.$(".jbox-body .jbox-icon").css("top", "55px") } </script>
4。难点在于取消选择的常用菜单需要回到原来的节点上
所以设计表的时候需要保存常用菜单的父节点ID
建表语句
-- Create table
create table SYS_USER_MENU
(
MENU_ID VARCHAR2(64) not null,
USER_ID VARCHAR2(64) not null,
MENU_STATUS VARCHAR2(64),
CREATED_BY VARCHAR2(64),
CREATED TIMESTAMP(6)
)
tablespace YZ_BUSI07
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 10M
next 10M
minextents 1
maxextents unlimited
pctincrease 0
);
-- Add comments to the table
comment on table SYS_USER_MENU
is '用户常用菜单权限管理';
-- Add comments to the columns
comment on column SYS_USER_MENU.MENU_ID
is '菜单ID:SEQ_MENU_ID自动生成';
comment on column SYS_USER_MENU.USER_ID
is '用户ID';
comment on column SYS_USER_MENU.MENU_STATUS
is '菜单状态 0 有效 1:删除';
comment on column SYS_USER_MENU.CREATED_BY
is '菜单创建人';
comment on column SYS_USER_MENU.CREATED
is '菜单创建时间';
-- Create/Recreate primary, unique and foreign key constraints
alter table SYS_USER_MENU
add constraint PK_SYS_USER_MENU primary key (MENU_ID, USER_ID)
using index
tablespace YZ_BUSI07
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 10M
next 10M
minextents 1
maxextents unlimited
pctincrease 0
);
实现效果
点击编辑
点击完成
相关文章推荐
- CMPP2.0 SP 端开发设计思路
- Bridge? 一个GIS二次开发中常用的设计模式
- 【架构设计】搭建开发架构的思路
- 20个软件开发常用设计文档大全下载
- 20个软件开发常用设计文档大全下载
- (转)常用软件开发模型及设计方法总结
- Windows应用开发中常用的设计模式
- FPGA开发经验谈-FPGA 设计的四种常用思想与技巧(二)
- VB之数据报表设计器在多层结构开发的应用---技术在更新,而思路则不变
- 游戏开发中常用的设计模式
- [智能设备]SmartPhone开发常用类(三) 自定义菜单(ListView)
- Web网站开发设计中常用的技巧
- Windows应用开发中常用的设计模式
- Visual C# 2008+SQL Server 2005 数据库与网络开发--13.1.3 简单记事本程序菜单设计
- Web网站开发设计中常用的技巧
- Windows应用开发中常用的设计模式
- 做统计报表常用的设计思路
- 通用办公业务平台开发框架研究系列(1)-设计思路-层次划分
- [转载]游戏开发中常用的设计模式
- 【转载】20个软件开发常用设计文档大全下载