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/widgets/mapBrowsecopy/MapBrowseWidgetCopy.js |  501 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 501 insertions(+), 0 deletions(-)

diff --git a/public/map/widgets/mapBrowsecopy/MapBrowseWidgetCopy.js b/public/map/widgets/mapBrowsecopy/MapBrowseWidgetCopy.js
new file mode 100644
index 0000000..d465421
--- /dev/null
+++ b/public/map/widgets/mapBrowsecopy/MapBrowseWidgetCopy.js
@@ -0,0 +1,501 @@
+/*
+ * @Description: 
+ * @Version: 1.0
+ * @Author: yangsx
+ * @Date: 2019-12-09 19:01:40
+ * @LastEditors: yangsx
+ * @LastEditTime: 2019-12-14 14:44:57
+ */
+define([
+  "dojo",
+  "dojo/_base/declare",
+  "dojo/_base/lang",
+  "base/BaseWidget",
+  "dojo/text!widgets/mapBrowse/template.html",
+  "base/AppEvent",
+  "base/ConfigData",
+  "widgets/mapBrowse/config",
+  "dojo/dom",
+  "dojo/dom-construct",
+  "dojo/dom-attr",
+  "dojo/dom-style",
+  "dojo/on",
+  "esri/layers/ArcGISDynamicMapServiceLayer",
+  "esri/layers/ArcGISTiledMapServiceLayer",
+  "esri/layers/FeatureLayer",
+  "controls/tab/TabControl",
+  "esri/dijit/SymbolStyler",
+  "esri/styles/basic",
+  "dojo/_base/array",
+  "esri/InfoTemplate",
+  "esri/tasks/query",
+  "esri/tasks/QueryTask",
+  "esri/Color",
+  "esri/graphic",
+  "esri/geometry/Point",
+  "esri/symbols/SimpleLineSymbol",
+  "esri/symbols/SimpleFillSymbol",
+  "esri/symbols/PictureMarkerSymbol",
+  "esri/symbols/SimpleMarkerSymbol",
+  "esri/SpatialReference",
+  "esri/tasks/GeometryService",
+  "esri/tasks/ProjectParameters",
+  "esri/layers/GraphicsLayer",
+  "esri/layers/LabelLayer",
+  "esri/symbols/TextSymbol",
+  "esri/renderers/SimpleRenderer",
+  "esri/renderers/ClassBreaksRenderer",
+  "esri/tasks/Geoprocessor",
+  "esri/tasks/DataFile",
+  "esri/geometry/webMercatorUtils",
+  "esri/symbols/Font",
+  "esri/geometry/ScreenPoint",
+  "esri/layers/ImageParameters",
+  "esri/geometry/geometryEngine",
+  "dojo/domReady!"
+], function(
+  dojo,
+  declare,
+  lang,
+  BaseWidget,
+  template,
+  AppEvent,
+  ConfigData,
+  config,
+  dom,
+  domConstruct,
+  domAttr,
+  domStyle,
+  on,
+  ArcGISDynamicMapServiceLayer,
+  ArcGISTiledMapServiceLayer,
+  FeatureLayer,
+  TabControl,
+  SymbolStyler,
+  basic,
+  arrayUtils,
+  InfoTemplate,
+  Query,
+  QueryTask,
+  Color,
+  Graphic,
+  Point,
+  SimpleLineSymbol,
+  SimpleFillSymbol,
+  PictureMarkerSymbol,
+  SimpleMarkerSymbol,
+  SpatialReference,
+  GeometryService,
+  ProjectParameters,
+  GraphicsLayer,
+  LabelLayer,
+  TextSymbol,
+  SimpleRenderer,
+  ClassBreaksRenderer,
+  Geoprocessor,
+  DataFile,
+  webMercatorUtils,
+  Font,
+  ScreenPoint,
+  ImageParameters,
+  geometryEngine
+) {
+  var Widget = declare([BaseWidget], {
+    widgetName: "MapBrowseWidgetCopy",
+    label: "地图浏览",
+    templateString: template,
+    _map: null,
+    objThis: null,
+    _siteLayer: new GraphicsLayer(),
+    constructor: function(options, srcRefNode) {
+      this._map = options.map;
+      objThis = this;
+    },
+    startup: function() {
+      objThis._map.addLayer(objThis._siteLayer);
+    },
+    open: function() {
+      findStaVideoByStcd({ stcd: stcd }, function(res) {
+        // var data = [];
+        // var type = "";
+        // domConstruct.create(
+        //   "select",
+        //   {
+        //     id: "toolSelect",
+        //     class: "toolSelect"
+        //   },
+        //   dom.byId("mainMapWidget")
+        // );
+        // for (var i = 0; i < res.data.length; i++) {
+        //   domConstruct.create(
+        //     "option",
+        //     {
+        //       class: "toolSelectOption",
+        //       lat: Number(res.data[i].lat),
+        //       lon: Number(res.data[i].lon),
+        //       innerHTML: res.data[i].videoName
+        //     },
+        //     dom.byId("toolSelect")
+        //   );
+        //   switch (res.data[i].id) {
+        //     case 128:
+        //       type = "气象土壤";
+        //       break;
+        //     case 129:
+        //       type = "水质";
+        //       break;
+        //     default:
+        //       type = "";
+        //   }
+        //   data.push({
+        //     id: res.data[i].id,
+        //     name: res.data[i].videoName,
+        //     lat: Number(res.data[i].lat),
+        //     lon: Number(res.data[i].lon),
+        //     stcd: stcd,
+        //     type: type
+        //   });
+        // }
+        // $("#toolSelect").change(function() {
+        //   $("select  option:selected");
+        //   var point = new Point(
+        //     parseFloat($("#toolSelect  option:selected").attr("lon")),
+        //     parseFloat($("#toolSelect  option:selected").attr("lat")),
+        //     objThis.map.spatialReference
+        //   );
+        //   objThis.map.centerAndZoom(point, 15);
+        // });
+
+        // // domConstruct.create(
+        // //   "div",
+        // //   {
+        // //     id: "toolUpdateName",
+        // //     class: "toolUpdateName",
+        // //     innerHTML: "修改站点名称"
+        // //   },
+        // //   dom.byId("mainMapWidget")
+        // // );
+
+        // $("#toolUpdateName").click(function() {
+        //   layer.open({
+        //     type: 2,
+        //     title: "修改站点名称",
+        //     shadeClose: true,
+        //     shade: 0.8,
+        //     area: ["500px", "320px"],
+        //     content: "widgets/mapBrowse/upDateSiteName.html" //iframe的url
+        //   });
+        // //   objThis._init();
+        // });
+
+        // config.data = data;
+        // objThis._init();
+      });
+    },
+    _init: function() {
+      var symbol = new PictureMarkerSymbol({
+        url: "images/sompl.png",
+        height: 21,
+        width: 15
+      });
+      var font = new Font();
+      font.setSize("12px");
+	  font.setWeight(Font.WEIGHT_BOLD);
+	  console.log(1);
+	  
+
+      for (var i in config.data) {
+        var point = new Point(
+          parseFloat(config.data[i].lon),
+          parseFloat(config.data[i].lat),
+          objThis.map.spatialReference
+        );
+
+        if (config.data[i].name.length == 4) {
+          var symbol1 = new PictureMarkerSymbol({
+            url: "images/txt.png",
+            height: 20,
+            width: 60
+          }).setOffset(55, 2);
+          var label = new TextSymbol(config.data[i].name)
+            .setColor("#fff")
+            .setOffset(50, -2)
+            .setFont(font);
+        } else if (config.data[i].name.length == 5) {
+          var symbol1 = new PictureMarkerSymbol({
+            url: "images/txt.png",
+            height: 20,
+            width: 70
+          }).setOffset(65, 2);
+          var label = new TextSymbol(config.data[i].name)
+            .setColor("#fff")
+            .setOffset(60, -2)
+            .setFont(font);
+        } else if (config.data[i].name.length == 6) {
+          var symbol1 = new PictureMarkerSymbol({
+            url: "images/txt.png",
+            height: 20,
+            width: 80
+          }).setOffset(74, 2);
+          var label = new TextSymbol(config.data[i].name)
+            .setColor("#fff")
+            .setOffset(70, -2)
+            .setFont(font);
+        } else if (config.data[i].name.length == 7) {
+          var symbol1 = new PictureMarkerSymbol({
+            url: "images/txt.png",
+            height: 20,
+            width: 90
+          }).setOffset(80, 2);
+          var label = new TextSymbol(config.data[i].name)
+            .setColor("#fff")
+            .setOffset(80, -2)
+            .setFont(font);
+        } else if (config.data[i].name.length == 8) {
+          var symbol1 = new PictureMarkerSymbol({
+            url: "images/txt.png",
+            height: 20,
+            width: 100
+          }).setOffset(90, 2);
+          var label = new TextSymbol(config.data[i].name)
+            .setColor("#fff")
+            .setOffset(90, -2)
+            .setFont(font);
+        } else if (config.data[i].name.length == 9) {
+          var symbol1 = new PictureMarkerSymbol({
+            url: "images/txt.png",
+            height: 20,
+            width: 110
+          }).setOffset(95, 2);
+          var label = new TextSymbol(config.data[i].name)
+            .setColor("#fff")
+            .setOffset(100, -2)
+            .setFont(font);
+        } else if (config.data[i].name.length == 10) {
+          var symbol1 = new PictureMarkerSymbol({
+            url: "images/txt.png",
+            height: 20,
+            width: 120
+          }).setOffset(105, 2);
+          var label = new TextSymbol(config.data[i].name)
+            .setColor("#fff")
+            .setOffset(100, -2)
+            .setFont(font);
+        } else {
+          var symbol1 = new PictureMarkerSymbol({
+            url: "images/txt.png",
+            height: 20,
+            width: 130
+          }).setOffset(110, 2);
+          var label = new TextSymbol(config.data[i].name)
+            .setColor("#fff")
+            .setOffset(120, -2)
+            .setFont(font);
+        }
+
+        var temGraphic = new Graphic(point, symbol, config.data[i]);
+        var temGraphicImg = new Graphic(point, symbol1, config.data[i]);
+        var textGraphic = new Graphic(point, label, config.data[i]);
+
+        objThis._siteLayer.add(temGraphic);
+        objThis._siteLayer.add(temGraphicImg);
+        objThis._siteLayer.add(textGraphic);
+      }
+
+      objThis._siteLayer.on("click", function(layer) {
+        if (!layer.graphic.attributes.type) {
+          $(".map_tool_monitor, #monTitle").hide();
+          return false;
+        }
+        var id = layer.graphic.attributes.id;
+        findElementCurrentByStcd({ stcd: stcd }, function(res) {
+          var data = res.data;
+          var dataArr = {
+            airList: [],
+            weatherList: [],
+            soilList: [],
+            waterList: []
+          };
+
+          for (var i in data.soilList) {
+            for (var k in config.type) {
+              for (var a in config.type[k].type) {
+                if (data.soilList[i].name == config.type[k].type[a]) {
+                  if (config.type[k].name == "气象") {
+                    dataArr.weatherList.push(data.soilList[i]);
+                  } else if (config.type[k].name == "水质") {
+                    dataArr.waterList.push(data.soilList[i]);
+                  } else if (config.type[k].name == "土壤") {
+                    dataArr.soilList.push(data.soilList[i]);
+                  } else if (config.type[k].name == "大气") {
+                    dataArr.airList.push(data.soilList[i]);
+                  }
+                }
+              }
+            }
+          }
+
+          for (var i in data.weatherList) {
+            for (var k in config.type) {
+              for (var a in config.type[k].type) {
+                if (data.weatherList[i].name == config.type[k].type[a]) {
+                  if (config.type[k].name == "气象") {
+                    dataArr.weatherList.push(data.weatherList[i]);
+                  } else if (config.type[k].name == "水质") {
+                    dataArr.waterList.push(data.weatherList[i]);
+                  } else if (config.type[k].name == "土壤") {
+                    dataArr.soilList.push(data.weatherList[i]);
+                  } else if (config.type[k].name == "大气") {
+                    dataArr.airList.push(data.weatherList[i]);
+                  }
+                }
+              }
+            }
+          }
+          for (var i in data.airList) {
+            for (var k in config.type) {
+              for (var a in config.type[k].type) {
+                if (data.airList[i].name == config.type[k].type[a]) {
+                  if (config.type[k].name == "气象") {
+                    dataArr.weatherList.push(data.airList[i]);
+                  } else if (config.type[k].name == "水质") {
+                    dataArr.waterList.push(data.airList[i]);
+                  } else if (config.type[k].name == "土壤") {
+                    dataArr.soilList.push(data.airList[i]);
+                  } else if (config.type[k].name == "大气") {
+                    dataArr.airList.push(data.airList[i]);
+                  }
+                }
+              }
+            }
+          }
+          for (var i in data.waterList) {
+            for (var k in config.type) {
+              for (var a in config.type[k].type) {
+                if (data.waterList[i].name == config.type[k].type[a]) {
+                  if (config.type[k].name == "气象") {
+                    dataArr.weatherList.push(data.waterList[i]);
+                  } else if (config.type[k].name == "水质") {
+                    dataArr.waterList.push(data.waterList[i]);
+                  } else if (config.type[k].name == "土壤") {
+                    dataArr.soilList.push(data.waterList[i]);
+                  } else if (config.type[k].name == "大气") {
+                    dataArr.airList.push(data.waterList[i]);
+                  }
+                }
+              }
+            }
+          }
+
+          objThis.parseRealtimeData(dataArr, layer.graphic.attributes.id);
+        });
+      });
+    },
+    parseRealtimeData: function(data, _id) {
+      $(".map_tool_monitor").show();
+      $("#map_tool_monitor_content").html("");
+      if (
+        data.soilList.length == 0 &&
+        data.weatherList == 0 &&
+        data.airList == 0 &&
+        data.waterList == 0
+      ) {
+        $("#map_tool_monitor_content").html(
+          "<p style='text-align:center; color:#fff; line-hegiht:50px;'>暂无数据!<p>"
+        );
+        $("#monTitle").hide();
+        return false;
+      }
+      var datas = [];
+      /*if(data.airList.length > 0){
+    			datas.push({"name":"大气质量监测", "data":data.airList});
+    		}
+    		if(data.soilList.length > 0){
+    			datas.push({"name":"土壤质量监测", "data":data.soilList});
+    		}
+    		if(data.waterList.length > 0){
+    			datas.push({"name":"水质质量监测", "data":data.waterList});
+    		}
+    		if(data.weatherList.length > 0){
+    			datas.push({"name":"气象质量监测", "data":data.weatherList});
+    		}
+    		*/
+      if (_id == 129) {
+        datas.push({ name: "水质质量监测", data: data.waterList });
+      } else if (_id == 128) {
+        // datas.push({ name: "气象质量监测", data: data.weatherList });
+        datas.push({ name: "土壤质量监测", data: data.soilList });
+      }
+
+      $("#monTitle").show();
+      for (var i = 0; i < datas.length; i++) {
+        var html = "";
+        if (i == 0) {
+          $("#monTitle").html(datas[i].name);
+          if (datas[i].data.length == 0) {
+            $("#map_tool_monitor_content").append(
+              "<p style='text-align:center; color:#fff; line-height:50px;'>暂无数据!<p>"
+            );
+          } else {
+            for (var k in datas[i].data) {
+              html +=
+                "<div>" +
+                "<div>" +
+                "<span>" +
+                datas[i].data[k].name +
+                "</span><br />" +
+                " <span>" +
+                datas[i].data[k].code +
+                "</span>" +
+                "</div>" +
+                " <p><span>" +
+                datas[i].data[k].value +
+                "</span>" +
+                datas[i].data[k].unit +
+                "</p>" +
+                " </div>";
+            }
+            $("#map_tool_monitor_content").append(
+              '<div class="map_tool_box">' + html + "</div>"
+            );
+          }
+        } else {
+          if (datas[i].data.length == 0) {
+            $("#map_tool_monitor_content").append(
+              '<div class="mon-title"><span>' + datas[i].name + "</span></div>"
+            );
+            $("#map_tool_monitor_content").append(
+              "<p style='text-align:center; color:#fff; line-height:50px;'>暂无数据!<p>"
+            );
+          } else {
+            for (var k in datas[i].data) {
+              html +=
+                "<div>" +
+                "<div>" +
+                "<span>" +
+                datas[i].data[k].name +
+                "</span><br />" +
+                " <span>" +
+                datas[i].data[k].code +
+                "</span>" +
+                "</div>" +
+                " <p><span>" +
+                datas[i].data[k].value +
+                "</span>" +
+                data[i].data[k].unit +
+                "</p>" +
+                " </div>";
+            }
+            $("#map_tool_monitor_content").append(
+              '<div class="mon-title"><span>' + datas[i].name + "</span></div>"
+            );
+            $("#map_tool_monitor_content").append(
+              '<div class="map_tool_box">' + html + "</div>"
+            );
+          }
+        }
+      }
+    }
+  });
+  return Widget;
+});

--
Gitblit v1.9.3