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 ...
随机推荐
- [iOS]为什么不要在init初始化方法里调用self.view
首先.如果你调用self.view的时候,就会调用view的getter方法, 这个时候,view是空的,那么系统就会自动给你创建一个view,然后就会触发ViewDidLoad方法.那么这个时候,如 ...
- MyBatis主键返回
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能. 比如在表的关联关系中,将数据插入主 ...
- Linux(CentOS)文件操作命令
touch命令 — 功能说明:生成新的空文件或更改现有文件的时间戳. — 命令格式:touch [参数] <文件> … — 常用参数: -a : 只更改访问时间. -m : 只更改修改时间 ...
- PenetrationTest
一.渗透测试是什么 渗透测试(PenetrationTest)是对安全情况最客观.最直接的评估方式,主要是模拟黑客的攻击方法对系统和网络进行非破坏性质的攻击性测试,在保证整个渗透测试过程都在可以控制和 ...
- JSP下载txt 和 Excel两种文件
JSP下载txt 和 Excel两种文件 jsp 下载txt文件和excel文件 jsp 下载txt文件和excel文件 最近做了个用jsp下载的页面 将代码贴出来 权作记录吧 1 下载txt文件 ...
- 利用Hessian如何实现Webservice
利用Hessian如何实现Webservice [大] [中] [小] 发布人:圣才学习网 发布日期:2012-08-18 14:02 共966人浏览 Hessian是 一个轻量级的remotin ...
- chrome开发配置(三)安装开发工具
1.安装 VisualStudio2010,设置环境变量 GYP_MSVS_VERSION=2010 2.安装 VisualStudio2010 SP1 3.安装 windows 8.0 sdk(不要 ...
- [转载]TexturePacker 如何使用自带的加密功能及在cocos2dx中的使用
在cocos2dx中使用纹理图集是非常节省资源的,在这里推荐 TexturePacker,而且 TexturePacker工具的加密接口也非常的好用,下面就来介绍一下... TexturePacker ...
- 【笨嘴拙舌WINDOWS】BMP图片浏览器
要将文件显示成图片这其中需要经过 1.将磁盘文件内容读取到内存: 2.将文件对应内存里包含的像素为以及像素信息转化为显示驱动器能理解的格式: 3.将转化过后的内存送到显卡的缓存区 4.显示器读取缓存现 ...
- HDU 1025 (LIS+二分) Constructing Roads In JGShining's Kingdom
这是最大上升子序列的变形,可并没有LIS那么简单. 需要用到二分查找来优化. 看了别人的代码,给人一种虽不明但觉厉的赶脚 直接复制粘贴了,嘿嘿 原文链接: http://blog.csdn.net/i ...