var gis = gis || {}; gis.tree = function() { }; gis.tree.autohide0Node=true; gis.tree.gqshowcbinbw=!true; /* * 用于对 Ajax 返回数据进行预处理的函数。[setting.async.enable = true 时生效] */ gis.tree.filter = function(treeId, parentNode, childNodes) { //console.log('>2>parentNode:',parentNode); //childNodes ={"children":[{"children":[{"children":[],"iconSkin":"","id":"402881e750ef634b0150ef64cce10001","isParent":false,"name":"2","open":false,"pId":"","type":""},{"children":[],"iconSkin":"","id":"402881e750ec68340150ec68af3c0000","isParent":true,"name":"11111","open":false,"pId":"","type":""},{"children":[],"iconSkin":"","id":"402881e750eed3aa0150eed4fe510001","isParent":true,"name":"市局下","open":false,"pId":"","type":""},{"children":[],"iconSkin":"","id":"402881e750ebc9ca0150ebede1a60006","isParent":true,"name":"港口局","open":false,"pId":"","type":""},{"children":[],"iconSkin":"","id":"402881e750ef34c80150ef35d9990001","isParent":true,"name":"222","open":false,"pId":"","type":""}],"iconSkin":"","id":"402881e750dab7fa0150dabe66630002","isParent":false,"name":"市局","open":false,"pId":"","type":""},{"children":[{"children":[],"iconSkin":"","id":"402881e750ef78f80150ef7de1940001","isParent":false,"name":"2","open":false,"pId":"","type":""}],"iconSkin":"","id":"402881e750ef78f80150ef7bf30c0000","isParent":false,"name":"2","open":false,"pId":"","type":""}],"iconSkin":"","id":"01","isParent":false,"name":"行政单位信息","open":true,"pId":"","type":""}; //alert(JSON.stringify(childNodes)); //alert(childNodes); //childNodes={"iconSkin":"","id":"01","isParent":true,"name":"行政单位信息","open":true,"pId":"","type":"","children":[{"iconSkin":"","id":"01","isParent":true,"name":"行政单位","open":false,"pId":"","type":""}]} //childNodes=[{"iconSkin":"","id":"01","isParent":true,"name":"行政单位","open":false,"pId":"","type":""}]; /* if(parentNode&&parentNode.treeNodeType){ if(parentNode.treeNodeType='GK_BASIC_JSJY_GK_GK'){ childNodes=[{"iconSkin":"","id":"01","isParent":true,"name":"行政单位","open":false,"pId":"","type":""}] } } */ //debugger; /* if(childNodes){ if(!parentNode){ alert(JSON.stringify(parentNode)); }else{ parentNode.name="xxx"; for(var ii=0;ii22222>gis.script.cbdataInfostatistics:',gis.script.cbdataInfostatistics); //&&(node.treeNodeType=='GK_BASIC_JSJY_JYR'||node.treeNodeType=='GK_BASIC_JSJY_JYR_BW') /* if(parentNode&&parentNode.treeNodeType=="GK_BASIC_JSJY_GK_GQ"){ childNodes=gis.tree.addcbtotree(parentNode,childNodes,parentNode.treeNodeType,("V"+parentNode.code)); } */ return childNodes; } /* * 设置 zTree 是否显示节点的图标 */ gis.tree.showIconForTree = function(treeId, treeNode) { if(treeNode){ //alert(treeNode.iconSkin); return !gis.script.isBlank(treeNode.iconSkin); } return false; //return !treeNode.isParent; } /* * 调用父内框架的clickDrawFillMarker方法,绘画船舶 */ gis.tree.parentdrawFillMarker= function(treeNode){ if(parent&&parent.gis&&parent.gis.script&&parent.gis.script.clickDrawFillMarker){ parent.gis.script.clickDrawFillMarker(treeNode); } } /* * 调用父内框架的parentopenPop_Boat方法,取消船舶选择状态 */ gis.tree.parentopenPop_Boat= function(treeNode,runPop){ if(parent&&parent.gis&&parent.gis.script&&parent.gis.script.openPop_Boat){ parent.gis.script.openPop_Boat(treeNode,runPop); } } /* * 树节点点击事件 */ gis.tree.nodeClick = function(event, treeId, treeNode, clickFlag) { //alert(parent.gis.script.setMapCenter);return; if(parent&&parent.gis&&parent.gis.script){ parent.gis.script.removeAllPopup(); } var parentgisLayerinfo=gis.tree.parentgisLayerinfo(); var layerloadover=gis.tree.parentgisLayerinfo(); if(parentgisLayerinfo&&layerloadover){ if(typeof(treeNode.id)!="undefined"){ var issetCenter=false; if(treeNode.id==0){ //map.setCenter(new SuperMap.LonLat(lon, lat), 0); //parent.gis.script.loadcbdataService(parent.gis.script.phase.refresh);return; var info={}; info.lon=119.66; info.lat=32.57; info.zoomSize=0; gis.tree.parentsetMapCenter(info); issetCenter=true; }else if(treeNode.treeNodeType&&treeNode.treeNodeType=="HS_AIS"){ if(parent&&parent.gis&&parent.gis.script&&parent.gis.script.boatrefreshInfo){ var cbobj=parent.gis.script.boatrefreshInfo[treeNode.mmsi]; if(cbobj){ if(gis.script.isNum(cbobj.lon)&&gis.script.isNum(cbobj.lat)){ var info={}; info.lon=cbobj.lon; info.lat=cbobj.lat; info.zoomSize=10; gis.tree.parentsetMapCenter(info); var featuredata=jQuery.extend(true, {}, treeNode); featuredata.attributes={onID:treeNode.name,onMMSI:treeNode.mmsi}; featuredata.attributes.shipLON=cbobj.lon; featuredata.attributes.shipLAT=cbobj.lat; gis.tree.parentopenPop_Boat(featuredata); } } } }else if(treeNode.treeNodeType&&treeNode.treeNodeType=="HS_AIS2"){ if(gis.script.isNum(treeNode.lon)&&gis.script.isNum(treeNode.lat)){ var info={}; info.lon=treeNode.lon; info.lat=treeNode.lat; info.zoomSize=10; gis.tree.parentsetMapCenter(info); } //boatLayer.removeAllFeatures(); //gis.script.drawFillMarker(boatLayer,treeNode); //gis.tree.parentdrawFillMarker(treeNode); var featuredata=jQuery.extend(true, {}, treeNode); featuredata.attributes={onID:treeNode.name,onMMSI:treeNode.mmsi}; //gis.tree.parentopenPop_Boat(featuredata,false); gis.tree.parentopenPop_Boat(featuredata); }else{ //alert(treeNode.gisinfo); //map.zoomToScale(0.000001180591620); //alert(treeNode.treeNodeType); //console.log("parentgisLayerinfo--->",parentgisLayerinfo); if(treeNode.treeNodeType&&parentgisLayerinfo[treeNode.treeNodeType]){ var objdata={} if(!gis.script.isBlank(treeNode.gisinfo)){ var gobj=eval("("+treeNode.gisinfo+")"); //objdata.id=gobj.smid; objdata.zoomto=gobj.zoomto; } if(!gis.script.isBlank(treeNode.code)){ objdata.id=treeNode.code; } //alert(objdata.id) if(objdata.id){ var info=parentgisLayerinfo[treeNode.treeNodeType][objdata.id]; if(info&&typeof(info.lon)!="undefined"&&typeof(info.lat)!="undefined"){ info.zoomSize=objdata.zoomto||info.zoom||6; gis.tree.parentsetMapCenter(info); issetCenter=true; }else{ gis.tree.loadgisService(treeNode,objdata); } } } /* if(g){ var gobj=eval("("+g+")"); if(gobj&&gobj.smid){ if(treeNode.treeNodeType&&parentgisLayerinfo[treeNode.treeNodeType]){ var info=parentgisLayerinfo[treeNode.treeNodeType][gobj.smid]; if(info&&typeof(info.lon)!="undefined"&&typeof(info.lat)!="undefined"){ map.setCenter(new SuperMap.LonLat(info.lon, info.lat),gobj.zoomto||5); } } } } */ } if(!issetCenter){ //alert("缺少关联数据,定位失败..."); } } } return layerloadover; } /* gis.tree.loadgisService = function(treeNode,objdata){ //alert(treeNode.treeNodeType+"--"+objdata.id); var dataServices=gisConfigBean.dataconfig; if(dataServices){ gis.script.consolelog('dataServices',dataServices); for(var n in dataServices){ var data=gisConfigBean.dataconfig[n]; if(data.gisLayerinfoKey&&treeNode.treeNodeType&&treeNode.treeNodeType==data.gisLayerinfoKey){ //alert(treeNode.treeNodeType+"--"+objdata.id); var originaldata = gisConfigBean.dataconfig[n]; var data=jQuery.extend(true, {}, originaldata); if(data.Model&&data.Model[gis.script.modelid]){ var model=data.Model[gis.script.modelid]; data.datasetNames=data.datasetNames.split(","); data.fields=data.fields.split(","); data.cachedata=model.cachedata||data.cachedata; data.zoom=model.zoom||data.zoom; data.attributeFilter=data.gisLayerinfoAttrKey+"="+objdata.id; data.treelocationHighlight=model.treelocationHighlight||"false"; data.url=data.url||defdataUrl; //alert(data.attributeFilter); gis.tree.loadServicetreelocation(data); } break; } } } } */ gis.tree.beforeAsync = function(treeId, treeNode){ if(treeNode){ //otherParam.ttt.xx='xxx'; //alert(); } } gis.tree.parentcbdataInfostatistics= function(){ if(parent&&parent.gis&&parent.gis.script&&parent.gis.script.cbdataInfostatistics){ return parent.gis.script.cbdataInfostatistics; } return {}; } gis.tree.getZTreeObj = function(){ return $.fn.zTree.getZTreeObj("tree"); } /* * 用于捕获异步加载正常结束的事件回调函数。如果设置了 setting.callback.beforeAsync 方法,且返回 false,将无法触发 onAsyncSuccess / onAsyncError 事件回调函数。 */ gis.tree.onAsyncSuccess = function(event, treeId, treeNode, msg){ //alert(gis.tree.parentcbdataInfostatistics()); gis.script.cbdataInfostatistics=gis.tree.parentcbdataInfostatistics(); var treeObj = $.fn.zTree.getZTreeObj(treeId); if(!treeNode){ if(treeObj){ var nodes = treeObj.getNodes(); /* for(var i in nodes){ var node=nodes[i]; alert(node.name); node.name="xxx"; treeObj.updateNode(node); } */ //debugger; gis.tree.updatecb(treeObj,nodes,null); } }else if(treeNode.treeNodeType&&treeNode.treeNodeType=="GK_BASIC_JSJY_GK_GQ"){ //gis.script.loadConfigXmlBWService("bwsjServices",{id:"759DF99526FD4F7F934EF2DEC3C6CFF3",code:'32100104'}); //alert(treeNode.name); //gis.tree.addcbtotree(treeNode,treeNode.treeNodeType,("V"+treeNode.code)); parent.gis.script.loadConfigXmlBWService("bwsjServices",treeNode); } else{ gis.tree.updatecb(treeObj,treeNode.children,treeNode); } } /* * 统计数据 */ gis.tree.getcbinfo=function(info,key,code){ var s1=0; gis.script.cbdataInfostatistics=gis.tree.parentcbdataInfostatistics(); if(info){ if(!code){ if(gis.script.cbdataInfostatistics[key]){ for(var kk in gis.script.cbdataInfostatistics[key]){ var v=gis.script.cbdataInfostatistics[key][kk]; if(v){ s1=s1+v.length; } } } }else{ if(info[key]){ var v=info[key][code]; if(v){ s1=v.length } } } } return s1; } /* * 根据动态船舶数据,统计数据,重新绘制tree。动态添加船舶节点。 */ gis.tree.updatecb = function(treeObj,nodes,pnode){ gis.script.cbdataInfostatistics=gis.tree.parentcbdataInfostatistics(); //console.log("1.gis.script.cbdataInfostatistics",gis.script.cbdataInfostatistics); if(nodes&&nodes.length){ //debugger; //alert(nodes.length); for(var i in nodes){ var node=nodes[i]; //treeObj.showNode(node); if(node.treeNodeType&&node.treeNodeType=="HS_AIS"){ continue; } if(node.open){ //gis.tree.updatecb(treeObj,node.children); } gis.tree.updatecb(treeObj,node.children); //进出港船舶总数:系泊总数:靠泊危化品船 var newName=[]; var s1=0,s2=0,s3=0; if(!node.treeNodeType){ s1=gis.tree.getcbinfo(gis.script.cbdataInfostatistics,"GK_BASIC_JSJY_GK_GK",null); s2=gis.tree.getcbinfo(gis.script.cbdataInfostatistics,"GK_BASIC_JSJY_GK_GK_STATUS",null); s3=gis.tree.getcbinfo(gis.script.cbdataInfostatistics,"GK_BASIC_JSJY_GK_GK_DANGER",null); newName.push("进出港:"); newName.push(s1); newName.push(",系泊:"); newName.push(s2); newName.push(",危化品:"); newName.push(s3); }else{ //GK_BASIC_JSJY_GK_GK_320001 var vkey="V"+node.code; //console.log('>3>vkey:',vkey); s1=gis.tree.getcbinfo(gis.script.cbdataInfostatistics,node.treeNodeType,vkey); s2=gis.tree.getcbinfo(gis.script.cbdataInfostatistics,(node.treeNodeType+"_STATUS"),vkey); s3=gis.tree.getcbinfo(gis.script.cbdataInfostatistics,(node.treeNodeType+"_DANGER"),vkey); if(!node.oldname){ node.oldname=node.name; } var nodename=node.oldname; if(gis.script.isBlank(nodename)){ nodename=""; } newName.push(nodename); newName.push("("); newName.push(s1); newName.push(","); newName.push(s2); newName.push(","); newName.push(s3); newName.push(")"); } if(gis.tree.autohide0Node&&node.treeNodeType&&node.treeNodeType=='GK_BASIC_JSJY_GK_GQ'){ if(s1<=0){ node.isParent=false; }else{ node.isParent=true; } } if(node.treeNodeType&&node.treeNodeType=='GK_BASIC_JSJY_JYR_BW'){ //console.log('>2>node.treeNodeType:',node.treeNodeType); //console.log('>3>vkey:',vkey); if(s1>0){ node.isParent=true; //node.open=false; //node.children=gis.tree.addcbtotree(node,[],node.treeNodeType,("V"+node.code)); //alert(node.code) //node.children.push({"iconSkin":"","id":"01","isParent":false,"name":"行政单位","open":false,"pId":"","type":""}) //treeObj.addNodes(node, {id:(100), pId:pnode.id, name:"new node"},true); gis.tree.addcbtotreeApi(treeObj,node,node.treeNodeType,("V"+node.code)); }else{ node.isParent=false; } //alert(node.isParent); } node.name=newName.join(""); if(gis.tree.autohide0Node){ if(node.treeNodeType&&(node.treeNodeType=='GK_BASIC_JSJY_JYR'||node.treeNodeType=='GK_BASIC_JSJY_JYR_BW')){ //alert(1); if(s1<=0){ treeObj.hideNode(node); continue; }else{ treeObj.showNode(node); } } } treeObj.updateNode(node); } } } /* * 动态添加船舶节点。 */ gis.tree.addcbtotreeApi = function(treeObj,node,key,vkey){ gis.script.cbdataInfostatistics=gis.tree.parentcbdataInfostatistics(); if(gis.script.cbdataInfostatistics[key]){ var v=gis.script.cbdataInfostatistics[key][vkey]; if(v){ //var newnode={"iconSkin":"","id":"01","isParent":false,"name":"行政单位","open":false,"pId":"","type":""} //var newnode={isParent:false,open:false,treeNodeType:"HS_AIS",pId:"",type:""}; //console.log("vvv:",v); for(var ij=0;ij