gis.tckz.tree.js 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  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. return childNodes;
  9. }
  10. /*
  11. * 设置 zTree 是否显示节点的图标
  12. */
  13. gis.tree.showIconForTree = function(treeId, treeNode) {
  14. return false;
  15. //return !treeNode.isParent;
  16. }
  17. /*
  18. * 初始化树节点,动态勾选
  19. */
  20. gis.tree.inittreeCheck = function(treeId){
  21. if(parent&&parent.gis&&parent.gis.script&&parent.gis.script.layersInitconfigObject){
  22. var treeObj = $.fn.zTree.getZTreeObj(treeId);
  23. var layersInitconfigObject=parent.gis.script.layersInitconfigObject;
  24. if(treeObj){
  25. var nodes = treeObj.getNodes();
  26. gis.tree.updatecb(treeObj,nodes,layersInitconfigObject);
  27. }
  28. }
  29. }
  30. /*
  31. * 根据配置动态勾选选择框
  32. */
  33. gis.tree.updatecb = function(treeObj,nodes,layersInitconfigObject){
  34. if(nodes&&nodes.length){
  35. for(var i in nodes){
  36. var node=nodes[i];
  37. //console.log('>3>node:',node);
  38. if(node.layername){
  39. //treeObj.checkNode(node, true, true);
  40. treeObj.checkNode(node, false, true);
  41. if(layersInitconfigObject&&layersInitconfigObject[node.layername]&&layersInitconfigObject[node.layername].length){
  42. var layerObj=layersInitconfigObject[node.layername][0];
  43. if(layerObj&&layerObj.isshow&&layerObj.isshow==="true"){
  44. treeObj.checkNode(node, true, true);
  45. }
  46. }
  47. continue;
  48. }
  49. gis.tree.updatecb(treeObj,node.children,layersInitconfigObject);
  50. }
  51. }
  52. }
  53. /*
  54. * 用于捕获 checkbox / radio 被勾选 或 取消勾选的事件回调函数,在此控制地图的图层显示
  55. */
  56. gis.tree.onCheck= function(event, treeId, node) {
  57. //alert(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked);
  58. if(parent&&parent.gis&&parent.gis.script&&parent.gis.script.settrendsLayer){
  59. if(node.layername){
  60. parent.gis.script.settrendsLayer(node.layername,node.checked+"");
  61. }else{
  62. var nodes=node.children;
  63. if(nodes&&nodes.length){
  64. for(var i in nodes){
  65. var inode=nodes[i];
  66. if(inode.layername){
  67. parent.gis.script.settrendsLayer(inode.layername,node.checked+"");
  68. }
  69. }
  70. }
  71. }
  72. //console.log('>3>node:',parent.gis.script.layersInitconfigObject);
  73. parent.gis.script.switchtoLayer();
  74. }
  75. }
  76. /*
  77. * tree加载完成后动态添加图例
  78. */
  79. gis.tree.addtl= function(id){
  80. /*
  81. $.each($("#"+id).find('.layercass'), function(i,val){
  82. var ua=$(val);
  83. ua.append('<span class="button ico_close" style="width: 16px; height: 16px;float:right;padding-left:5px;"></span>');
  84. });
  85. */
  86. var tlcss={};
  87. tlcss.gkMarkLayer={background:'background: url('+contextPath+'/theme/images/gis/GK_TL.png) no-repeat scroll 0 0 transparent;'};
  88. tlcss.gqvectorLayer={background:'background: url('+contextPath+'/theme/images/gis/GQ_TL1.png) no-repeat scroll 0 0 transparent;'};
  89. tlcss.zyqvectorLayer={background:'background: url('+contextPath+'/theme/images/gis/GQ_TL1.png) no-repeat scroll 0 0 transparent;'};
  90. tlcss.bwvectorLayer={background:'background: url('+contextPath+'/theme/images/gis/BW_TL.png) no-repeat scroll 0 0 transparent;'};
  91. tlcss.mtvectorLayer={background:'background: url('+contextPath+'/theme/images/gis/MT_TL.png) no-repeat scroll 0 0 transparent;'};
  92. tlcss.boatonLayers={background:'background: url('+contextPath+'/theme/images/gis/boat_TL.png) no-repeat scroll 0 0 transparent;'};
  93. tlcss.markersQskLayer={background:'background: url('+contextPath+'/theme/images/gis/aq_qsk_TL1.png) no-repeat scroll 0 0 transparent;'};
  94. tlcss.markersWxwqyLayer={background:'background: url('+contextPath+'/theme/images/gis/aq_wxhwqy_TL.png) no-repeat scroll 0 0 transparent;'};
  95. tlcss.markersYjwzkLayer={background:'background: url('+contextPath+'/theme/images/gis/aq_yywzk_TL.png) no-repeat scroll 0 0 transparent;'};
  96. tlcss.jyrlayers={background:'background: url('+contextPath+'/theme/images/gis/JYR_TL2.png) no-repeat scroll 0 0 transparent;'};
  97. $.each($("#"+id).find('li'), function(i,val){
  98. var ua=$(val);
  99. if(ua){
  100. var subli=ua.find('li');
  101. if(!subli||subli.length==0){
  102. var lcass = ua.find('.layercass');
  103. if(lcass&&lcass.length==1){
  104. //alert(lcass.attr('id'));
  105. //ua.append('<span style="width: 16px; height: 16px;float:right;padding-left:0px;'+tlcss.gkMarkLayer.background+'"></span>');
  106. if(lcass.attr('id')){
  107. var layerbackground=tlcss[lcass.attr('id')];
  108. if(layerbackground&&layerbackground.background){
  109. ua.append('<span style="width: 24px; height: 24px;position: absolute;right:0px;'+layerbackground.background+'"></span>');
  110. }
  111. }
  112. }
  113. }
  114. }
  115. });
  116. /*
  117. $.each($("#"+id).find('li'), function(i,val){
  118. var ua=$(val);
  119. if(ua){
  120. var uaParent=ua.parent();
  121. if(uaParent&&uaParent.attr("id")&&uaParent.attr("id")!='tree'){
  122. var lcass = ua.find('.layercass');
  123. if(lcass&&lcass.length==1){
  124. //alert(lcass.attr('id'));
  125. //ua.append('<span style="width: 16px; height: 16px;float:right;padding-left:0px;'+tlcss.gkMarkLayer.background+'"></span>');
  126. if(lcass.attr('id')){
  127. var layerbackground=tlcss[lcass.attr('id')];
  128. if(layerbackground&&layerbackground.background){
  129. ua.append('<span style="width: 24px; height: 24px;position: absolute;right:0px;'+layerbackground.background+'"></span>');
  130. }
  131. }
  132. }
  133. }
  134. }
  135. });
  136. */
  137. }
  138. gis.tree.controlNodeData= function(nodes){
  139. try{
  140. if(nodes&&nodes.length){
  141. if(parent&&parent.layerUserControl&&typeof(parent.layerUserControl)!='undefined'){
  142. //alert(parent.layerUserControl);
  143. for(var ik=0;ik<nodes.length;ik++){
  144. var node=nodes[ik];
  145. if(node&&!gis.script.isBlank(node.controlid)){
  146. var isHidden=parent.layerUserControl[node.controlid];
  147. if(typeof(isHidden)!='undefined'){
  148. node.isHidden=(isHidden==false);
  149. }
  150. }
  151. }
  152. }
  153. }
  154. }catch(e){
  155. }
  156. }
  157. $(document).ready(function() {
  158. var setting = {
  159. view: {
  160. //selectedMulti: false,
  161. showIcon: gis.tree.showIconForTree,
  162. dblClickExpand: false,
  163. nameIsHTML: true
  164. },
  165. check: {
  166. enable: true,
  167. chkboxType : {"Y": "ps", "N": "ps"},
  168. },
  169. callback: {
  170. onCheck:gis.tree.onCheck
  171. },
  172. data: {
  173. simpleData: {
  174. enable: true
  175. }
  176. }
  177. };
  178. //,isHidden:true
  179. var zNodes =[
  180. { id:1, pId:0, name:"港口、港区、作业区", open:true},
  181. { id:11, pId:1, name:"<span id='gkMarkLayer' class='layercass'>港口</span>",layername:"gkMarkLayer"},
  182. { id:12, pId:1, name:"<span id='gqvectorLayer' class='layercass'>港区</span>",layername:"gqvectorLayer"},
  183. { id:13, pId:1, name:"<span id='zyqvectorLayer' class='layercass'>作业区</span>",layername:"zyqvectorLayer"},
  184. { id:2, pId:0, name:"码头、泊位", checked:false, open:true},
  185. { id:21, pId:2, name:"<span id='bwvectorLayer' class='layercass'>泊位</span>",layername:"bwvectorLayer"},
  186. { id:22, pId:2, name:"<span id='mtvectorLayer' class='layercass'>码头</span>",layername:"mtvectorLayer"},
  187. { id:5, pId:0, name:"船舶", checked:false, open:true,controlid:"boatonLayers"},
  188. { id:51, pId:5, name:"<span id='boatonLayers' class='layercass'>船舶</span>",layername:"boatonLayers"},
  189. { id:3, pId:0, name:"经营人", checked:false, open:true},
  190. { id:31, pId:3, name:"<span id='jyrlayers' class='layercass'>经营人</span>",layername:"jyrlayers"},
  191. { id:4, pId:0, name:"安全监管", checked:false, open:true,controlid:"aqjgLayers"},
  192. { id:41, pId:4, name:"<span id='markersWxwqyLayer' class='layercass'>危险危货物企业</span>",layername:"markersWxwqyLayer"},
  193. { id:42, pId:4, name:"<span id='markersQskLayer' class='layercass'>取水口</span>",layername:"markersQskLayer"},
  194. { id:43, pId:4, name:"<span id='markersYjwzkLayer' class='layercass'>应急物资库</span>",layername:"markersYjwzkLayer"},
  195. { id:6, pId:0, name:"锚地", checked:false, open:true},
  196. { id:61, pId:6, name:"<span id='mdvectorLayer' class='layercass'>锚地</span>",layername:"mdvectorLayer"}
  197. ];
  198. gis.tree.controlNodeData(zNodes);
  199. $.fn.zTree.init($("#tree"), setting, zNodes);
  200. gis.tree.inittreeCheck("tree");
  201. parent.gis.script.tckztreeloadover=true;
  202. //gis.tree.addtl("tree");
  203. });