Xianfeng轻量级Java中间件平台:菜单管理
通过菜单管理,可以实现系统菜单的权限控制、用户个性化菜单功能等,当然很多系统支持在线开发,不用专门的开发工具编写代码,通过一些简单的设置就能开发出新的功能,有新功能增加到系统中,菜单管理功能也是必不可少的
平台为了给以后功能扩展留下接口,菜单管理功能包含菜单分类管理和菜单管理两块功能,菜单分类管理功能的引入,主要是为了实现个性化菜单功能打下基础
上周放端午节,开发进度没有跟上,不过大体的架子都已经做出来了,看看菜单分类管理功能的页面吧
整个页面风格都用LigerUI来布局,顶部LOGO区(后期会开发一些快捷链接大图标放在顶部),左侧导航区,右侧功能区
菜单的数据结构具有深度级联的特点,因此前台使用树来展现数据,效果更加直观一些
功能区左侧是菜单树,右侧是树节点编辑区,编辑区的表单没有使用LigerUI的默认的表单风格,而是进行了一些改造,整个表单使用table布局,这样能够适应一些复杂表单的布局,并且扩展实现了表单顶部工具栏(后期会贴图)、底部按钮栏的效果,顶部工具栏、底部按钮位置相对固定,不会随着页面滚动,方便操作
下面看看菜单树一些功能操作
根节点,只能增加、刷新,不能删除,不能删除是因为数据库本身没有保存根节点,根节点是虚拟节点,方便增加一级菜单,因此不能删除
子节点可以增加、删除、刷新,刷新的实现方法是先删除所有的子节点,然后重新加载所有的子节点
叶子节点只能删除,是否叶子节点是菜单的一个属性,通过是否叶子节点的判断,禁用其他右键按钮即可
菜单管理功能的开发,对树的操作遇到一些问题,主要是因为LigerUI的API文档不是很全面,很多API都是通过浏览器调试、查看源码的方式知道的,尽管如此,还是要感谢LigerUI的作者,毕竟很多复杂的功能都已经实现了,作为一个OpenSource来说,能做到如此,已经很ok了
后面还会继续完善Xianfeng平台的功能,最近主要是开发权限管理相关的功能,相对于之前做的那些业务组件开发,功能要复杂一些,页面展现形式也更加多样化
Xianfeng轻量级Java中间件平台:菜单管理的更多相关文章
- Xianfeng轻量级Java中间件平台:权限管理
权限管理:是通过系统对用户的行为进行控制的一套业务规则,可以做得很简单,比如通过硬编码的方式进行控制,也可以做得很复杂,比如通过一些复杂的权限模型去实现一些复杂的权限控制,比如菜单访问权限.按钮操作权 ...
- Xianfeng轻量级Java中间件平台:一期开发计划
关于Xianfeng轻量级Java中间件平台,考虑到需要控制开发周期,通过分期开发的方式来实现一些基础的.常用的功能,这样有利于跟踪开发计划.一期的开发计划,主要实现的目标如下: 系统架构: 1.确定 ...
- Xianfeng轻量级Java中间件平台:流水号管理、组织机构管理
流水号管理:现实中,经常都会和流水号打交道,至于什么是流水号,简而言之,就是按照特定格式要求产生的一个号码,并且总是按照递增的规则生成的,对于要求比较高的业务,需要流水号是连续的,比如移动营业厅排号小 ...
- Xianfeng轻量级Java中间件平台:用户管理
用户管理:简单地说,就是管理系统用户的账号信息.在典型的业务系统中,用户管理往往不包含用户隶属组织机构相关属性(比如部门.岗位等)的维护,而是由组织机构管理专门去维护.因此在用户管理的功能中,主要就维 ...
- Xianfeng轻量级Java中间件平台:功能管理
功能管理:从功能类型来看,不属于用户使用的功能,而属于系统维护使用的功能,因为对于用户来说,是不可见的.功能管理的作用是定义一套规则,用来处理权限等业务,比如常见的菜单权限控制.按钮权限控制等情景 在 ...
- Xianfeng轻量级Java中间件平台:属性管理、字典管理
属性管理:主要功能是维护一些系统定义的.业务定义的属性数据,至于属性是什么,简单的说就是由键key和值value组成的数据,属性查询列表页面如下: 表格实现了直接编辑的功能 字典管理:主要功能是维护一 ...
- Xianfeng轻量级Java中间件平台:基于RBAC模型实现权限控制的原理
首先,白话一下RBAC模型.RBAC是基于角色的访问控制(Role-Based Access Control)的简称.RBAC认为权限授权实际上是Who.What.How的问题.在RBAC模型中,wh ...
- 淘宝JAVA中间件Diamond详解之简介&快速使用 管理持久配置的系统
http://my.oschina.net/u/435621/blog/270483?p=1 淘宝JAVA中间件Diamond详解(一)---简介&快速使用 大家好,今天开始为大家带来我们通用 ...
- Java生鲜电商平台-用户管理的架构与实战
Java生鲜电商平台-用户管理的架构与实战 在电商后台中,用户管理是运营人员管理用户的模块.这里的用户区别于运营人员,会在权限的角色管理中分别阐述.这里的用户包含平台的一般用户,会员用户等.本文将分享 ...
随机推荐
- Android 开发添加控件事件的三种方式
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view ...
- LeetCode: Reverse Nodes in k-Group 解题报告
Reverse Nodes in k-Group Given a linked list, reverse the nodes of a linked list k at a time and ret ...
- tf.reduce_mean
tf.reduce_mean reduce_mean( input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=N ...
- iOS开发如何在一个透明视图上添加不透明的子控件
相信很多同学都会遇到过这个问题, 当我们弹出一个半透明的遮盖层时, 又想在遮盖层上加一些子视图, 这个时候如果你的遮盖层设置了alpha属性, 你会惊讶的发现, 加载遮盖层上的所有子控件都是透明了, ...
- 安卓Activity生命周期(转)
http://www.oschina.net/question/54100_27841 启动:onCreate()->onStart()->onResume 当从Activity界面直接按 ...
- 卡西欧(casio)Fx-5800p程序调试器||模拟器V1.0
一.[背景] 都说这个卡西欧5800p没有模拟器,模拟器其实就是个电脑上面模拟他的界面的东西,但是真正的核心,他不一定有,而且我们测量方面的编程及时有了所谓的外形模拟器也学不会的. 都说这个卡西欧58 ...
- OpenFileDialog对话框Filter属性
OpenFileDialog对话框的Filter属性说明: 首先说明一个示例,分析一下Filter属性的构成:“ Excel文件|*.xls ”,前面的“Excel文件”成为标签,是一个可读的字符串, ...
- Swift 编程思想 阅读笔记
Swift 编程思想,第一部分:拯救小马html, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeM ...
- Java多线程系列——深入重入锁ReentrantLock
简述 ReentrantLock 是一个可重入的互斥(/独占)锁,又称为“独占锁”. ReentrantLock通过自定义队列同步器(AQS-AbstractQueuedSychronized,是实现 ...
- 华为路由器GRE配置
1. 协议简介 gre(generic routing encapsulation,通用路由封装)协议是对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议 ...