93 lines
3.3 KiB
Plaintext
93 lines
3.3 KiB
Plaintext
<%@page import="com.amarsoft.are.util.json.JSONEncoder"%>
|
|
<%@ page contentType="text/html; charset=GBK"%>
|
|
<%@ include file="/Frame/resources/include/include_begin.jspf"%>
|
|
<script type="text/javascript" src="<%=sWebRootPath%>/Frame/page/js/widget/htmltree.js"></script>
|
|
<%!
|
|
public void insertUser(ArrayList<TreeStory> storys, ArrayList<TreeStory> users) throws Exception {
|
|
for(TreeStory story : storys){
|
|
String sOrgId = (String)story.getAttributes().get("OrgId");
|
|
if(sOrgId == null) continue;
|
|
//System.out.println(story.getText());
|
|
insertUser(story.getStorys(), users);
|
|
for(TreeStory user : users){
|
|
if(!sOrgId.equals(user.getAttributes().get("BelongOrg"))) continue;
|
|
story.getStorys().add(user);
|
|
}
|
|
}
|
|
}
|
|
%>
|
|
<%
|
|
String selected = CurPage.getParameter("selected");
|
|
if(selected == null) selected = "@@";
|
|
else selected = "@"+selected+"@";
|
|
boolean leafOnly = false;
|
|
|
|
ObjectTree tree = new ObjectTree("¹Ü»§ÈË");
|
|
tree.getStorys().addAll(ObjectTreeManager.genTreeNodes(
|
|
JBOFactory.createBizObjectQuery("jbo.awe.ORG_INFO", "select OrgId, OrgName, SortNo from O where SortNo like :SortNo")
|
|
.setParameter("SortNo", CurOrg.getSortNo()+"%").getResultList(false),
|
|
// icon text tips sort
|
|
null, "OrgName", "OrgName", "SortNo",
|
|
// click
|
|
null, null,
|
|
// expand
|
|
"SortNo", new String[]{CurOrg.getSortNo()},
|
|
// check
|
|
"SortNo", null
|
|
));
|
|
insertUser(tree.getStorys(), ObjectTreeManager.genTreeNodes(
|
|
JBOFactory.createBizObjectQuery("jbo.awe.USER_INFO", "select UserId, UserName, BelongOrg, '1' as V.SortNo from O where O.BelongOrg in (select OI.OrgId from jbo.awe.ORG_INFO OI where OI.SortNo like :SortNo)")
|
|
.setParameter("SortNo", CurOrg.getSortNo()+"%").getResultList(false), "UserName", "SortNo"));
|
|
|
|
ObjectTreeManager.setTreeNodesMulti(tree.getStorys(), false, "UserId", null);
|
|
// System.out.println(JSONEncoder.encode(tree));
|
|
%>
|
|
<body style="overflow:hidden;height:100%;width:100%;">
|
|
<button id='search_tree' >²éѯ</button>
|
|
<div id="body" style="overflow:auto;height:100%;"></div>
|
|
</body>
|
|
<script type="text/javascript">
|
|
var treeModel = <%=JSONEncoder.encode(tree)%>;
|
|
//alert(JSON.stringify(treeModel));
|
|
initCheck(treeModel, "<%=selected%>");
|
|
function initCheck(data, selected){
|
|
if(!data || !data.storys) return;
|
|
for(var i = 0; i < data.storys.length; i++){
|
|
initCheck(data.storys[i], selected);
|
|
if(selected.indexOf("@"+data.storys[i]["attributes"]["USERID"]+"@")<0) continue;
|
|
data.storys[i]["check"] = 2;
|
|
}
|
|
}
|
|
var tree = new HtmlTree(document.getElementById("body"), treeModel);
|
|
tree.NodeOnDblclick = function(node){
|
|
node.toggle();
|
|
};
|
|
|
|
function doSure(){
|
|
var nodes = tree.getChecked();
|
|
if(nodes.length == 0 && !confirm("δѡÔñ½Úµã£¬ÊÇ·ñ·ÅÆúÑ¡Ôñ£¿")){
|
|
parent.doClear();
|
|
return;
|
|
}
|
|
|
|
var text = "";
|
|
for(var i = 0; i < nodes.length; i++){
|
|
var sUserId = nodes[i].getAttribute("USERID");
|
|
if(!sUserId || (<%=leafOnly%> && nodes[i].getChildren().length > 0)) continue;
|
|
if(text) text += "@@";
|
|
text += nodes[i].getAttribute("USERNAME")+"@"+sUserId;
|
|
}
|
|
parent.closeDialog(text);
|
|
}
|
|
|
|
function showSearch(){
|
|
tree.showSearch(function(node){
|
|
node.click();
|
|
});
|
|
return false;
|
|
}
|
|
|
|
$("#search_tree").click(showSearch);
|
|
AsLink.setShortcut("Ctrl+F", showSearch);
|
|
</script>
|
|
<%@ include file="/Frame/resources/include/include_end.jspf"%> |