<script>
var mainflow = "com.primeton.example.orgtree.OrgManager.flow?_eosFlowAction=";
var tstr = "&_ts="+(new Date()).getTime();
//防止IE缓存,在每次打开时加个时间差的参数,并且可以作为判断是否弹出窗口的标志
//初始化
eventManager.add(window,"load",custInit);
//--初始化树的高度-------------------------------------
function custInit(){
var height = document.body.clientHeight - 22;
var tree = $id("orgTree");
tree.style.height =height;
}
//移动做的准备工作
var isMoveOrCopy = null;
function getMoveInitParam(){
return "<act>"+isMoveOrCopy+"</act>";
}
function _nmCallBack(m,mt){
function callbackImpl(arg){
if( arg == "cancel" ) {
isMoveOrCopy = null ;
}else{
isMoveOrCopy = arg;
$id("orgTree").moveNode(m, mt);
}
}
return callbackImpl;
}
function getInitParam(){
$id("orgTree").beforeMove = function(m,mt) {
var url = mainflow+"options"+tstr;
showModalCenter(url, "", _nmCallBack(m,mt), 280, 120, '移动方式选择');
return ret;
}
return "";
}
function callBack(){
$id("orgTree").getSelectNode().reloadChild();
}
//增加节点
function addOrg(node){
var param = "";
var orgid = node.getProperty("orgid");
if(!node.isRootNode()){
param+="&org/organization/orgid="+orgid;
}
pop("orgInfo",param,"增加子机构");
}
function addPos(node){
var param ="";
var orgid = node.getProperty("orgid");
var positionid = node.getProperty("positionid");
if(positionid==null||positionid==''){
param+="&pos/organization/orgid="+orgid;
}else{
param+="&pos/position/positionid="+positionid;
}
pop("posInfo",param,"增加子岗位");
}
function addEmp(node){
var param = "";
var orgid = node.getProperty("orgid");
var positionid = node.getProperty("positionid");
if(positionid==null||positionid==''){
param+="&partytype=organization&partyid="+orgid;
}else{
param+="&partytype=position&partyid="+positionid;
}
pop("empInfo",param,"增加人员");
}
//往岗位上增加人员
function addEmpToPos(node){
var param="&pos/positionid=";
var positionid = node.getProperty("positionid");
var orgid = node.getProperty("organization/orgid");
param+=positionid+"&pos/organization/orgid="+orgid;
pop("assignEmps",param,"增加人员");
}
//删除节点
function removeNode(node){
if(confirm("确定要删除此节点?选择删除所有子节点将被删除!取消则放弃删除!"))
var orgObj = node.getParent();
var empid = node.getProperty("empid");
var positionid = node.getProperty("positionid");
var orgid = node.getProperty("orgid");
var pposid = orgObj.getProperty("positionid");
var porgid = orgObj.getProperty("orgid");
var ajax = new Ajax("com.primeton.example.orgtree.OrgTree.removeNode.biz");
if(empid!=null&&empid!=''){
ajax.addParam("id",empid);
ajax.addParam("type","employee")
}else if(positionid!=null&&positionid!=''){
ajax.addParam("id",positionid);
ajax.addParam("type","position")
}else{
ajax.addParam("id",orgid);
ajax.addParam("type","organization")
}
if(pposid!=null&&pposid!=''){
ajax.addParam("parentid",pposid);
ajax.addParam("parenttype","position");
}else{
ajax.addParam("parentid",porgid);
ajax.addParam("parenttype","organization");
}
ajax.submit();
if(ajax.isSuccess() && ajax.getValue("root/data/ret")>=0){
reloadSubNode(orgObj);
alert("删除成功!");
}else{
alert("删除失败!");
}
}
//刷新
function reloadSubNode(node){
node.reloadChild();
}
function show(act,params){
var url = mainflow+act;
if(params!=null){
url +=params;
}
$id("info").src = url;
}
function pop(act,params,title){
var url = mainflow + act +tstr+params;
showModalCenter(url,window,callBack,570,400,title);
}
//点击节点
function orgInfo(node){
show("orgInfo","&org/orgid="+node.getProperty("orgid"));
}
function posInfo(node){
show("posInfo","&pos/positionid="+node.getProperty("positionid"));
}
function empInfo(node){
show("empInfo","&emp/empid="+node.getProperty("empid"));
}
</script>
在jsp前台使用Ajax技术的代码
在节点上没有传递数据,使用node.getProperty("字段名称")
在页面上操作 使用异步方式进行页面操作 可以减少页面等待时间
在前台进行JS操作后,需要使用构件进行DB操作
使用show和showModelCenter进行显示时,要注意显示的位置不同,所传递的参数也不相同。如果显示在同一页面的话,要使用iframe进行控制显示