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/task/task.js | 363 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 363 insertions(+), 0 deletions(-)
diff --git a/public/map/widgets/task/task.js b/public/map/widgets/task/task.js
new file mode 100644
index 0000000..489d854
--- /dev/null
+++ b/public/map/widgets/task/task.js
@@ -0,0 +1,363 @@
+/*
+ * @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/task/template.html",
+ "base/AppEvent",
+ "base/ConfigData",
+ "widgets/task/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/toolbars/edit",
+ "esri/graphic",
+ "esri/geometry/Point",
+ "esri/geometry/Polyline",
+ "esri/geometry/Polygon",
+ "esri/geometry/Extent",
+ "esri/tasks/FeatureSet",
+ "esri/renderers/HeatmapRenderer",
+ "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",
+ "esri/dijit/PopupTemplate",
+ "widgets/clientManagement/FlareClusterLayer_v3",
+ 'dojo/topic',
+ "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,
+ Edit,
+ Graphic,
+ Point,
+ Polyline,
+ Polygon,
+ Extent,
+ FeatureSet,
+ HeatmapRenderer,
+ SimpleLineSymbol,
+ SimpleFillSymbol,
+ PictureMarkerSymbol,
+ SimpleMarkerSymbol,
+ SpatialReference,
+ GeometryService,
+ ProjectParameters,
+ GraphicsLayer,
+ LabelLayer,
+ TextSymbol,
+ SimpleRenderer,
+ ClassBreaksRenderer,
+ Geoprocessor,
+ DataFile,
+ webMercatorUtils,
+ Font,
+ ScreenPoint,
+ ImageParameters,
+ geometryEngine,
+ PopupTemplate,
+ FlareClusterLayer,
+ topic
+) {
+ var Widget = declare([BaseWidget], {
+ widgetName: "task",
+ label: "分发处置",
+ templateString: template,
+ _map: null,
+ objThis: null,
+ _siteLayer: new GraphicsLayer(),
+ layuiLayer: null,
+ layuiLadate: null,
+ tabIndex: 0,
+
+ // 保留添加实体图层的变量
+ addEntitys: null,
+ addEntitystra: null,
+ entitysData: [],
+
+
+ // 巡逻区域或者巡逻路线的描述
+ routeOrRegionDescribe: null,
+
+ // 用来记录巡逻区域或者巡逻路线的下标的
+ patrolIndex: 0,
+
+ // 拖拽
+ isDown: false,
+ x: 0,
+ y: 0,
+ offset: null,
+ moveThis: null,
+ // 电子围栏需要新增的Id
+ newElectronicFenceId: null,
+
+ // 新增路线时,派发人员,人员名称,以及人员id
+ peopleRealName: null,
+ pepleRealId: null,
+ constructor: function (options, srcRefNode) {
+ this._map = options.map;
+ objThis = this;
+
+ this.addEntitys = new GraphicsLayer({
+ id: 'addEntitys'
+ });
+ this.addEntitystra = new GraphicsLayer({
+ id: 'addEntitystra'
+ });
+
+ // 添加点面线的图层
+ this.addPolygonEntitys = new GraphicsLayer({
+ id: 'addPolygonEntitys'
+ });
+ // 添加所有图层的地方
+ this.entityPolygonAll = new GraphicsLayer({
+ id: 'entityPolygonAll'
+ });
+
+
+ this._map.addLayer(this.addEntitys);
+ this._map.addLayer(this.addEntitystra);
+
+
+ this._map.addLayer(this.addPolygonEntitys);
+ this._map.addLayer(this.entityPolygonAll);
+
+ },
+
+ startup: function () {
+
+ objThis._map.addLayer(objThis._siteLayer);
+
+
+ },
+
+ getQueryStringByKey: function (key) {
+ return (document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)")) || ['', null])[1];
+ },
+ location: function (ces) {
+ var that = this;
+ that.addEntitystra.clear();
+ $.ajax({
+ url: "/api/trar/selectLists?rid=" + ces.rwid + "&uid=" + ces.id,
+ type: 'get',
+ success: function (res) {
+ if (res == "" || res == null){
+ return;
+ }
+ var baid = res;
+ var entityData = '';
+ var entityArr = [];
+ entityData = baid.match(/\(([^)]*)\)/);
+ if (entityData && entityData != '') {
+ entityData = entityData[1].split(',');
+ for (var j = 0; j < entityData.length; j++) {
+ entityArr.push([Number(entityData[j].split(' ')[0]), Number(entityData[j].split(' ')[1])]);
+ }
+
+ }
+ that.addPolygonAlltra(that.addEntitystra, entityArr);
+ that._map.centerAndZoom(new esri.geometry.Point(entityArr[Math.ceil(entityArr.length / 2)][0], entityArr[Math.ceil(entityArr.length / 2)][1], new esri.SpatialReference({wkid: 4326})), 14);
+ }
+ })
+ },
+ open: function () {
+ var that = this;
+ topic.subscribe("location", lang.hitch(this, this.location));
+ var baid = decodeURI(that.getQueryStringByKey('baid'));
+ var entityData = '';
+ var entityArr = [];
+ entityData = baid.match(/\(([^)]*)\)/);
+ // 此时result=["(dsfasjfj3124123)", "dsfasjfj3124123"];
+ if (entityData && entityData != '') {
+ entityData = entityData[1].split(',');
+ console.log(entityData, 1)
+ for (var j = 0; j < entityData.length; j++) {
+ entityArr.push([Number(entityData[j].split(' ')[0]), Number(entityData[j].split(' ')[1])]);
+ // entityArr.push([Number(b[0]), Number(b[1])]);
+ }
+
+ }
+ console.log(entityArr, 2)
+ that.addPolygonAll(that.addEntitys, entityArr);
+ that._map.centerAndZoom(new esri.geometry.Point(entityArr[Math.ceil(entityArr.length / 2)][0], entityArr[Math.ceil(entityArr.length / 2)][1], new esri.SpatialReference({wkid: 4326})), 14);
+
+ },
+ close: function () {
+
+ },
+ addPolygonAlltra: function (entitys, rings) {
+ // entitys.clear();
+ var graphic = null;
+ var polylineSymbol = new SimpleLineSymbol();
+ polylineSymbol.color = "#990707";
+ polylineSymbol.width = 4;
+ var polyline = new Polyline({
+ "paths": [rings],
+ "spatialReference": {
+ "wkid": 4326
+ }
+ });
+ graphic = new Graphic(polyline, polylineSymbol)
+ entitys.add(graphic);
+ },
+ addPolygonAll: function (entitys, rings) {
+ // entitys.clear();
+ var graphic = null;
+ var polylineSymbol = new SimpleLineSymbol();
+ polylineSymbol.color = [255, 0, 0, 1];
+ polylineSymbol.width = 4;
+ var polyline = new Polyline({
+ "paths": [rings],
+ "spatialReference": {
+ "wkid": 4326
+ }
+ });
+ graphic = new Graphic(polyline, polylineSymbol)
+ entitys.add(graphic);
+ },
+ addPoint: function (entitys, lgtd, lttd, img) {
+ var symbol = new esri.symbol.PictureMarkerSymbol(img, 22, 32);
+ symbol.xoffset = 0;
+ symbol.yoffset = -2;
+ var pt = new Point(lgtd, lttd, new SpatialReference({
+ wkid: 4326
+ }));
+ var graphic = new esri.Graphic(pt, symbol);
+ entitys.add(graphic);
+ },
+ /**
+ * 添加实体的公共方法
+ * @param {*} entitys 实体类
+ * @param {Array} entityContent 存放每个点详细数据的数组
+ * @param {string} name 实体的名字
+ * @param {*} item 实体数据
+ * @param {*} lgtd 经度
+ * @param {*} lttd 纬度
+ * @param {*} outlineColors 颜色
+ */
+ createEntitys: function (entitys, lgtd, lttd, image) {
+
+ var symbol = new esri.symbol.PictureMarkerSymbol(image, 44, 44);
+
+ var width = 44;
+ var height = 44;
+ var pt = new Point(lgtd, lttd, new SpatialReference({
+ wkid: 4326
+ }));
+
+ var graphic = new esri.Graphic(pt, symbol);
+
+ setInterval(function () {
+ if (width >= 60) {
+ width = 44;
+ height = 44;
+ }
+ width += 1;
+ height += 1;
+ symbol.width = width;
+ symbol.height = height;
+ graphic.setSymbol(symbol)
+ entitys.add(graphic);
+ }, 50)
+
+ },
+ /**
+ * 添加闪烁实体的公共方法
+ * @param {*} entitys 实体类
+ * @param {*} lgtd 经度
+ * @param {*} lttd 纬度
+ * @param {*} color 颜色
+ */
+ createTwinkleEntitys: function (entitys, lgtd, lttd, image, color) {
+ var symbol = new esri.symbol.PictureMarkerSymbol(image, 64, 64);
+ var width = 64;
+ var height = 64;
+ var pt = new Point(lgtd, lttd, new SpatialReference({
+ wkid: 4326
+ }));
+
+ var graphic = new esri.Graphic(pt, symbol);
+
+ setInterval(function () {
+ if (width >= 80) {
+ width = 64;
+ height = 64;
+ }
+ width += 1;
+ height += 1;
+ symbol.width = width;
+ symbol.height = height;
+ graphic.setSymbol(symbol)
+ entitys.add(graphic);
+ }, 50)
+ },
+ addPoints: function (entitys, lgtd, lttd, img) {
+ var symbol = new esri.symbol.PictureMarkerSymbol(img, 20, 20);
+ var pt = new Point(lgtd, lttd, new SpatialReference({
+ wkid: 4326
+ }));
+ var graphic = new esri.Graphic(pt, symbol);
+ entitys.add(graphic);
+ }
+ });
+ return Widget;
+});
--
Gitblit v1.9.3