gis.tree.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. var gis = gis || {};
  2. gis.tree = function() {
  3. };
  4. /*
  5. * 用于对 Ajax 返回数据进行预处理的函数。[setting.async.enable = true 时生效]
  6. */
  7. gis.tree.filter = function(treeId, parentNode, childNodes) {
  8. //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":""};
  9. //alert(JSON.stringify(childNodes));
  10. //alert(childNodes);
  11. //childNodes={"iconSkin":"","id":"01","isParent":true,"name":"行政单位信息","open":true,"pId":"","type":"","children":[{"iconSkin":"","id":"01","isParent":true,"name":"行政单位","open":false,"pId":"","type":""}]}
  12. //childNodes=[{"iconSkin":"","id":"01","isParent":true,"name":"行政单位","open":false,"pId":"","type":""}];
  13. /*
  14. if(parentNode&&parentNode.treeNodeType){
  15. if(parentNode.treeNodeType='GK_BASIC_JSJY_GK_GK'){
  16. childNodes=[{"iconSkin":"","id":"01","isParent":true,"name":"行政单位","open":false,"pId":"","type":""}]
  17. }
  18. }
  19. */
  20. if(parentNode==null){
  21. if(childNodes.length==1){
  22. //alert(childNodes[0].children);
  23. return childNodes[0].children
  24. }
  25. }
  26. return childNodes;
  27. }
  28. /*
  29. * 设置 zTree 是否显示节点的图标
  30. */
  31. gis.tree.showIconForTree = function(treeId, treeNode) {
  32. return false;
  33. //return !treeNode.isParent;
  34. }
  35. /*
  36. * 树节点点击事件
  37. */
  38. gis.tree.nodeClick = function(event, treeId, treeNode, clickFlag) {
  39. //alert(parent.gis.script.setMapCenter);return;
  40. if(parent&&parent.gis&&parent.gis.script){
  41. parent.gis.script.removeAllPopup();
  42. }
  43. var parentgisLayerinfo=gis.tree.parentgisLayerinfo();
  44. var layerloadover=gis.tree.parentgisLayerinfo();
  45. if(parentgisLayerinfo&&layerloadover){
  46. if(typeof(treeNode.id)!="undefined"){
  47. var issetCenter=false;
  48. if(treeNode.id==0){
  49. //map.setCenter(new SuperMap.LonLat(lon, lat), 0);
  50. var info={};
  51. info.lon=119.66;
  52. info.lat=32.57;
  53. info.zoomSize=0;
  54. gis.tree.parentsetMapCenter(info);
  55. issetCenter=true;
  56. }else{
  57. //alert(treeNode.gisinfo);
  58. //map.zoomToScale(0.000001180591620);
  59. if(treeNode.treeNodeType&&parentgisLayerinfo[treeNode.treeNodeType]){
  60. var objdata={}
  61. if(!gis.script.isBlank(treeNode.gisinfo)){
  62. var gobj=eval("("+treeNode.gisinfo+")");
  63. //objdata.id=gobj.smid;
  64. objdata.zoomto=gobj.zoomto;
  65. }
  66. if(!gis.script.isBlank(treeNode.code)){
  67. objdata.id=treeNode.code;
  68. }
  69. //alert(objdata.id)
  70. if(objdata.id){
  71. var info=parentgisLayerinfo[treeNode.treeNodeType][objdata.id];
  72. if(info&&typeof(info.lon)!="undefined"&&typeof(info.lat)!="undefined"){
  73. info.zoomSize=objdata.zoomto||info.zoom||6;
  74. gis.tree.parentsetMapCenter(info);
  75. issetCenter=true;
  76. }else{
  77. gis.tree.loadgisService(treeNode,objdata);
  78. }
  79. }
  80. }
  81. /*
  82. if(g){
  83. var gobj=eval("("+g+")");
  84. if(gobj&&gobj.smid){
  85. if(treeNode.treeNodeType&&parentgisLayerinfo[treeNode.treeNodeType]){
  86. var info=parentgisLayerinfo[treeNode.treeNodeType][gobj.smid];
  87. if(info&&typeof(info.lon)!="undefined"&&typeof(info.lat)!="undefined"){
  88. map.setCenter(new SuperMap.LonLat(info.lon, info.lat),gobj.zoomto||5);
  89. }
  90. }
  91. }
  92. }
  93. */
  94. }
  95. if(!issetCenter){
  96. //alert("缺少关联数据,定位失败...");
  97. }
  98. }
  99. }
  100. return layerloadover;
  101. }
  102. /*
  103. gis.tree.loadgisService = function(treeNode,objdata){
  104. //alert(treeNode.treeNodeType+"--"+objdata.id);
  105. var dataServices=gisConfigBean.dataconfig;
  106. if(dataServices){
  107. gis.script.consolelog('dataServices',dataServices);
  108. for(var n in dataServices){
  109. var data=gisConfigBean.dataconfig[n];
  110. if(data.gisLayerinfoKey&&treeNode.treeNodeType&&treeNode.treeNodeType==data.gisLayerinfoKey){
  111. //alert(treeNode.treeNodeType+"--"+objdata.id);
  112. var originaldata = gisConfigBean.dataconfig[n];
  113. var data=jQuery.extend(true, {}, originaldata);
  114. if(data.Model&&data.Model[gis.script.modelid]){
  115. var model=data.Model[gis.script.modelid];
  116. data.datasetNames=data.datasetNames.split(",");
  117. data.fields=data.fields.split(",");
  118. data.cachedata=model.cachedata||data.cachedata;
  119. data.zoom=model.zoom||data.zoom;
  120. data.attributeFilter=data.gisLayerinfoAttrKey+"="+objdata.id;
  121. data.treelocationHighlight=model.treelocationHighlight||"false";
  122. data.url=data.url||defdataUrl;
  123. //alert(data.attributeFilter);
  124. gis.tree.loadServicetreelocation(data);
  125. }
  126. break;
  127. }
  128. }
  129. }
  130. }
  131. */
  132. $(document).ready(function() {
  133. /*
  134. var treediv=$("#treediv");
  135. var tree=$("#tree");
  136. if($.support&&$.support.leadingWhitespace){
  137. tree.css("width",treediv.width()-10);
  138. tree.css("height",treediv.height()-10);
  139. }
  140. */
  141. //$("#othen").css("display","none");
  142. //tree.css("height",treediv.height()-$("#othen").height());
  143. //tree.css("height",treediv.height());
  144. var setting = {
  145. view: {
  146. selectedMulti: false,
  147. showIcon: gis.tree.showIconForTree,
  148. dblClickExpand: false
  149. },
  150. key: {
  151. title:"title"
  152. },
  153. async: {
  154. enable: true,
  155. type: "post",
  156. dataType:"json",
  157. contentType: "application/json",
  158. url: contextPath+"/zygl/treejson.html",
  159. autoParam: ["id", "name","treeNodeType"],
  160. otherParam: {async:'treejson',rootName:"港口",isHidden:0},
  161. dataFilter: gis.tree.filter
  162. },
  163. callback: {
  164. onDblClick: gis.tree.nodeClick,
  165. onClick: function(event, treeId, treeNode) {
  166. //alert(this);return;
  167. var treeObj = $.fn.zTree.getZTreeObj(treeId);
  168. treeObj.expandNode(treeNode,true,false,false,false);
  169. }
  170. }
  171. };
  172. $.fn.zTree.init($("#tree"), setting);
  173. });