From d74b495736f0c04522ec54274b70fed0ded2878d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 27 Jun 2023 11:30:06 +0800
Subject: [PATCH] 任务新增导出

---
 public/map/controls/mapswitch/MapSwitchControl.js |  192 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 192 insertions(+), 0 deletions(-)

diff --git a/public/map/controls/mapswitch/MapSwitchControl.js b/public/map/controls/mapswitch/MapSwitchControl.js
new file mode 100644
index 0000000..6979641
--- /dev/null
+++ b/public/map/controls/mapswitch/MapSwitchControl.js
@@ -0,0 +1,192 @@
+/**
+ * 底图切换
+ * @author Wenyb
+ * @date 2015/6/29
+ */
+define([
+	"dojo/_base/declare",
+	"base/BaseControl",
+	"dojo/text!controls/mapswitch/MapSwitchControl.html",
+	"dojo/dom-style",
+	"dojo/on",
+	"base/AppEvent",
+	"base/ConfigData",
+	"dojo/_base/array",
+	"dojo/dom-class",
+	"dojo/dom-construct",
+	"dojo/mouse",
+	"dojo/dom",
+	"dojo/dom-attr",
+	"dojo/_base/lang"
+], function(
+	declare,
+	BaseControl,
+	template,
+	domStyle,
+	on,
+	AppEvent,
+	ConfigData,
+	arrayUtil,
+	domClass,
+	domConstruct,
+	mouse,
+	dom,
+	domAttr,
+	lang
+) {
+	var Widget = declare("MapSwitchControl", [BaseControl], {
+		templateString: template,
+		visibleGroupLayerId:null,
+		constructor: function(options) {
+			this.inherited(arguments);
+			declare.safeMixin(this, options);
+			this._grouplayers = [];
+			this._currentVisibleLayerlabel = null;
+			this.base_class = "mapswitch-container";
+			this._galleryDomTable = {};
+			this._maps2galleryTable = {};
+			this._galleryLeaveHandlerTable = {};
+			var baseMaps = ConfigData.basemap.grouplayers;
+			for (var key in baseMaps) {
+				var gl = baseMaps[key];
+				if (gl.visible == true) {
+					this._currentVisibleLayerlabel = gl.label;
+				}
+				this._grouplayers.push(gl.label);
+			}
+			this.gallery = ConfigData.basemap.gallerys[0];
+			this.groups = ConfigData.basemap.grouplayers;
+			this.index = [];
+			this.galleryDom = null;
+			AppEvent.addAppEventListener(AppEvent.SWITCH_BASEMAP, lang.hitch(this, this.onSwitchBaseMapHandler));
+		},
+		startup: function() {
+			return;
+			this.inherited(arguments);
+			var div = domConstruct.create("div",{id:"div_play"},this.container);
+			var p_layer = domConstruct.create("div",{id:"p_layer"},div);
+			var veclry = null;
+			var imglry = null;
+			arrayUtil.forEach(ConfigData.basemap.grouplayers, lang.hitch(this, function(item, index) {
+				var thisObj = this;
+				switch (item.id) {
+				case "veclry":
+					veclry = domConstruct.create("dl",{
+						id:"veclry",
+						mapid:item.id,
+						style:"right:0px;"
+					},p_layer);
+					domConstruct.create("dt",{
+						innerHTML:"矢量",
+					},dom.byId("veclry"));
+					domConstruct.create("dd",{
+					},dom.byId("veclry"));
+					break;
+				case "imglry":
+						imglry = domConstruct.create("dl",{
+							id:"imglry",
+							mapid:item.id,
+							class:"selected",
+							style:"right:0px;"
+						},p_layer);
+						domConstruct.create("dt",{
+							innerHTML:"影像",
+						},dom.byId("imglry"));
+						domConstruct.create("dd",{
+						},dom.byId("imglry"));
+						thisObj.label = "<img src='"+item.icon+"' class='ico'/>"+item.label;
+					break;
+				}
+			}));
+			on(this, "mouseover", lang.hitch(this, function(evt) {	
+				//if(this.id == "MapSwitchControl_0"){
+					//$('#MapSwitchControl_1').hide();
+				//}
+				  $("#"+this.id+" #imglry").stop(true);
+				  $("#"+this.id+" #veclry").stop(true);
+				  $("#"+this.id+" #imglry").animate({right: "0px"});
+				  $("#"+this.id+" #veclry").animate({right: "90px"});
+			}));
+			on(p_layer, "mouseout", lang.hitch(this, function(evt) {				
+				  $("#"+this.id+" #imglry").stop(true);
+				  $("#"+this.id+" #veclry").stop(true);				  
+				  $("#"+this.id+" #imglry").animate({right: "0px"});
+				  $("#"+this.id+" #veclry").animate({right: "0px"});
+				  //if("#MapSwitchControl_1"){
+					//	$('#MapSwitchControl_1').show();
+					//}
+			}));
+			on($("#"+this.id+" #p_layer dl" ), "click", lang.hitch(this, function(evt) {
+				this._onMapDomClick(evt);
+				$("#"+this.id+" #p_layer dl" ).removeClass('selected');
+				$(evt.currentTarget).addClass("selected");
+			}));
+			
+			if(this.visibleGroupLayerId){
+				this._onMapDomClick({"currentTarget":veclry});
+			}
+		},
+		/**
+		 * 隐藏地图类型的按钮,只显示一种可选按钮
+		 */
+		_hideGalleryDomByVisibleMap:function(galleryId){
+			var gallerytdDom = this._galleryDomTable[galleryId];
+			var visibleLayer = domAttr.get(gallerytdDom,"visibleGroupLayerId");
+			var mapDoms=this._maps2galleryTable[galleryId];
+			var hasShowLayer=false;//是否已经显示了一个备选的图层按钮,如果已显示,则其他的都不再显示。
+			arrayUtil.forEach(mapDoms,function(item,index){
+				if(domAttr.get(item,"mapid")==visibleLayer){
+					domStyle.set(item,"display","none");
+					return;
+				}
+				if(hasShowLayer){
+					domStyle.set(item,"display","none");
+				}else{
+					domStyle.set(item,"display","block");
+					hasShowLayer=true;
+				}
+			});
+		},
+		_showGalleryDomByVisibleMap:function(galleryId){
+			var gallerytdDom = this._galleryDomTable[galleryId];
+			var visibleLayer = domAttr.get(gallerytdDom,"visibleGroupLayerId");
+			var mapDoms=this._maps2galleryTable[galleryId];
+			var hasShowLayer=false;//是否已经显示了一个备选的图层按钮,如果已显示,则其他的都不再显示。
+			arrayUtil.forEach(mapDoms,function(item,index){
+				if(domAttr.get(item,"mapid")==visibleLayer){
+					domStyle.set(item,"display","none");
+					return;
+				}
+				domStyle.set(item,"display","block");
+				hasShowLayer=true;
+			});
+		},
+		_onMapDomClick:function(evt) {
+			var mapid = domAttr.get(evt.currentTarget, "mapid");
+			AppEvent.dispatchAppEvent(AppEvent.SWITCH_BASEMAP, {
+				hockId: this.hockId,
+				grouplayer: mapid,
+				sender:this.id
+			});
+			var galleryId=domAttr.get(evt.currentTarget.parentNode,"galleryid");
+			domAttr.set(evt.currentTarget.parentNode,"visibleGroupLayerId",mapid);
+		},
+		_onGalleryDomMouseEnter:function(evt){
+			var galleryName = domAttr.get(evt.currentTarget, "galleryid");
+		},
+		_onGalleryDomMouseLeave:function(evt){
+			var galleryName = domAttr.get(evt.currentTarget, "galleryid");
+		},
+		onSwitchBaseMapHandler:function(evt){
+			if(this.id == evt.sender){
+				return;
+			}
+			if (evt.hockId != this.hockId)
+				return;
+			for(var key in this._galleryDomTable){
+				domAttr.set(this._galleryDomTable[key],"visibleGroupLayerId",evt.grouplayer);
+			}
+		}
+	});
+	return Widget;
+});
\ No newline at end of file

--
Gitblit v1.9.3