apzl_leasing/WebContent/InfoManage/ASQuery/TreeMultiOrgUserSelecter.jsp
2018-06-03 22:26:41 +08:00

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"%>