XWWitPark/witpark_jzzs/xw_jzzs_web/public/widgets/manageLayers/view.js
2024-09-12 08:10:00 +08:00

2 lines
4.8 KiB
JavaScript

/* 2020-9-24 14:48:22 | 版权所有 军懋国兴 */
var thisWidget,lastRightClickTreeId,lastRightClickTreeNode,layers=[],layersObj={};function initWidgetView(e){(thisWidget=e).config&&thisWidget.config.style&&$("body").addClass(thisWidget.config.style),bindRightMenuEvnet();for(var t={check:{enable:!0},data:{simpleData:{enable:!0}},callback:{onCheck:treeOverlays_onCheck,onRightClick:treeOverlays_OnRightClick,onDblClick:treeOverlays_onDblClick,onClick:treeOverlays_onClick},view:{addDiyDom:addOpacityRangeDom}},r=[],n=(layers=thisWidget.getLayers()).length-1;0<=n;n--){var a,i=layers[n];null==i||i.hide||(a={id:i.id,pId:i.pid,name:i.name,_type:i.type,_key:i._key},i.hasLayer?("dark"==thisWidget.config.style?a.icon="images/layer2.png":a.icon="images/layer.png",a.checked=thisWidget.getLayerVisible(i),i._parent&&(a._parent=i._parent._key),layersObj[a._key]=i):(a.icon="images/folder.png",a.open=null==i.open||i.open),r.push(a))}$.fn.zTree.init($("#treeOverlays"),t,r),$("#view").mCustomScrollbar({theme:"dark"==thisWidget.config.style?"":"dark-2"})}function treeOverlays_onClick(e,t,r,n){}function addNode(e){var t,r=$.fn.zTree.getZTreeObj("treeOverlays");e.pid&&-1!=e.pid&&(t=r.getNodeByParam("id",e.pid,null));var n={id:e.id,pId:e.pid,name:e.name,_type:e.type,_key:e._key};"group"!=e.type&&e.hasLayer?("dark"==thisWidget.config.style?n.icon="images/layer2.png":n.icon="images/layer.png",n.checked=thisWidget.getLayerVisible(e),e._parent&&(n._parent=e._parent._key),layersObj[n._key]=e):(n.icon="images/folder.png",n.open=null==e.open||e.open),r.addNodes(t,0,[n],!0)}function removeNode(e){var t=$.fn.zTree.getZTreeObj("treeOverlays"),r=t.getNodeByParam("id",e.id,null);r&&t.removeNode(r)}function treeOverlays_onCheck(e,t,r){for(var n,a=$.fn.zTree.getZTreeObj(t),i=a.getChangeCheckedNodes(),d=0;d<i.length;d++){if((r=i[d]).checkedOld=r.checked,layer=layersObj[r._key],null!=layer){if(r.checked?$("#"+r.tId+"_range").show():$("#"+r.tId+"_range").hide(),layer.radio&&r.checked)for(var o=a.getNodesByFilter(function(e){var t=layersObj[e._key];return t.radio&&t.pid==layer.pid&&e._key!=r._key},!1,r.getParentNode()),l=0;l<o.length;l++){o[l].checkedOld=!1,a.checkNode(o[l],!1,!0),$("#"+o[l].tId+"_range").hide();var y=layersObj[o[l]._key];thisWidget.updateLayerVisible(y,!1)}r._parent?(n=layersObj[r._parent],thisWidget.updateLayerVisible(layer,r.checked,n)):thisWidget.updateLayerVisible(layer,r.checked)}}}function treeOverlays_onDblClick(e,t,r){var n;null==r||null==r._key||null!=(n=layersObj[r._key])&&thisWidget.centerAt(n)}function addOpacityRangeDom(e,n){var t,r,a=thisWidget.getLayar(layersObj[n._key]);a&&a.hasOpacity&&(t=$("#"+n.tId),r='<input id="'+n.tId+'_range" type="range" style="width: 50px;" />',t.append(r),n.checked||$("#"+n.tId+"_range").hide(),$("#"+n.tId+"_range").range({min:0,max:100,step:1,value:100*(a._opacity||1),onChange:function(e){var t=e/100,r=layersObj[n._key];thisWidget.udpateLayerOpacity(r,t)}}))}function treeOverlays_OnRightClick(e,t,r){var n,a,i,d,o;null==r||null==layersObj[r._key]||(n=thisWidget.getLayar(layersObj[r._key]))&&n.hasZIndex&&(lastRightClickTreeId=t,lastRightClickTreeNode=r,a=e.clientY,i=e.clientX,(d=document.body.offsetHeight-100)<a&&(a=d),(o=document.body.offsetWidth-100)<i&&(i=o),$("#content_layer_manager_rMenu").css({top:a+"px",left:i+"px"}).show(),$("body").bind("mousedown",onBodyMouseDown))}function onBodyMouseDown(e){"content_layer_manager_rMenu"==e.target.id||0<$(e.target).parents("#content_layer_manager_rMenu").length||hideRMenu()}function hideRMenu(){$("body").unbind("mousedown",onBodyMouseDown),$("#content_layer_manager_rMenu").hide()}function bindRightMenuEvnet(){$("#content_layer_manager_rMenu li").on("click",function(){hideRMenu(),moveNodeAndLayer($(this).attr("data-type"))})}function moveNodeAndLayer(e){var t,r=$.fn.zTree.getZTreeObj(lastRightClickTreeId),n=lastRightClickTreeNode.getParentNode(),a=null==n?r.getNodes():n.children,i=lastRightClickTreeNode,d=layersObj[i._key];switch(e){case"up":(t=i.getPreNode())&&(r.moveNode(t,i,"prev"),exchangeLayer(d,layersObj[t._key]));break;case"top":if(0==i.getIndex())return;for(;0<i.getIndex();){(t=i.getPreNode())&&(r.moveNode(t,i,"prev"),exchangeLayer(d,layersObj[t._key]))}break;case"down":(t=i.getNextNode())&&(r.moveNode(t,i,"next"),exchangeLayer(d,layersObj[t._key]));break;case"bottom":if(i.getIndex()==a.length-1)return;for(;i.getIndex()<a.length-1;){(t=i.getNextNode())&&(r.moveNode(t,i,"next"),exchangeLayer(d,layersObj[t._key]))}}layers.sort(function(e,t){return e.order-t.order})}function exchangeLayer(e,t){var r;null!=e&&null!=t&&(r=e.order,e.order=t.order,t.order=r,Number(e.order)<Number(t.order)?thisWidget.udpateLayerZIndex(e,e.order):thisWidget.udpateLayerZIndex(t,t.order))}function updateCheckd(e,t){var r=$.fn.zTree.getZTreeObj("treeOverlays"),n=r.getNodesByParam("name",e,null);n&&0<n.length?r.checkNode(n[0],t,!1):console.log("未在图层树上找到图层“"+e+"”,无法自动勾选处理")}