|
系统启动后,访问应用,系统提示你需要登录。输入默认的系统管理员用户名和密码admin,lingdot。登录后,你将看到metawork系统管理的主界面。 1 实体操作配置展开节点"实体元数据->休假申请",点击唯一的子结点"休假申请"。然后在右边出现的几个Tab页中,选择"操作"Tab页。按照文档最开始的业务分析图上所展示的结果,休假申请这个实体需要有四个操作:列表、编辑、审核、查看。 1.1 列表点击新建按钮,如下填写:
之后点击保存。这个操作配置的含义是在列表操作调用Action中指定的list方法,并且页面显示我们所指定的列。另外,list(以及edit、view、exportExcel等)是一个特殊的操作别名,如果我们不新增这样的操作,那么系统在需要的时候会调用同样采用了这些别名的通用操作(系统管理员点击"通用操作"可以看到这些通用操作)。例如现在我们不建立这个列表操作,那么将来在展现休假申请列表的时候就会采用别名为list的通用操作。通用操作有一般来说普适的操作规则,例如通用列表操作的规则是列出实体的简单属性(也就是不包括那些关联实体的属性,例如休假申请的提出人将不会在列表中显示)。 1.2 编辑然后我们以同样的方法建立编辑操作,按照需求,这个操作会在普通职员提出休假申请的时候被使用:
我们实现了一定程度的表单控制,例如操作用metawork风格写出来的表单中,操作规则里面没有勾选的属性将会被自动隐藏。 最后,根据需求设定,职员提出申请的时候申请人应该就是自己,于是在操作规则上我们需要为提出人->编号设置一个默认值。选中提出人->编号节点,点击下面的节点属性按钮,然后在出现的对话框中,点击新建按钮,在新出现的配置行中,填写属性名为default,值为%{#session.currentUser.id}。最后采用相同的方式,给提出人->名称节点也增加一个default属性,值为%{#session.currentUser.name}。含义很明显,是让这两个属性的初始值设置为当前用户的编号和名字。 然后保存这个操作。 1.3 审核然后以同样的方法建立审核操作,这个操作将在审核人员打开休假申请的时候使用:
在审核的时候,审核人员应该不可以修改提出人填写休假申请信息,所以:用Ctrl键选中"提出时间、请假时间、请假缘由、提出人、提出人->名称"节点,然后点击"设置属性"按钮,属性名称写readOnly,值写true。然后保存这个操作。 1.4 查看最后以同样的方法建立查看操作,按照需求,这个操作将在普通职员打开已经提交的休假申请的时候使用:
在查看休假申请的时候,我们需要将这些属性全部设置为只读。按着Ctrl键选中全部已经勾选的节点,然后点击"设置属性"按钮,属性名称写readOnly,值写true。然后保存这个操作。 经过以上过程我们建立了所有需要的操作规则。 2 功能然后,点击功能Tab页,我们来建立功能。 2.1 休假申请功能在列表中可以看到系统中已经默认加入了一个叫做application的功能,我们设定这是普通职员在管理自己的休假申请的时候使用的功能。打开他,我们需要修改一下属性:
2.2 审核保存上面的休假申请功能后,然后我们新建另外一个功能,也就是审核人员所使用的功能:
3 视图功能建立好之后,我们来配置视图。 3.1 编辑视图点击视图Tab页,点击新建按钮,新建一个视图配置:
3.2 审核视图保存后,再次点击新建,建立审核视图:
3.1 查看视图保存后,再次点击新建,建立查看视图:
如果不针对一个操作建立视图配置,那么默认会使用实体元数据的folder属性指定的目录下的"实体别名-操作别名.jsp"文件。 4 机构视图建立好之后,我们开始维护行为主题:机构、角色、人员。 点击左边的组织机构节点,新建一个机构,名称为"好梦一日游公司",保存之。然后展开组织机构节点,点击出现的"好梦一日游公司"子结点(如果没有,那么可以点击一下刷新节点树的按钮,或者重新登录)。右边的工作区终会出现人员、角色、子机构等Tab页。点击子机构Tab页,然后用同样的方法增加"忽悠部"、"善后部"两个子机构。 5 角色点击角色Tab页。 5.1 普通职员角色新建第一个角色,名称为普通职员,别名为ROLE_HM_MEMBER,序号为1。选中根节点,然后点击新增按钮,添加一个节点,名称为"休假申请",然后选中该节点,点击节点属性按钮,在出现的属性对话框中,增加一项属性配置,名称为function,值为application。含义是点击这个节点的时候使用application功能。保存。 5.2 领导角色新建第二个角色,名称为领导,别名为ROLE_HM_LEADER,序号为2。选中根节点,然后点击新增按钮,添加一个节点,名称为"休假申请审核",然后选中该节点,点击节点属性按钮,在出现的属性对话框中,增加一项属性配置,名称为function,值为check。含义是点击这个节点的时候使用check功能,再增加一个属性配置,名称为groupBy,值为checkResult,含义是按照审核结果分组显示休假申请。保存。 6 人员下面我们来增加人员。 点击好梦一日游公司的人员Tab页,新增一个人员,名字为尤优,登录名为youyou,密码为lingdot。然后保存。刷新人员列表后,选中新出现的尤优条目,点击维护角色按钮,再出来的页面中,给尤优赋予领导和全体人员两个角色。保存后再回到人员Tab页,打开尤优,点击"同步节点树"按钮,于是可以看到领导和全体人员两个角色的节点被同步到了尤优的节点树上。点击保存。 以同样的方法在忽悠部中添加一个人员,名字为大忽悠,登录名dahuyou,密码lingdot。然后保存。之后维护其角色,赋予全体人员和普通职员两个角色,然后同样同步该人员的节点树并保存。 7 在列表中根据不同功能使用不同操作最后,为了实现不同状态的休假申请再打开的时候,使用不同的操作,我们需要写一个application-list.js,放在vocation/script目录下。在休假申请的列表页面,会自动载入实体folder配置指定的目录下的script子目录下的"实体别名-操作别名.js"这样一个文件。文件内容如下: metawork.listConfig.add("initTools",function(tools){
tools.removeKey("delete");
if(metawork.functionAlias=="check"){//如果当期那功能是审核
tools.removeKey("new");
tools.removeKey("open");
tools.removeKey("copy");
tools.insert(0,"open",{
text: '打开',
handler : checkOrView //打开按钮调用checkOrView方法
});
}
else{//如果当前功能是application
tools.removeKey("open");
tools.insert(1,"open",{
text: '打开',
handler : editOrView
});
}
});
//双击某一行的时候,同样进行功能判断
metawork.listConfig.add("rowDBClickHandler",function(grid){
if(metawork.functionAlias=="check")
checkOrView();
else if(metawork.functionAlias=="application")
editOrView();
});
//如果审核状态为"待审核",那么调用审核操作,否则调用查看操作
function checkOrView(){
var selected = metawork.grid.getSelectionModel().getSelected();
if(selected==null){
Ext.Msg.alert("错误","请选择申请!");
return;
}
var id = selected.get("id");
if(selected.get("checkResult")=="待审核")
parent.addTab(metawork.contextPath + "/check/check.xhtml?id=" + id, "休假申请",true,"check-" + id);
else
parent.addTab(metawork.contextPath + "/check/view.xhtml?id=" + id, "休假申请",true,"edit-" + id);
}
//如果审核人为空,则调用编辑操作,否则调用查看操作
function editOrView(){
var selected = metawork.grid.getSelectionModel().getSelected();
if(selected==null){
Ext.Msg.alert("错误","请选择申请!");
return;
}
var id = selected.get("id");
var checker = selected.get("checker.name");
if(checker == "")
parent.addTab(metawork.contextPath + "/application/edit.xhtml?id=" + id, "休假申请",true,"edit-" + id);
else
parent.addTab(metawork.contextPath + "/application/view.xhtml?id=" + id, "休假申请",true,"edit-" + id);
}
最终实现了如下功能: 对于普通职员,使用application功能的时候,如果没填写过审核人,那么一直可以编辑休假申请,如果填写了审核人,那么就只能查看了。 到这里,所有的开发、配置工作完成了。你可以使用dahuyou以及youyou账户登录,体验一下系统了。 8.总结//TODO 总结... |
导航 团队
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
休假申请(下)
(没有)