You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3 lines
81 KiB
Plaintext

9 months ago
(function($){var settings={},roots={},caches={},_consts={className:{BUTTON:"button",LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch"},event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error"},id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open",CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_setting={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:true,dblClickExpand:true,expandSpeed:"fast",fontCss:{},nameIsHTML:false,selectedMulti:true,showIcon:true,showLine:true,showTitle:true},data:{key:{children:"children",name:"name",title:"",url:"url"},simpleData:{enable:false,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:false,leaf:false}},async:{enable:false,contentType:"application/x-www-form-urlencoded",type:"post",dataType:"text",url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},_initRoot=function(setting){var r=data.getRoot(setting);if(!r){r={};data.setRoot(setting,r)}r[setting.data.key.children]=[];r.expandTriggerFlag=false;r.curSelectedList=[];r.noSelection=true;r.createdNodes=[];r.zId=0;r._ver=(new Date()).getTime()},_initCache=function(setting){var c=data.getCache(setting);if(!c){c={};data.setCache(setting,c)}c.nodes=[];c.doms=[]},_bindEvent=function(setting){var o=setting.treeObj,c=consts.event;o.bind(c.NODECREATED,function(event,treeId,node){tools.apply(setting.callback.onNodeCreated,[event,treeId,node])});o.bind(c.CLICK,function(event,srcEvent,treeId,node,clickFlag){tools.apply(setting.callback.onClick,[srcEvent,treeId,node,clickFlag])});o.bind(c.EXPAND,function(event,treeId,node){tools.apply(setting.callback.onExpand,[event,treeId,node])});o.bind(c.COLLAPSE,function(event,treeId,node){tools.apply(setting.callback.onCollapse,[event,treeId,node])});o.bind(c.ASYNC_SUCCESS,function(event,treeId,node,msg){tools.apply(setting.callback.onAsyncSuccess,[event,treeId,node,msg])});o.bind(c.ASYNC_ERROR,function(event,treeId,node,XMLHttpRequest,textStatus,errorThrown){tools.apply(setting.callback.onAsyncError,[event,treeId,node,XMLHttpRequest,textStatus,errorThrown])})},_unbindEvent=function(setting){var o=setting.treeObj,c=consts.event;o.unbind(c.NODECREATED).unbind(c.CLICK).unbind(c.EXPAND).unbind(c.COLLAPSE).unbind(c.ASYNC_SUCCESS).unbind(c.ASYNC_ERROR)},_eventProxy=function(event){var target=event.target,setting=data.getSetting(event.data.treeId),tId="",node=null,nodeEventType="",treeEventType="",nodeEventCallback=null,treeEventCallback=null,tmp=null;if(tools.eqs(event.type,"mousedown")){treeEventType="mousedown"}else{if(tools.eqs(event.type,"mouseup")){treeEventType="mouseup"}else{if(tools.eqs(event.type,"contextmenu")){treeEventType="contextmenu"}else{if(tools.eqs(event.type,"click")){if(tools.eqs(target.tagName,"span")&&target.getAttribute("treeNode"+consts.id.SWITCH)!==null){tId=($(target).parent("li").get(0)||$(target).parentsUntil("li").parent().get(0)).id;nodeEventType="switchNode"}else{tmp=tools.getMDom(setting,target,[{tagName:"a",attrName:"treeNode"+consts.id.A}]);if(tmp){tId=($(tmp).parent("li").get(0)||$(tmp).parentsUntil("li").parent().get(0)).id;nodeEventType="clickNode"}}}else{if(tools.eqs(event.type,"dblclick")){treeEventType="dblclick";tmp=tools.getMDom(setting,target,[{tagName:"a",attrName:"treeNode"+consts.id.A}]);if(tmp){tId=($(tmp).parent("li").get(0)||$(tmp).parentsUntil("li").parent().get(0)).id;nodeEventType="switchNode"}}}}}}if(treeEventType.length>0&&tId.length==0){tmp=tools.getMDom(setting,target,[{tagName:"a",attrName:"treeNode"+consts.id.A}]);if(tmp){tId=($(t
}else{lineClass.push(consts.line.CENTER)}}}}else{lineClass.push(consts.line.NOLINE)}if(node.isParent){lineClass.push(node.open?consts.folder.OPEN:consts.folder.CLOSE)}else{lineClass.push(consts.folder.DOCU)}return view.makeNodeLineClassEx(node)+lineClass.join("_")},makeNodeLineClassEx:function(node){return consts.className.BUTTON+" "+consts.className.LEVEL+node.level+" "+consts.className.SWITCH+" "},makeNodeTarget:function(node){return(node.target||"_blank")},makeNodeUrl:function(setting,node){var urlKey=setting.data.key.url;return node[urlKey]?node[urlKey]:null},makeUlHtml:function(setting,node,html,content){html.push("<ul id='",node.tId,consts.id.UL,"' class='",consts.className.LEVEL,node.level," ",view.makeUlLineClass(setting,node),"' style='display:",(node.open?"block":"none"),"'>");html.push(content);html.push("</ul>")},makeUlLineClass:function(setting,node){return((setting.view.showLine&&!node.isLastNode)?consts.line.LINE:"")},removeChildNodes:function(setting,node){if(!node){return}var childKey=setting.data.key.children,nodes=node[childKey];if(!nodes){return}for(var i=0,l=nodes.length;i<l;i++){data.removeNodeCache(setting,nodes[i])}data.removeSelectedNode(setting);delete node[childKey];if(!setting.data.keep.parent){node.isParent=false;node.open=false;var tmp_switchObj=$("#"+node.tId+consts.id.SWITCH),tmp_icoObj=$("#"+node.tId+consts.id.ICON);view.replaceSwitchClass(node,tmp_switchObj,consts.folder.DOCU);view.replaceIcoClass(node,tmp_icoObj,consts.folder.DOCU);$("#"+node.tId+consts.id.UL).remove()}else{$("#"+node.tId+consts.id.UL).empty()}},setFirstNode:function(setting,parentNode){var childKey=setting.data.key.children,childLength=parentNode[childKey].length;if(childLength>0){parentNode[childKey][0].isFirstNode=true}},setLastNode:function(setting,parentNode){var childKey=setting.data.key.children,childLength=parentNode[childKey].length;if(childLength>0){parentNode[childKey][childLength-1].isLastNode=true}},removeNode:function(setting,node){var root=data.getRoot(setting),childKey=setting.data.key.children,parentNode=(node.parentTId)?node.getParentNode():root;node.isFirstNode=false;node.isLastNode=false;node.getPreNode=function(){return null};node.getNextNode=function(){return null};if(!data.getNodeCache(setting,node.tId)){return}$("#"+node.tId).remove();data.removeNodeCache(setting,node);data.removeSelectedNode(setting,node);for(var i=0,l=parentNode[childKey].length;i<l;i++){if(parentNode[childKey][i].tId==node.tId){parentNode[childKey].splice(i,1);break}}view.setFirstNode(setting,parentNode);view.setLastNode(setting,parentNode);var tmp_ulObj,tmp_switchObj,tmp_icoObj,childLength=parentNode[childKey].length;if(!setting.data.keep.parent&&childLength==0){parentNode.isParent=false;parentNode.open=false;tmp_ulObj=$("#"+parentNode.tId+consts.id.UL);tmp_switchObj=$("#"+parentNode.tId+consts.id.SWITCH);tmp_icoObj=$("#"+parentNode.tId+consts.id.ICON);view.replaceSwitchClass(parentNode,tmp_switchObj,consts.folder.DOCU);view.replaceIcoClass(parentNode,tmp_icoObj,consts.folder.DOCU);tmp_ulObj.css("display","none")}else{if(setting.view.showLine&&childLength>0){var newLast=parentNode[childKey][childLength-1];tmp_ulObj=$("#"+newLast.tId+consts.id.UL);tmp_switchObj=$("#"+newLast.tId+consts.id.SWITCH);tmp_icoObj=$("#"+newLast.tId+consts.id.ICON);if(parentNode==root){if(parentNode[childKey].length==1){view.replaceSwitchClass(newLast,tmp_switchObj,consts.line.ROOT)}else{var tmp_first_switchObj=$("#"+parentNode[childKey][0].tId+consts.id.SWITCH);view.replaceSwitchClass(parentNode[childKey][0],tmp_first_switchObj,consts.line.ROOTS);view.replaceSwitchClass(newLast,tmp_switchObj,consts.line.BOTTOM)}}else{view.replaceSwitchClass(newLast,tmp_switchObj,consts.line.BOTTOM)}tmp_ulObj.removeClass(consts.line.LINE)}}},replaceIcoClass:function(node,obj,newName){if(!obj||node.isAjaxing){return}var tmpName=obj.attr("class");if(tmpName==undefined){return}var tmpList=tmpName.split("_");switch(newName){case consts.folder.OPEN:case consts.folder.CLOSE:case consts.folder.DOCU:tmpList[tmpList.length-1]=newName;break}obj.attr("class",tmpList.join("_"))}
return true}for(aW=0,aS=P.length;aW<aS;aW++){if(aW==0){S.dragNodeShowBefore=[]}au=P[aW];if(au.isParent&&au.open){i.expandCollapseNode(N,au,!au.open);S.dragNodeShowBefore[au.tId]=true}else{S.dragNodeShowBefore[au.tId]=false}}S.dragFlag=1;S.showHoverDom=false;u.showIfameMask(N,true);var ae=true,ah=-1;if(P.length>1){var ar=P[0].parentTId?P[0].getParentNode()[aM]:z.getNodes(N);aF=[];for(aW=0,aS=ar.length;aW<aS;aW++){if(S.dragNodeShowBefore[ar[aW].tId]!==undefined){if(ae&&ah>-1&&(ah+1)!==aW){ae=false}aF.push(ar[aW]);ah=aW}if(P.length===aF.length){P=aF;break}}}if(ae){C=P[0].getPreNode();G=P[P.length-1].getNextNode()}V=f("<ul class='zTreeDragUL'></ul>");for(aW=0,aS=P.length;aW<aS;aW++){au=P[aW];au.editNameFlag=false;i.selectNode(N,au,aW>0);i.removeTreeDom(N,au);aN=f("<li id='"+au.tId+"_tmp'></li>");aN.append(f("#"+au.tId+p.id.A).clone());aN.css("padding","0");aN.children("#"+au.tId+p.id.A).removeClass(p.node.CURSELECTED);V.append(aN);if(aW==N.edit.drag.maxShowNodeNum-1){aN=f("<li id='"+au.tId+"_moretmp'><a> ... </a></li>");V.append(aN);break}}V.attr("id",P[0].tId+p.id.UL+"_tmp");V.addClass(N.treeObj.attr("class"));V.appendTo("body");J=f("<span class='tmpzTreeMove_arrow'></span>");J.attr("id","zTreeMove_arrow_tmp");J.appendTo("body");N.treeObj.trigger(p.event.DRAG,[a1,N.treeId,P])}if(S.dragFlag==1){if(X&&J.attr("id")==a1.target.id&&M&&(a1.clientX+ac.scrollLeft()+2)>(f("#"+M+p.id.A,X).offset().left)){var a0=f("#"+M+p.id.A,X);a1.target=(a0.length>0)?a0.get(0):a1.target}else{if(X){X.removeClass(p.node.TMPTARGET_TREE);if(M){f("#"+M+p.id.A,X).removeClass(p.node.TMPTARGET_NODE+"_"+p.move.TYPE_PREV).removeClass(p.node.TMPTARGET_NODE+"_"+B.move.TYPE_NEXT).removeClass(p.node.TMPTARGET_NODE+"_"+B.move.TYPE_INNER)}}}X=null;M=null;Y=false;aa=N;var aX=z.getSettings();for(var aO in aX){if(aX[aO].treeId&&aX[aO].edit.enable&&aX[aO].treeId!=N.treeId&&(a1.target.id==aX[aO].treeId||f(a1.target).parents("#"+aX[aO].treeId).length>0)){Y=true;aa=aX[aO]}}var aq=ac.scrollTop(),aZ=ac.scrollLeft(),af=aa.treeObj.offset(),az=aa.treeObj.get(0).scrollHeight,aP=aa.treeObj.get(0).scrollWidth,aY=(a1.clientY+aq-af.top),aL=(aa.treeObj.height()+af.top-a1.clientY-aq),aG=(a1.clientX+aZ-af.left),ap=(aa.treeObj.width()+af.left-a1.clientX-aZ),at=(aY<N.edit.drag.borderMax&&aY>N.edit.drag.borderMin),a2=(aL<N.edit.drag.borderMax&&aL>N.edit.drag.borderMin),aJ=(aG<N.edit.drag.borderMax&&aG>N.edit.drag.borderMin),an=(ap<N.edit.drag.borderMax&&ap>N.edit.drag.borderMin),ag=aY>N.edit.drag.borderMin&&aL>N.edit.drag.borderMin&&aG>N.edit.drag.borderMin&&ap>N.edit.drag.borderMin,aD=(at&&aa.treeObj.scrollTop()<=0),aC=(a2&&(aa.treeObj.scrollTop()+aa.treeObj.height()+10)>=az),aj=(aJ&&aa.treeObj.scrollLeft()<=0),ax=(an&&(aa.treeObj.scrollLeft()+aa.treeObj.width()+10)>=aP);if(a1.target.id&&aa.treeObj.find("#"+a1.target.id).length>0){var ao=a1.target;while(ao&&ao.tagName&&!u.eqs(ao.tagName,"li")&&ao.id!=aa.treeId){ao=ao.parentNode}var aw=true;for(aW=0,aS=P.length;aW<aS;aW++){au=P[aW];if(ao.id===au.tId){aw=false;break}else{if(f("#"+au.tId).find("#"+ao.id).length>0){aw=false;break}}}if(aw){if(a1.target.id&&(a1.target.id==(ao.id+p.id.A)||f(a1.target).parents("#"+ao.id+p.id.A).length>0)){X=f(ao);M=ao.id}}}au=P[0];if(ag&&(a1.target.id==aa.treeId||f(a1.target).parents("#"+aa.treeId).length>0)){if(!X&&(a1.target.id==aa.treeId||aD||aC||aj||ax)&&(Y||(!Y&&au.parentTId))){X=aa.treeObj}if(at){aa.treeObj.scrollTop(aa.treeObj.scrollTop()-10)}else{if(a2){aa.treeObj.scrollTop(aa.treeObj.scrollTop()+10)}}if(aJ){aa.treeObj.scrollLeft(aa.treeObj.scrollLeft()-10)}else{if(an){aa.treeObj.scrollLeft(aa.treeObj.scrollLeft()+10)}}if(X&&X!=aa.treeObj&&X.offset().left<aa.treeObj.offset().left){aa.treeObj.scrollLeft(aa.treeObj.scrollLeft()+X.offset().left-aa.treeObj.offset().left)}}V.css({top:(a1.clientY+aq+3)+"px",left:(a1.clientX+aZ+3)+"px"});var aB=0;var aA=0;if(X&&X.attr("id")!=aa.treeId){var aK=M==null?null:z.getNodeCache(aa,M),aE=(a1.ctrlKey&&N.edit.drag.isMove&&N.edit.drag.isCopy)||(!N.edit.drag.isMove&&N.edit.drag.isCopy),al=!!(C&&M===C.tId),aI=!!(G&&M===G.tId),aU=(au.parentTId&&au.parentTId==M),aH=(aE||!