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/toolbar/tools/ScreenWindowTool.js | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 104 insertions(+), 0 deletions(-)
diff --git a/public/map/controls/toolbar/tools/ScreenWindowTool.js b/public/map/controls/toolbar/tools/ScreenWindowTool.js
new file mode 100644
index 0000000..7529ed4
--- /dev/null
+++ b/public/map/controls/toolbar/tools/ScreenWindowTool.js
@@ -0,0 +1,104 @@
+/**
+ * 截屏按钮
+ *
+ * @author haoml
+ */
+define([ "dojo", "dojo/dom", "dojo/query", "dojo/on", "dojo/request", "dojo/dom-construct", "dojo/_base/window",
+ "dojo/dom-style", "dojo/dom-attr", "dojo/_base/declare", "base/AppEvent",
+ "controls/toolbar/tools/BaseTool","controls/toolbar/tools/Jcrop/Jcrop"
+ ], function(dojo, dom, query, on,
+ request, domConstruct, win, domStyle, domAttr, declare,
+ AppEvent, BaseTool) {
+ var RL = declare([ BaseTool ], {
+ _map : null,
+ coord:null,
+ oricoord:null,
+ mapStyle:null,
+ jcrop_api:null,
+ constructor : function(args) {
+ this._normalIconClass = "tool-screenWindow-normal";
+ this._overIconClass = "tool-screenWindow-over";
+ this._selectedIconClass = "tool-screenWindow-select";
+ this._disableClass = "";
+ this.tooltip = "截屏";
+ this._map = args.map;
+ dojo.create("link", {
+ href: "controls/toolbar/tools/Jcrop/jquery.Jcrop.min.css",
+ type: "text/css",
+ rel: "stylesheet"
+ },
+ document.getElementsByTagName("head")[0]);
+ dojo.create("link", {
+ href: "controls/toolbar/tools/Jcrop/save.css",
+ type: "text/css",
+ rel: "stylesheet"
+ },
+ document.getElementsByTagName("head")[0]);
+ },
+ deactivate : function(args) {
+ this.inherited(arguments);
+ },
+ activate : function() {
+ this.inherited(arguments);
+ var thisObj = this;
+ mapStyle = domAttr.get(dom.byId("mainMapWidget"), "style");
+ jQuery(function($) {
+ $("#mainMapWidget").Jcrop({
+ onChange : getCoords
+ }, function() {
+ thisObj.jcrop_api = this;
+ });
+ });
+ on(dom.byId("btnCancel"), "click", destroyClick);
+ on(dom.byId("btnSave"), "click", postClick);
+ function getCoords(coords) {
+ thisObj.coord = coords;
+ if(thisObj.oricoord == null || (thisObj.oricoord.screenx != coords.screenx || thisObj.oricoord.screeny != coords.screeny)){
+ thisObj.oricoord = thisObj.coord;
+ }
+
+ var saveDiv = dom.byId("saveDiv");
+ domStyle.set(saveDiv, "display", "block");
+ domStyle.set(saveDiv, "top", coords.y
+ + coords.h - saveDiv.clientHeight + "px");
+
+ var saveDivleft = 0;
+ if((coords.x + coords.w + saveDiv.clientWidth) > dom.byId("mainMapWidget").clientWidth)
+ saveDivleft = coords.x - saveDiv.clientWidth;
+ else
+ saveDivleft = coords.x + coords.w;
+ domStyle.set(saveDiv, "left", saveDivleft + "px");
+ }
+
+ function destroyClick() {
+ domConstruct.place(dom.byId("mainMapWidget"),query(".jcrop-holder")[0],"before");
+ domAttr.remove(dom.byId("mainMapWidget"),"style");
+ domAttr.set(dom.byId("mainMapWidget"),"style",thisObj.mapStyle);
+ thisObj.jcrop_api.destroy();
+ domStyle.set(dom.byId("saveDiv"), "display", "none");
+ thisObj.oricoord = null;
+ }
+
+ function postClick() {
+ var offx = 0;
+ var offy = 0;
+ offx = thisObj.coord.x - thisObj.oricoord.x;
+ offy = thisObj.coord.y - thisObj.oricoord.y;
+ var top = thisObj.coord.screeny + offy;
+ var left = thisObj.coord.screenx + offx;
+ var x = thisObj.coord.x;
+ var y = thisObj.coord.y;
+ var x2 = thisObj.coord.x2;
+ var y2 = thisObj.coord.y2;
+
+ var rightx2 = (x2 - x) + left;
+ var righty2 = (y2 - y) + top;
+ window.location.href = "../ScreenWindowServlet?x=" + left + "&y=" + top + "&x1=" + rightx2 + "&y1=" + righty2;
+ destroyClick();
+ }
+
+ this.deactivate();
+ }
+ });
+ return RL;
+});
\ No newline at end of file
--
Gitblit v1.9.3