From a4e06ccd3cd976fbe4eef99e188d42ec9f3ad054 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 08 Apr 2021 09:32:05 +0800
Subject: [PATCH] 样式修改
---
public/map/widgets/securityMap/SecurityMap.js | 358 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 358 insertions(+), 0 deletions(-)
diff --git a/public/map/widgets/securityMap/SecurityMap.js b/public/map/widgets/securityMap/SecurityMap.js
new file mode 100644
index 0000000..17d7985
--- /dev/null
+++ b/public/map/widgets/securityMap/SecurityMap.js
@@ -0,0 +1,358 @@
+/*
+ * @Description:
+ * @Version: 1.0
+ * @Author: yangsx
+ * @Date: 2019-12-09 19:01:40
+ * @LastEditors: song
+ * @LastEditTime: 2021-02-25 13:59:29
+ */
+define([
+ "dojo",
+ "dojo/_base/declare",
+ "dojo/_base/lang",
+ "base/BaseWidget",
+ "dojo/text!widgets/SecurityMap/template.html",
+ "base/AppEvent",
+ "base/ConfigData",
+ "widgets/realTimePolice/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/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/SecurityMap/FlareClusterLayer_v3",
+ "dojo/domReady!",
+ "widgets/realTimePolice/LayUIDataTable"
+], 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,
+ FeatureSet,
+ HeatmapRenderer,
+ SimpleLineSymbol,
+ SimpleFillSymbol,
+ PictureMarkerSymbol,
+ SimpleMarkerSymbol,
+ SpatialReference,
+ GeometryService,
+ ProjectParameters,
+ GraphicsLayer,
+ LabelLayer,
+ TextSymbol,
+ SimpleRenderer,
+ ClassBreaksRenderer,
+ Geoprocessor,
+ DataFile,
+ webMercatorUtils,
+ Font,
+ ScreenPoint,
+ ImageParameters,
+ geometryEngine,
+ PopupTemplate,
+ FlareClusterLayer
+) {
+ var Widget = declare([BaseWidget], {
+ widgetName: "SecurityMap",
+ label: "处警队伍管理",
+
+ templateString: template,
+ _map: null,
+ objThis: null,
+ // 现场图层
+ _siteLayer: new GraphicsLayer(),
+ layuiLayer: null,
+ layuiLadate: null,
+ tabIndex: 0,
+
+ // 保留添加实体图层的变量
+ addEntitys: null,
+ entitysData: [],
+
+ // 是否派发保安的 文字
+ treatmentIndex: null,
+ securityFlag: false,
+ editParentInd: null,
+
+ // 存储新增点,线,面,数据的地方
+ polygonData: [],
+ polygonFlag: false,
+ editToolbar: null,
+ addPolygonEntitys: null,
+
+ // 所有的面图层
+ entityPolygonAll: null,
+
+ // 用来存储区域名称
+ globalRegionName: null,
+
+ // 用来区域得最大最小经纬度
+ currentDrawing: [],
+
+ // 巡逻区域或者巡逻路线的描述
+ 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) {
+ debugger;
+ console.log("option=" + options);
+ this._map = options.map;
+ objThis = this;
+
+
+ this.addEntitys = new GraphicsLayer({ id: 'addEntitys' });
+
+ // 添加点面线的图层
+ this.addPolygonEntitys = new GraphicsLayer({ id: 'addPolygonEntitys' });
+ // 添加所有图层的地方
+ this.entityPolygonAll = new GraphicsLayer({ id: 'entityPolygonAll' });
+
+
+ this._map.addLayer(this.addEntitys);
+
+
+ this._map.addLayer(this.addPolygonEntitys);
+ this._map.addLayer(this.entityPolygonAll);
+
+
+ },
+
+
+ startup: function() {
+ objThis._map.addLayer(objThis._siteLayer);
+ var that = this;
+ // 保安出警管理表格中点击事件
+ $('.police-dispatching .police-container .police-container-policeforce .table .tbody tbody').off('click', 'input').on('click', 'input', function(event) {
+ event.stopPropagation();
+ var lgtd = Number($(this).parent().parent().attr('lgtd'));
+ var lttd = Number($(this).parent().parent().attr('lttd'));
+ var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
+ that.newElectronicFenceId = null;
+ that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
+ var graphic = that.entityPolygonAll.graphics;
+ for (var i = 0; i < graphic.length; i++) {
+ if (graphic[i].objId.id == $(this).attr('resultid')) {
+ if (graphic[i].geometry.rings[0].length > 0) {
+ that.polygonFlag = false;
+ that.electronicFence();
+ that.activateToolbar(graphic[i]);
+ } else {
+ layui.use('layer', function() {
+ layui.layer.msg('请开始划分电子围栏');
+ })
+ that.polygonFlag = true;
+ that.newElectronicFenceId = graphic[i].objId;
+ }
+ }
+ }
+ })
+
+ $('.police-dispatching .police-container .police-container-policeforce .table .tbody tbody').off('click', 'tr').on('click', 'tr', function(event) {
+ event.stopPropagation();
+ var lgtd = Number($(this).attr('lgtd'));
+ var lttd = Number($(this).attr('lttd'));
+ var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
+
+ that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
+
+ var snumber = $(this).attr('term-snumber');
+
+ var url = './popup/html/personnel-information-management.html?id=' + code;
+ layui.use('layer', function() {
+ that.layuiLayer = layui.layer;
+ that.layuiLayer.config({
+ extend: 'myskin/personnel-information-management.css'
+ });
+ that.layuiLayer.close(that.layuiLayer.index);
+ that.layuiLayer.open({
+ title: '保安人员信息',
+ type: 2,
+ shadeClose: true,
+ shade: false,
+ maxmin: false, //开启最大化最小化按钮
+ area: ['400px', '220px'],
+ offset: 'auto',
+ skin: 'personnel-information-management',
+ content: url,
+ closeBtn: 1,
+ });
+ })
+ })
+ },
+
+
+ open: function() {
+ var that = this;
+ debugger;
+ $.ajax({
+ url: '/api/blade-jfpts/alarm/alarm/listAll?',
+ type: 'get',
+ dataType: 'JSON',
+ success: function(data) {
+ var datas = data.data;
+ for (var i = 0; i < datas.length; i++) {
+ datas[i].x = Number(datas[i].jd);
+ datas[i].y = Number(datas[i].wd);
+ }
+ debugger;
+ that.flareClusterLayer(datas);
+ }
+ });
+
+ },
+
+
+ close: function() {
+
+ },
+
+ // 鼠标点击事件
+ clickHand: function() {},
+
+ //聚合图层事件
+ flareClusterLayer: function(datas) {
+ debugger;
+
+ var that = this;
+
+ var preClustered = false;
+ var displaySingleFlaresAtCount = 10;
+ var areaDisplayMode = "";
+ // var allData = JSON.parse(DATA);
+ // DataManager.setData(allData);
+
+ //init the layer, more options are available and explained in the cluster layer constructor
+ that.clusterLayer = new FlareClusterLayer({
+ id: "flare-cluster-layer",
+ spatialReference: new esri.SpatialReference({ "wkid": 4326 }),
+ subTypeFlareProperty: "facilityType",
+ singleFlareTooltipProperty: "name",
+ displaySubTypeFlares: true,
+ displaySingleFlaresAtCount: displaySingleFlaresAtCount,
+ flareShowMode: "mouse",
+ preClustered: preClustered,
+ clusterRatio: 75,
+ clusterAreaDisplay: areaDisplayMode,
+ clusteringBegin: function() {
+ console.log("clustering begin");
+ },
+ clusteringComplete: function() {
+ console.log("clustering complete");
+ }
+ });
+
+ //set up a class breaks renderer to render different symbols based on the cluster count. Use the required clusterCount property to break on.
+ var defaultSym = new PictureMarkerSymbol("./images/ceshi.png", 32, 32).setOffset(0, 15);
+ var renderer = new ClassBreaksRenderer(defaultSym, "clusterCount");
+ var xlSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 32, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([200, 52, 59, 0.8]), 1), new dojo.Color([250, 65, 74, 0.8]));
+ var lgSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 28, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([41, 163, 41, 0.8]), 1), new dojo.Color([51, 204, 51, 0.8]));
+ var mdSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 24, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([82, 163, 204, 0.8]), 1), new dojo.Color([102, 204, 255, 0.8]));
+ var smSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 22, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([230, 184, 92, 0.8]), 1), new dojo.Color([255, 204, 102, 0.8]));
+ renderer.addBreak(0, 19, smSymbol);
+ renderer.addBreak(20, 150, mdSymbol);
+ renderer.addBreak(151, 1000, lgSymbol);
+ renderer.addBreak(1001, Infinity, xlSymbol);
+
+ that.clusterLayer.setRenderer(renderer); //use standard setRenderer.
+
+ //set up a popup template
+ var template = new PopupTemplate({
+ title: "{name}",
+ fieldInfos: [
+ { fieldName: "facilityType", label: "Facility Type", visible: true },
+ { fieldName: "postcode", label: "Post Code", visible: true },
+ { fieldName: "isOpen", label: "Opening Hours", visible: true }
+ ]
+ });
+
+ //clusterLayer.infoTemplate = template;
+ that._map.infoWindow.titleInBody = false;
+
+ that._map.addLayer(that.clusterLayer);
+
+ //var data = DataManager.getData();
+ that.clusterLayer.addData(datas);
+
+ },
+ clearLayer: function() {
+ var that = this;
+ that._map.removeLayer(that.clusterLayer);
+ that.clusterLayer = null;
+ }
+
+
+ });
+ return Widget;
+});
\ No newline at end of file
--
Gitblit v1.9.3