dzzoffice的树型结构用户管理设计
在DzzOffice1.1的开发中,针对用户使用群体重新设计了,机构、部门、用户管理应用。
传统OA,企业相关程序,一般是设置机构-设置部门-设置职位-添加用户这样的步骤。每个步骤分为不同的管理界面。用户管理采用列表的形式,每页显示10条、20条或更多。用户的管理,移动等操作会在不同的界面中切换。感觉操作过程会很繁琐,显示也不直观。
DzzOffice主要针对几人至几百人的中小型团队和企业使用设计,要实现的功能目标主要是:
便捷增 删 移 机构、部门、子部门
便捷增 删 移 用户
批量导入用户
批量导出用户
机构、部门多级管理员设置,减轻系统管理员负担,每个机构部门也可更灵活实现自己的需要。
组织架构、人员信息能直观显示,操作便捷
针对以上目标,最终决定采用树形的结构来设计。
最终开发完成结果截图
通过左上角的图标按钮用户很容看明白,添加机构、添加部门、添加人员、导入用户、搜索、帮助。基本上不需要看操作说明,便可以完成所有的设置操作。用户,部门等移动,只用使用鼠标拖动到需要的位置。包括部门管理员的设置,只需要把人员从左侧人员列表中,拖到右侧框架页面内即可。

首页,操作说明页面。操作说明并不多,主要是介绍拖动与Ctrl建组合可批量操作。

人员管理

搜索

批量导入EXCEL

采用树型结构的管理方式缺点是如果用户数量太多不合适,操作会不方便。整个树的效率也会是问题。开发中测试,整个树结构上万用户操作效率还能接受。拖动操作由于树太长,操作体验会比较难用。但对于一般几十到几百人的管理使用是很方便的。
另外是由于操作太方便,容易造成误操作。例如拖动用户,容易托错位置。好处是,再把他拖回来也很容易。呵呵。
DzzOffice本身的设计,所有的管理功能也都是以应用的方式接入。将来如果又需要,也可以再开发另外一款用户管理的应用来用于大用户量的情况。用户可以根据自己企业的情况来选择使用那款用户管理应用。
dzzoffice的树型结构用户管理设计的更多相关文章
- java树型结构的数据展现设计
在做一个需求管理的页面时,需求的展现是不限层级树型结构,需求下还可以分拆任务,页面要展现的字段有20多个,而且需求采用通用表单设计,db采用大宽表存储,有一百多个字段.目前数据量不大,第一版采用普通的 ...
- JSP中的一个树型结构
看方力勋的javaWeb,采用左右值来表示树型结构(就是俺门的多级分类)表结构 页面代码 <%@ page language="java" import="java ...
- 20-Ubuntu-文件和目录命令-查看目录树型结构-tree
tree 以树状图列出当前目录下的文件目录结构 选项 含义 -d 只显示当前目录的子目录树型结构 显示当前目录的子目录和文件树型结构 例: 1.查看文档目录下的子目录和文件树型结构 2.查看文档目 ...
- 基于 Egg.js 框架的 Node.js 服务构建之用户管理设计
前言 近来公司需要构建一套 EMM(Enterprise Mobility Management)的管理平台,就这种面向企业的应用管理本身需要考虑的需求是十分复杂的,技术层面管理端和服务端构建是架构核 ...
- java实现树型结构样式
import javax.swing.*; import javax.swing.event.*; import javax.swing.tree.*; public class Root exten ...
- Delphi实现树型结构
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- SQL Server 通过“with as”方法查询树型结构
一.with as 公用表表达式 类似VIEW,但是不并没有创建对象,WITH AS 公用表表达式不创建对象,只能被后随的SELECT语句,其作用: 1. 实现递归查询(树形结构) 2. 可以在一个 ...
- Delphi实现树型结构具体实例
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...
- web api+递归树型结构
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Ne ...
随机推荐
- Java:进制转换
进制转换是常常需要的一种数据处理,在java中的一些类中封装了具有转换功能的方法,这个不做介绍.其实,进制之间的转化是通过先位异或&,再位移动>>>的方式实现的. 例如,对于 ...
- Android 音乐播放器之--错误状态下调用导致的异常
MediaPlayer必须在合适的状态下调用合适的方法,否则会出现异常,下面列出常见错误信息和说明: 1.E/MediaPlayer(11310): stop called in state 1 调用 ...
- CentOS Mysql自动备份 .txt
http://fly.b3log.org/articles/2011/10/25/1319505473928.html MySql数据库备份: 说明:我这里要把MySql数据库存放目录/var/lib ...
- Partitioner
partitioner 是map中的数据映射到不同的reduce时的根据.一般情况下,partitioner会根据数据的key来把数据平均分配给不同的reduce,同时保证相同的key分发到同一个re ...
- MatOfPoint作为minAreaRect的参数总是报错"throw new IllegalArgumentException("Incomatible Mat");
MatOfPoint matPt = contours.get(i) minRect.set(i, Imgproc.fitEllipse( new MatOfPoint2f(matPt) ...
- USACO Section 3.2: Sweet Butter
这题我自己是用邻接矩阵+dijskstra方法来求的,第九个例子TLE.网上看了别人的代码,是用邻接表+BFS来完成. 这里可以学到两个小技巧,邻接表的表示方法和INT_MAX的表示方法. /* ID ...
- HDU 4634 Swipe Bo 状态压缩+BFS最短路
将起始点.终点和钥匙统一编号,预处理: 1.起始点到所有钥匙+终点的最短路 2.所有钥匙之间两两的最短路 3.所有钥匙到终点的最短路 将起始点和所有钥匙四方向出发设为起点BFS一遍,求出它到任意点任意 ...
- code manager tools TotoiseSVN安装及使用
TotoiseSVN安装及使用 TotoiseSVN官方下载地址:http://tortoisesvn.net/downloads.html TotoiseSVN安装:很简单,一路直下:就不在这说了, ...
- C#题型补充
让用户输入一个奇数,打印菱形,最长的行内容个数为用户输入的个数,并且由英文字母拼接而成 Console.Write("请输入一个数字:"); try { int a = Conve ...
- winform中关于panel中滚动条和键盘事件几点体会
最近在做winform开发中,遇到几个比较寄售的问题,通过上网查找计和自己琢磨,最终都圆满解决呢! 现在我将谈谈我在项目中遇到的问题集解决方案,以供大家参考! 一.就是我在使用键盘的keydown事件 ...