f8071bc2ca3a265c2ba7ef7f5c9d7dfb4db7e4f6.svn-base
8.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<html>
<head>
<title>角色管理</title>
<meta name="decorator" content="default"/>
<%@include file="/WEB-INF/views/include/treeview.jsp" %>
<script type="text/javascript">
$(document).ready(function(){
$("#name").focus();
$("#inputForm").validate({
rules: {
name: {remote: "${ctx}/sys/role/checkName?oldName=" + encodeURIComponent("${role.name}")},
enname: {remote: "${ctx}/sys/role/checkEnname?oldEnname=" + encodeURIComponent("${role.enname}")}
},
messages: {
name: {remote: "角色名已存在"},
enname: {remote: "英文名已存在"}
},
submitHandler: function(form){
var ids = [], nodes = tree.getCheckedNodes(true);
for(var i=0; i<nodes.length; i++) {
ids.push(nodes[i].id);
}
$("#menuIds").val(ids);
var ids2 = [], nodes2 = tree2.getCheckedNodes(true);
for(var i=0; i<nodes2.length; i++) {
ids2.push(nodes2[i].id);
}
$("#officeIds").val(ids2);
loading('正在提交,请稍等...');
form.submit();
},
errorContainer: "#messageBox",
errorPlacement: function(error, element) {
$("#messageBox").text("输入有误,请先更正。");
if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
error.appendTo(element.parent().parent());
} else {
error.insertAfter(element);
}
}
});
var setting = {check:{enable:true,nocheckInherit:true},view:{selectedMulti:false},
data:{simpleData:{enable:true}},callback:{beforeClick:function(id, node){
tree.checkNode(node, !node.checked, true, true);
return false;
}}};
// 用户-菜单
var zNodes=[
<c:forEach items="${menuList}" var="menu">{id:"${menu.id}", pId:"${not empty menu.parent.id?menu.parent.id:0}", name:"${not empty menu.parent.id?menu.name:'权限列表'}"},
</c:forEach>];
// 初始化树结构
var tree = $.fn.zTree.init($("#menuTree"), setting, zNodes);
// 不选择父节点
tree.setting.check.chkboxType = { "Y" : "ps", "N" : "s" };
// 默认选择节点
var ids = "${role.menuIds}".split(",");
for(var i=0; i<ids.length; i++) {
var node = tree.getNodeByParam("id", ids[i]);
try{tree.checkNode(node, true, false);}catch(e){}
}
// 默认展开全部节点
tree.expandAll(true);
// 用户-机构
var zNodes2=[
<c:forEach items="${officeList}" var="office">{id:"${office.id}", pId:"${not empty office.parent?office.parent.id:0}", name:"${office.name}"},
</c:forEach>];
// 初始化树结构
var tree2 = $.fn.zTree.init($("#officeTree"), setting, zNodes2);
// 不选择父节点
tree2.setting.check.chkboxType = { "Y" : "ps", "N" : "s" };
// 默认选择节点
var ids2 = "${role.officeIds}".split(",");
for(var i=0; i<ids2.length; i++) {
var node = tree2.getNodeByParam("id", ids2[i]);
try{tree2.checkNode(node, true, false);}catch(e){}
}
// 默认展开全部节点
tree2.expandAll(true);
// 刷新(显示/隐藏)机构
refreshOfficeTree();
$("#dataScope").change(function(){
refreshOfficeTree();
});
});
function refreshOfficeTree(){
if($("#dataScope").val()==9){
$("#officeTree").show();
}else{
$("#officeTree").hide();
}
}
</script>
</head>
<body>
<ul class="nav nav-tabs">
<li><a href="${ctx}/sys/role/">角色列表</a></li>
<li class="active"><a href="${ctx}/sys/role/form?id=${role.id}">角色<shiro:hasPermission name="sys:role:edit">${not empty role.id?'修改':'添加'}</shiro:hasPermission><shiro:lacksPermission name="sys:role:edit">查看</shiro:lacksPermission></a></li>
</ul><br/>
<form:form id="inputForm" modelAttribute="role" action="${ctx}/sys/role/save" method="post" class="form-horizontal">
<form:hidden path="id"/>
<sys:message content="${message}"/>
<div class="control-group">
<label class="control-label">归属机构:</label>
<div class="controls">
<sys:treeselect id="office" name="office.id" value="${role.office.id}" labelName="office.name" labelValue="${role.office.name}"
title="机构" url="/sys/office/treeData" cssClass="required"/>
</div>
</div>
<div class="control-group">
<label class="control-label">角色名称:</label>
<div class="controls">
<input id="oldName" name="oldName" type="hidden" value="${role.name}">
<form:input path="name" htmlEscape="false" maxlength="50" class="required"/>
<span class="help-inline"><font color="red">*</font> </span>
</div>
</div>
<div class="control-group">
<label class="control-label">英文名称:</label>
<div class="controls">
<input id="oldEnname" name="oldEnname" type="hidden" value="${role.enname}">
<form:input path="enname" htmlEscape="false" maxlength="50" class="required"/>
<span class="help-inline"><font color="red">*</font> 工作流用户组标识</span>
</div>
</div>
<div class="control-group">
<label class="control-label">角色类型:</label>
<div class="controls"><%--
<form:input path="roleType" htmlEscape="false" maxlength="50" class="required"/>
<span class="help-inline" title="activiti有3种预定义的组类型:security-role、assignment、user 如果使用Activiti Explorer,需要security-role才能看到manage页签,需要assignment才能claim任务">
工作流组用户组类型(security-role:管理员、assignment:可进行任务分配、user:普通用户)</span> --%>
<form:select path="roleType" class="input-medium">
<form:option value="assignment">任务分配</form:option>
<form:option value="security-role">管理角色</form:option>
<form:option value="user">普通角色</form:option>
</form:select>
<span class="help-inline" title="activiti有3种预定义的组类型:security-role、assignment、user 如果使用Activiti Explorer,需要security-role才能看到manage页签,需要assignment才能claim任务">
工作流组用户组类型(任务分配:assignment、管理角色:security-role、普通角色:user)</span>
</div>
</div>
<div class="control-group">
<label class="control-label">是否系统数据:</label>
<div class="controls">
<form:select path="sysData">
<form:options items="${fns:getDictList('yes_no')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
</form:select>
<span class="help-inline">“是”代表此数据只有超级管理员能进行修改,“否”则表示拥有角色修改人员的权限都能进行修改</span>
</div>
</div>
<div class="control-group">
<label class="control-label">是否可用</label>
<div class="controls">
<form:select path="useable">
<form:options items="${fns:getDictList('yes_no')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
</form:select>
<span class="help-inline">“是”代表此数据可用,“否”则表示此数据不可用</span>
</div>
</div>
<div class="control-group">
<label class="control-label">数据范围:</label>
<div class="controls">
<form:select path="dataScope" class="input-medium">
<form:options items="${fns:getDictList('sys_data_scope')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
</form:select>
<span class="help-inline">特殊情况下,设置为“按明细设置”,可进行跨机构授权</span>
</div>
</div>
<div class="control-group">
<label class="control-label">角色授权:</label>
<div class="controls">
<div id="menuTree" class="ztree" style="margin-top:3px;float:left;"></div>
<form:hidden path="menuIds"/>
<div id="officeTree" class="ztree" style="margin-left:100px;margin-top:3px;float:left;"></div>
<form:hidden path="officeIds"/>
</div>
</div>
<div class="control-group">
<label class="control-label">备注:</label>
<div class="controls">
<form:textarea path="remarks" htmlEscape="false" rows="3" maxlength="200" class="input-xlarge"/>
</div>
</div>
<div class="form-actions">
<c:if test="${(role.sysData eq fns:getDictValue('是', 'yes_no', '1') && fns:getUser().admin)||!(role.sysData eq fns:getDictValue('是', 'yes_no', '1'))}">
<shiro:hasPermission name="sys:role:edit"><input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/> </shiro:hasPermission>
</c:if>
<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
</div>
</form:form>
</body>
</html>