/*
* @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/aPoliceTeam/template.html",
"base/AppEvent",
"base/ConfigData",
"widgets/aPoliceTeam/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/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
) {
var Widget = declare([BaseWidget], {
widgetName: "APoliceTeam",
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) {
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;
// 顶部tab得切换事件
$('.police-dispatching-tab li').click(function () {
if (that.tabIndex == $(this).index()) return;
if (that.entitysData.length > 0) {
that.addEntitys.clear();
that.entitysData = [];
}
that.patrolIndex = 0;
that.polygonFlag = false;
that.entityPolygonAll.clear();
that.modifyPolygon();
// 切换时清除新增点线面数组中保存得数据,与清除地图上得实体
that.polygonData = [];
that.addPolygonEntitys.clear();
$(this).addClass('on').siblings().removeClass('on');
var ind = $(this).index();
$($('.police-container > div')[ind]).stop().show().siblings().stop().hide();
if (ind == 0) {
$('#distributeCategory div:eq(0)').html('全部' + '');
$('#distributeState div:eq(0)').html('全部' + '');
that.getPoliceTable($('.police-container-distribute').find('.tbody tbody'), $('#dispatchingStartTime').val(), $('#dispatchingEndTime').val(), '', '', '');
} else if (ind == 1) {
// that.getOwnerTable($($('.analysis-container > div')[ind]).find('.tbody tbody'), '', '');
$('.police-dispatching .police-container .police-container-patrol .tab-header li:eq(0)').addClass('on').siblings().removeClass('on');
$('.police-dispatching .police-container .police-container-patrol .main-content>li:eq(0)').stop().show().siblings().hide();
that.patrolArea($('.police-dispatching .police-container .police-container-patrol .main-content>li:eq(0) .table .tbody tbody'), '');
} else if (ind == 2) {
that.getSecurityPeople($('.police-dispatching .police-container .police-container-policeforce .table .tbody tbody'), '');
}
that.tabIndex = $(this).index();
})
// 警情分发中的行点击事件
$('.police-container .police-container-distribute .table .tbody').off('click', 'tr').on('click', 'tr', function () {
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是缩放级别,可以自定义,数值越大缩放越大
})
// 编辑,跟进按钮元素的父元素的点击事件
$('.police-container .police-container-distribute .table .tbody').off('click', '.operation').on('click', '.operation', function (event) {
event.stopPropagation();
})
// 警情分发中的编辑按钮的点击事件
$('.police-container .police-container-distribute .table .tbody').off('click', '.edit').on('click', '.edit', function (event) {
event.stopPropagation();
that.editParentInd = null;
that.editParentInd = $(this).parent().parent().index();
var id = $(this).attr('term-list');
that.treatmentIndex = null;
if (!$('.police-container-distribute-details .security-guard-nearby').is(':hidden')) {
$('.police-container-distribute-details .security-guard-nearby').stop().hide();
}
if (!$('.police-container-distribute-details').is(':hidden')) {
$('.police-container-distribute-details').stop().hide();
}
$('.police-container-distribute-details .content table tbody').empty();
var str = '';
$.ajax({
url: 'http://61.131.136.25:2082/api/jingdan/jingdan/selectdInfo?deviceNumber=&id=' + id,
type: 'POST',
dataType: 'JSON',
success: function (data) {
var result = data.data[0];
var t = result.galarmTime.substr(0, 10);
var e = result.galarmTime.substr(11);
var time = t + ' ' + e;
str += "
| 报警人姓名: | " + result.galarmPeople + " | 联系方式: | " + result.phoneNumber + " |
";
str += " | 事发地址: | " + result.place + " | 行政区: | " + result.addvnm + " | >";
str += "
| 报警时间: | " + time + " | 报警内容: | " + result.content + " |
";
str += " | 警情级别: | " + result.level + " | 警情类别: | " + result.waringType + " |
";
str += " | 处理方式: | 派发保安 提示业主 | 处理人: | |
";
str += " | 是否上报110: | 是 否 | 设备编号: | " + result.deviceNumber + " |
";
$('.police-container-distribute-details .content table tbody').append(str);
$('.police-container-distribute-details .handle-button .confirm').attr('police-id', result.id);
$('.police-container-distribute-details .handle-button').stop().show();
$('.police-container-distribute-details .header h4').text('警情分发');
$('.police-container-distribute-details').stop().show();
$('.police-container-distribute-details .content table tbody').off('click', '.treatment-method input').on('click', '.treatment-method input', function () {
if (that.treatmentIndex != $(this).val()) {
if ($(this).val() == '派发保安') {
var str = '';
$('.police-container-distribute-details .security-guard-nearby .security-staff-content tbody').empty();
$.ajax({
url: 'http://61.131.136.25:2082/api/position/position/selectry',
type: 'POST',
data: {
coordinate: "point(" + $(this).attr('lgtd') + "," + $(this).attr('lttd') + ")"
},
dataType: 'JSON',
success: function (data) {
var result = data.data;
for (var i = 0; i < result.length; i++) {
str += " | " + (Number(i) + 1) + " | " + result[i].real_name + " | " + result[i].distance.toFixed(2) + " | |
"
}
$('.police-container-distribute-details .security-guard-nearby .security-staff-content tbody').append(str);
}
})
$('.police-container-distribute-details .security-guard-nearby').stop().show();
} else {
$('.police-container-distribute-details .content table tbody .securityname').text('');
$('.police-container-distribute-details .security-guard-nearby').stop().hide();
}
that.treatmentIndex = $(this).val();
}
})
}
})
})
// 警情分发中的详情的确认按钮
$('.police-container-distribute-details .handle-button .confirm').off('click').click(function () {
var self = this;
layui.use('layer', function () {
var layer = layui.layer;
if (that.treatmentIndex == null) {
layer.msg('请选择处理方式', {
shade: [0.8, '#393D49'],
time: 1000
})
return
} else {
if (that.treatmentIndex == '派发保安') {
if (that.securityFlag == false) {
layer.msg('请选取保安', {
shade: [0.8, '#393D49'],
time: 1000
})
return
}
}
}
var id = $(self).attr('police-id');
var handletype = null;
if (that.treatmentIndex != null) {
if (that.treatmentIndex == '派发保安') {
handletype = '0';
} else {
handletype = '1';
}
}
// 发送请求修改警单数据
$.ajax({
url: 'http://61.131.136.25:2082/api/jingdan/jingdan/updateInfo',
type: 'POST',
data: {
id: id,
// handleP: $('.police-container-distribute-details .content table tbody tr:eq(4) td:eq(3)').attr('people-id'),
// handName: $('.police-container-distribute-details .content table tbody tr:eq(4) td:eq(3)').text(),
handleP: $('.police-container-distribute-details .content table tbody .securityname').attr('id'),
handName: $('.police-container-distribute-details .content table tbody .securityname').text(),
handletype: handletype,
type: '2'
},
dataType: 'JSON',
success: function (data) {
if (data.code == 200) {
if (!$('.police-container-distribute-details .security-guard-nearby').is(':hidden')) {
$('.police-container-distribute-details .security-guard-nearby').stop().hide();
}
$('.police-container-distribute-details').stop().hide();
$('.police-container .police-container-distribute .table .tbody tr:eq(' + that.editParentInd + ') td:eq(2)').text('处理中');
$('.police-container .police-container-distribute .table .tbody tr:eq(' + that.editParentInd + ') td:eq(4)').html("");
}
}
})
});
})
// 警情分发中的跟进按钮的点击事件
$('.police-container .police-container-distribute .table .tbody').off('click', '.follow-up').on('click', '.follow-up', function () {
var id = $(this).attr('term-list');
if (!$('.police-container-distribute-details').is(':hidden')) {
$('.police-container-distribute-details').stop().hide();
}
$('.police-container-distribute-details .content table tbody').empty();
var str = '';
$.ajax({
url: 'http://61.131.136.25:2082/api/jingdan/jingdan/selectdInfo?deviceNumber=&id=' + id,
type: 'POST',
dataType: 'JSON',
success: function (data) {
var result = data.data[0];
var t = result.galarmTime.substr(0, 10);
var e = result.galarmTime.substr(11);
var time = t + ' ' + e;
str += " | 报警人姓名: | " + result.galarmPeople + " | 联系方式: | " + result.phoneNumber + " |
";
str += " | 事发地址: | " + result.place + " | 行政区: | " + result.addvnm + " | >";
str += "
| 报警时间: | " + time + " | 报警内容: | " + result.content + " |
";
str += " | 警情级别: | " + result.level + " | 警情类别: | " + result.waringType + " |
";
str += " | 处理方式: | " + (result.type == 2 ? '处理中' : '待处理') + " | 处理人: | " + result.handName + " |
";
str += " | 是否上报110: | 是 否 | 设备编号: | " + 1111 + " |
";
$('.police-container-distribute-details .content table tbody').append(str);
$('.police-container-distribute-details .header h4').text('警情跟进');
$('.police-container-distribute-details .handle-button').stop().hide();
$('.police-container-distribute-details').stop().show();
}
})
})
// 警情分发中的详情的取消按钮
$('.police-container-distribute-details .handle-button .cancel').off('click').click(function () {
if (!$('.police-container-distribute-details .security-guard-nearby').is(':hidden')) {
$('.police-container-distribute-details .security-guard-nearby').stop().hide();
}
$('.police-container-distribute-details').stop().hide();
})
// 警情分发中详情的关闭按钮
$('.police-container-distribute-details .header .close').off('click').click(function () {
if (!$('.police-container-distribute-details .security-guard-nearby').is(':hidden')) {
$('.police-container-distribute-details .security-guard-nearby').stop().hide();
}
$('.police-container-distribute-details').stop().hide();
})
// 派发保安的确认按钮
$('.police-container-distribute-details .security-guard-nearby .security-staff-confirm input').off('click').click(function () {
var list = $('.police-container-distribute-details .security-guard-nearby .security-staff-content input');
that.securityFlag = false;
var id = null;
var securityname = null;
for (var i = 0; i < list.length; i++) {
if ($(list[i]).prop('checked') == true) {
that.securityFlag = true;
id = $(list[i]).attr('securityid');
securityname = $(list[i]).attr('securityname');
break;
}
}
if (that.securityFlag == false) {
layui.use('layer', function () {
var layer = layui.layer;
layer.msg('请选取保安', {
shade: [0.8, '#393D49'],
time: 1000
})
});
} else {
$('.police-container-distribute-details .content table tbody .securityname').attr('id', id).text(securityname);
$('.police-container-distribute-details .security-guard-nearby').stop().hide();
}
})
// 警情信息中类别移入事件
$('#distributeCategory').mouseenter(function () {
if ($('#distributeCategory .select-list').is(':hidden')) {
$('#distributeCategory .select-list').stop().slideDown(0);
}
})
// 警情信息中得类别移出事件
$('#distributeCategory').mouseleave(function () {
if (!$('#distributeCategory .select-list').is(':hidden')) {
$('#distributeCategory .select-list').stop().slideUp(0);
}
})
// 警情信息中类别移入事件
$('#distributeState').mouseenter(function () {
if ($('#distributeState .select-list').is(':hidden')) {
$('#distributeState .select-list').stop().slideDown(0);
}
})
// 警情信息中得类别移出事件
$('#distributeState').mouseleave(function () {
if (!$('#distributeState .select-list').is(':hidden')) {
$('#distributeState .select-list').stop().slideUp(0);
}
})
// 警情信息类,业主信息类,设备信息类别,具体项的点击事件
$('.police-container > div .select-list').off('click', 'li').on('click', 'li', function (event) {
var text = $(this).text();
$(this).parent().parent().prev().html(text + '');
$(this).parent().parent().stop().slideUp(0);
if (text == '全部') text = '';
var textOrr = '';
var textList = '';
var stateType = '';
if (that.tabIndex == 0) {
// that.getPoliceTable($('.analysis-container-police').find('.tbody tbody'), $('#dispatchingStartTime').val(), $('#dispatchingEndTime').val(), text);
if ($(this).attr('key')) {
textOrr = $('#distributeState div:eq(0)').text().trim();
textList = $('.police-dispatching .police-container .distribute-state .select-list ul li');
for (var i = 0; i < textList.length; i++) {
if (textOrr == $(textList[i]).text()) {
stateType = $(textList[i]).attr('statetype');
}
}
that.getPoliceTable($('.police-container-distribute').find('.tbody tbody'), $('#dispatchingStartTime').val(), $('#dispatchingEndTime').val(), '', $(this).attr('addvcd'), stateType);
} else {
textOrr = $('#distributeCategory div:eq(0)').text().trim();
textList = $('.police-dispatching .police-container .distribute-district .select-list ul li');
for (var i = 0; i < textList.length; i++) {
if (textOrr == $(textList[i]).text()) {
stateType = $(textList[i]).attr('addvcd');
}
}
that.getPoliceTable($('.police-container-distribute').find('.tbody tbody'), $('#dispatchingStartTime').val(), $('#dispatchingEndTime').val(), '', stateType, $(this).attr('stateType'));
}
}
})
// 时间查询
$('#dispatchingSelectTime').off('click').click(function () {
var times = $(this).prevAll();
// 开始时间
var startTime = $(times[1]).val();
// 结束时间
var endTime = $(times[0]).val();
var textOne = $('#distributeCategory div:eq(0)').text().trim();
var addvcd = '';
var list = $('.police-dispatching .police-container .distribute-district .select-list ul li');
if (textOne == '全部') {
addvcd = '';
} else {
if (list.length > 0) {
for (var i = 0; i < list.length; i++) {
if (textOne == $(list[i]).text()) {
addvcd = $(list[i]).attr('addvcd')
}
}
}
}
var textTwo = $('#distributeState div:eq(0)').text().trim();
var stateType = '';
var stateList = $('.police-dispatching .police-container .distribute-state .select-list ul li');
if (textTwo == '全部') {
stateType = '';
} else {
if (stateList.length > 0) {
for (var i = 0; i < stateList.length; i++) {
if (textTwo == $(stateList[i]).text()) {
stateType = $(stateList[i]).attr('statetype')
}
}
}
}
that.getPoliceTable($('.police-container-distribute').find('.tbody tbody'), startTime, endTime, '', addvcd, stateType);
})
// 巡逻区域中的行点击事件
$('.police-container .police-container-patrol .main-content>li:eq(0) .table .tbody').off('click', 'tr').on('click', 'tr', function () {
var flyid = $(this).attr('flyid');
var flyname = $(this).attr('flyname');
var extent = null;
for (var i = 0; i < that.currentDrawing.length; i++) {
if (flyid == that.currentDrawing[i].id && flyname == that.currentDrawing[i].regionName) {
extent = that.currentDrawing[i].extent;
}
}
// debugger
that._map.setExtent(extent.expand(1.5));
// var myFeatureExtent = new Extent(extent.)
// thisObj._map.setExtent(myFeatureExtent.expand(2));
// 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, 14);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
})
// 巡逻区域的新增按钮
$('.police-container .police-container-patrol .main-content>li:eq(0) .distribute-table-content .operation .add').off('click').click(function () {
var url = './popup/html/region-name.html';
layui.use('layer', function () {
that.layuiLayer = layui.layer;
that.layuiLayer.config({
extend: 'myskin/region-name.css'
});
that.layuiLayer.close(that.layuiLayer.index);
that.layuiLayer.open({
title: '区域名称',
type: 2,
shadeClose: false,
shade: 0.3,
maxmin: false, //开启最大化最小化按钮
area: ['320px', '206px'],
offset: 'auto',
skin: 'region-name',
content: url,
closeBtn: 1,
success: function (layero, index) {
layero.find('iframe').contents().find(".start-editing").off('click').click(function () {
// 区域名称
var regionName = layero.find('iframe').contents().find('.region-name-input').val();
var regionDescribe = layero.find('iframe').contents().find('.region-name-textarea').val();
if (regionName == '') {
that.layuiLayer.msg('请填写区域名称', {
time: 1000
})
return
}
if (regionDescribe == '') {
that.layuiLayer.msg('请填写区域描述', {
time: 1000
})
return
}
that.globalRegionName = regionName;
that.routeOrRegionDescribe = regionDescribe;
// 开启,可以勾选线段
that.polygonFlag = true;
that.layuiLayer.close(index);
})
}
});
})
})
// 查找按钮
$('.police-container .police-container-patrol .main-content>li:eq(0) .distribute-table-content .operation .query').off('click').click(function () {
var routerName = $('.police-container .police-container-patrol .main-content>li:eq(0) .distribute-table-content .route-name').val();
// if (routerName == '') {
// layui.use('layer', function () {
// layui.layer.msg('请填写区域名称', {
// time: 1000
// })
// })
// return
// }
that.patrolArea($('.police-dispatching .police-container .police-container-patrol .table .tbody tbody'), routerName);
$('.police-container .police-container-patrol .main-content>li:eq(0) .distribute-table-content .route-name').val('');
})
// 保安出警管理表格中点击事件
$('.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=' + snumber;
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,
});
})
})
$('.police-dispatching .police-container .police-container-policeforce .table .tbody tbody').off('click', 'tr td').on('click', 'tr td', function (event) {
if ($(this).index() == 4) {
event.stopPropagation();
return;
}
})
// 巡逻管理中,巡逻路线和巡逻区域的切换换
$('.police-dispatching .police-container .police-container-patrol .tab-header li').off('click').click(function () {
if (that.patrolIndex == $(this).index()) return;
$(this).addClass('on').siblings().removeClass('on');
$(".police-dispatching .police-container .police-container-patrol .main-content li:eq(" + $(this).index() + ")").stop().show().siblings().stop().hide();
that.polygonFlag = false;
that.entityPolygonAll.clear();
that.modifyPolygon();
// 切换时清除新增点线面数组中保存得数据,与清除地图上得实体
that.polygonData = [];
that.addPolygonEntitys.clear();
if ($(this).index() == 1) {
$('.police-dispatching .police-container .police-container-patrol .main-content .select-list ul').empty();
$.ajax({
url: 'http://61.131.136.25:2082/api/regions/regions/selectqy',
type: 'GET',
dataType: 'JSON',
success: function (res) {
var result = res.data;
$('.police-dispatching .police-container .police-container-patrol .main-content .select>ul>li>div:eq(0)').html(result[0].regionName + '').attr('regionId', result[0].regionId);
for (var i = 0; i < result.length; i++) {
$('.police-dispatching .police-container .police-container-patrol .main-content .select-list ul').append($("" + result[i].regionName + ""))
}
}
})
that.getRouteInformation($('.police-dispatching .police-container .police-container-patrol .main-content>li:eq(1) .table .tbody tbody'), '');
} else {
that.patrolArea($('.police-dispatching .police-container .police-container-patrol .main-content>li:eq(0) .table .tbody tbody'), '');
}
that.patrolIndex = $(this).index();
})
// 巡逻管理下面的巡逻路线中的select选择框的移入事件
$('#patrolRoute').mouseenter(function () {
if ($('#patrolRoute .select-list').is(':hidden')) {
$('#patrolRoute .select-list').stop().slideDown(0);
}
})
// 巡逻管理下面的巡逻路线中的select选择框的移出事件
$('#patrolRoute').mouseleave(function () {
if (!$('#patrolRoute .select-list').is(':hidden')) {
$('#patrolRoute .select-list').stop().slideUp(0);
}
})
// 巡逻路线中区域选择的具体项的点击事件
$('.police-dispatching .police-container .police-container-patrol .select-list').off('click', 'li').on('click', 'li', function (event) {
var text = $(this).text();
$(this).parent().parent().prev().html(text + '').attr('regionId', $(this).attr('regionId'));
$(this).parent().parent().stop().slideUp(0);
})
// 巡逻路线中的新增按钮的点击事件
$('.police-dispatching .police-container .police-container-patrol .main-content>li:eq(1) .add').off('click').click(function () {
var url = './popup/html/route-name-layer.html';
layui.use('layer', function () {
that.layuiLayer = layui.layer;
that.layuiLayer.config({
extend: 'myskin/route-name-layer.css'
});
that.layuiLayer.closeAll();
that.layuiLayer.open({
title: '路线名称及描述',
type: 2,
shadeClose: false,
shade: 0.3,
maxmin: false, //开启最大化最小化按钮
area: ['320px', '266px'],
offset: 'auto',
skin: 'route-name-layer',
content: url,
closeBtn: 1,
resize: false,
success: function (layero, index) {
layero.find('iframe').contents().find(".start-editing").off('click').click(function () {
// 区域名称 or 路线名称
var routeName = layero.find('iframe').contents().find('.route-name-layer-input').val();
var routeDescribe = layero.find('iframe').contents().find('.route-name-layer-textarea').val();
var peopleRealName = layero.find('iframe').contents().find('.route-personnel').val();
var pepleRealId = layero.find('iframe').contents().find('.route-personnel').attr('peopleid');
if (routeName == '') {
that.layuiLayer.msg('请填写路线名称', {
time: 1000
})
return
}
if (routeDescribe == '') {
that.layuiLayer.msg('请填写路线描述', {
time: 1000
})
return
}
if (pepleRealId == '') {
that.layuiLayer.msg('请选择人员', {
time: 1000
})
return
}
that.peopleRealName = peopleRealName;
that.pepleRealId = pepleRealId;
that.globalRegionName = routeName;
that.routeOrRegionDescribe = routeDescribe;
// // 开启,可以勾选线段
that.polygonFlag = true;
that.layuiLayer.close(index);
})
}
});
})
})
// 巡逻路线行点击事件
$('.police-container .police-container-patrol .main-content>li:eq(1) .table .tbody').off('click', 'tr').on('click', 'tr', function () {
var flyid = $(this).attr('flyid');
var flyname = $(this).attr('flyname');
var extent = null;
for (var i = 0; i < that.currentDrawing.length; i++) {
if (flyid == that.currentDrawing[i].id && flyname == that.currentDrawing[i].routeName) {
extent = that.currentDrawing[i].extent;
}
}
that._map.setExtent(extent.expand(1.5));
})
$('.police-container .police-container-patrol .main-content>li:eq(1) .table .tbody').off('click', 'tr td').on('click', 'tr td', function (event) {
if ($(this).index() == 4) {
event.stopPropagation();
return;
}
})
$('.police-container .police-container-patrol .main-content>li:eq(1) .table .tbody').off('click', 'input').on('click', 'input', function (event) {
event.stopPropagation();
var routeName = $(this).parent().parent().children('td:eq(2)').text();
var routeId = $(this).parent().parent().attr('flyid');
var peopleName = $(this).parent().parent().children('td:eq(1)').text();
var self = this;
var url = './popup/html/routename-and-peoplename.html?routeName=' + routeName + '&routeId=' + routeId + '&peopleName=' + peopleName;
layui.use('layer', function () {
that.layuiLayer = layui.layer;
that.layuiLayer.config({
extend: 'myskin/routename-and-peoplename.css'
});
that.layuiLayer.closeAll();
that.layuiLayer.open({
title: '路线巡逻人员',
type: 2,
shadeClose: false,
shade: 0.3,
maxmin: false, //开启最大化最小化按钮
area: ['320px', '172px'],
offset: 'auto',
skin: 'routename-and-peoplename',
content: url,
closeBtn: 1,
resize: false,
success: function (layero, index) {
layero.find('iframe').contents().find(".confirm-update").off('click').click(function () {
// 区域名称 or 路线名称
var peoplelayerName = layero.find('iframe').contents().find('.peoplename-update').val();
var peoplelayerId = layero.find('iframe').contents().find('.peoplename-update').attr('peopleid');
console.log(peoplelayerName, peoplelayerId);
if (peoplelayerName == peopleName) {
that.layuiLayer.close(index);
that.layuiLayer.msg('人员未更改!');
} else {
$.ajax({
url: 'http://61.131.136.25:2082/api/duty/duty/updatedtInfo',
type: 'POST',
data: {
rid: routeId,
snumber: peoplelayerId,
sname: peoplelayerName
},
dataType: 'JSON',
success: function (res) {
if (res.code == 200) {
that.layuiLayer.close(index);
$(self).parent().parent().children('td:eq(1)').text(peoplelayerName);
that.layuiLayer.msg('人员已更改!');
}
}
})
}
})
}
});
})
})
// 查找按钮
$('.police-container .police-container-patrol .main-content>li:eq(1) .distribute-table-content .operation .query').off('click').click(function () {
var routerName = $('.police-container .police-container-patrol .main-content>li:eq(1) .distribute-table-content .route-name').val();
// if (routerName == '') {
// layui.use('layer', function () {
// layui.layer.msg('请填写区域名称', {
// time: 1000
// })
// })
// return
// }
that.getRouteInformation($('.police-dispatching .police-container .police-container-patrol .main-content>li:eq(1) .table .tbody tbody'), routerName);
$('.police-container .police-container-patrol .main-content>li:eq(1) .distribute-table-content .route-name').val('');
})
},
open: function () {
var that = this;
$("#tabcontainer").css("width", "360px");
$('#mapcontentClass').addClass('client-max-map'); //追加样式
AppEvent.dispatchAppEvent(AppEvent.APPLICATION_RESIZE, {});
document.oncontextmenu = function (event) {
event.preventDefault();
};
document.getElementById('mainMapWidget').onmousedown = function (event) {
if (event.button == 2) {
if (that.polygonData.length < 2) {
layui.use('layer', function () {
layui.layer.msg('不能形成区域,请继续划分!!!')
})
return;
}
if (that.polygonFlag == true) {
// 勾画最后一个点
var normalizedVal = webMercatorUtils.xyToLngLat(event.mapPoint.x, event.mapPoint.y);
that.polygonData.push([normalizedVal[0], normalizedVal[1]]);
// 声明空字符串,存储数据
var dataStr = '';
var data = null;
if (that.patrolIndex == 1) {
that.addPolyline(that.addPolygonEntitys, that.polygonData);
// 获取数据
data = that.addPolygonEntitys.graphics[0].geometry.paths[0];
} else {
that.addPolygon(that.addPolygonEntitys, that.polygonData);
// 获取数据
data = that.addPolygonEntitys.graphics[0].geometry.rings[0];
}
for (var i = 0; i < data.length; i++) {
dataStr += (data[i][0] + ' ' + data[i][1] + ',');
}
// 组装数据
dataStr = dataStr.substring(0, dataStr.length - 1);
if (that.tabIndex == 1) {
if (that.patrolIndex == 1) {
$.ajax({
url: 'http://61.131.136.25:2082/api/routeIn/routein/insertlx',
type: 'POST',
dataType: 'JSON',
data: {
routeName: that.globalRegionName,
regionId: $('#patrolRoute div:eq(0)').attr('regionid'),
routeInfo: dataStr,
remarks: that.routeOrRegionDescribe,
creatName: ''
},
success: function (result) {
if (result.code == 200) {
that.addPolygonEntitys.clear();
that.polygonData = [];
that.getRouteInformation($('.police-dispatching .police-container .police-container-patrol .table .tbody tbody'), '');
$.ajax({
url: 'http://61.131.136.25:2082/api/duty/duty/insertduty',
type: 'POST',
dataType: 'JSON',
data: {
sname: that.peopleRealName,
snumber: that.pepleRealId,
rid: result.data,
regionId: $('#patrolRoute div:eq(0)').attr('regionid'),
type: 0
},
success: function (data) {
if (data.code == 200) {
}
}
})
}
}
})
// that.peopleRealName = peopleRealName;
// that.pepleRealId = pepleRealId;
} else {
$.ajax({
url: 'http://61.131.136.25:2082/api/regions/regions/insterqy',
type: 'POST',
dataType: 'JSON',
data: {
regionName: that.globalRegionName,
coordinate: dataStr,
remarks: that.routeOrRegionDescribe
},
success: function (result) {
if (result.code == 200) {
that.addPolygonEntitys.clear();
that.polygonData = [];
that.patrolArea($('.police-dispatching .police-container .police-container-patrol .table .tbody tbody'), '');
}
}
})
}
} else if (that.tabIndex == 2) {
$.ajax({
url: 'http://61.131.136.25:2082/api/enclosure/enclosure/insertes',
type: 'POST',
dataType: 'JSON',
data: {
anumber: that.newElectronicFenceId.anumber,
aname: that.newElectronicFenceId.aname,
routeInfo: dataStr
},
success: function (result) {
if (result.code == 200) {
that.addPolygonEntitys.clear();
that.polygonData = [];
that.getSecurityPeople($('.police-dispatching .police-container .police-container-policeforce .table .tbody tbody'), '');
}
}
})
}
}
that.polygonFlag = false;
// that.polygonData = [];
}
}
that.treatmentIndex = null;
that.tabIndex = 0;
$('.police-dispatching-tab li:eq(0)').addClass('on').siblings().removeClass('on');
$($('.police-container > div')[0]).stop().show().siblings().stop().hide();
$('.police-dispatching .police-container .distribute-district .select-list ul').empty();
$('.police-dispatching .police-container .distribute-district .select-list ul').append("全部");
$.ajax({
url: 'http://61.131.136.25:2082/api/district/district/selectList',
type: 'POST',
dataType: 'JSON',
success: function (data) {
for (var i = 0; i < data.data.length; i++) {
$('.police-dispatching .police-container .distribute-district .select-list ul').append("" + data.data[i].addvnm + "");
}
}
})
layui.use('laydate', function () {
that.layuiLadate = layui.laydate;
//执行一个laydate实例 开始
that.layuiLadate.render({
elem: '#dispatchingStartTime', //指定元素
type: "datetime",
format: 'yyyy-MM-dd HH:mm',
btns: ['confirm'],
trigger: 'click',
});
// 结束
that.layuiLadate.render({
elem: '#dispatchingEndTime', //指定元素
type: "datetime",
format: 'yyyy-MM-dd HH:mm',
btns: ['confirm'],
trigger: 'click',
});
});
// that.getPoliceTable($('.police-container-distribute').find('.tbody tbody'), $('#dispatchingStartTime').val(), $('#dispatchingEndTime').val(), '', '', '');
that.clickHand();
$('.police-dispatching-tab li:eq(2)').trigger('click');
},
close: function () {
$("#tabcontainer").css("width", "66%");
$('#mapcontentClass').removeClass('client-max-map'); //删除样式
this.entitysData = [];
this.addEntitys.clear();
this.entityPolygonAll.clear();
this.modifyPolygon();
// 切换时清除新增点线面数组中保存得数据,与清除地图上得实体
this.polygonData = [];
this.addPolygonEntitys.clear();
},
// 鼠标点击事件
clickHand: function () {
var self = this;
self._map.onClick = mapClick;
// $('#mainMapWidget')[0].ondblclick = function (event) {
// event.preventDefault();
// // if ()
// self.activateToolbar(event.graphic);
// return false;
// };
function mapClick(evt) {
var normalizedVal = webMercatorUtils.xyToLngLat(evt.mapPoint.x, evt.mapPoint.y);
var y = self._map.toMap({
spatialReference: '4326',
type: "point",
x: evt.screenPoint.x,
y: evt.screenPoint.y,
});
if (self.tabIndex == 0) {
if (evt.graphic) {
var result = evt.graphic.geometry.entityData;
// var liText = evt.graphic.symbol.name;
self.policeDetails(result.id);
}
} else if (self.tabIndex == 1) {
if (self.patrolIndex == 1) {
// 编辑中的
if (self.polygonFlag == true) {
var normalizedVal = webMercatorUtils.xyToLngLat(evt.mapPoint.x, evt.mapPoint.y);
if (self.polygonData.length == 0) {
self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
self.addPoint(self.addPolygonEntitys, normalizedVal[0], normalizedVal[1]);
} else {
self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
self.addPolyline(self.addPolygonEntitys, self.polygonData);
return;
}
} else { // 不在编辑中
if (evt.graphic) { // 点击在图形上
// 保存当前点击得图形
// self.currentDrawing = evt.graphic;
self.modifyPolygon();
self.activateToolbar(evt.graphic);
} else { // 点击不在图形上
self.modifyPolygon()
}
}
} else {
// 编辑中的
if (self.polygonFlag == true) {
var normalizedVal = webMercatorUtils.xyToLngLat(evt.mapPoint.x, evt.mapPoint.y);
if (self.polygonData.length == 0) {
self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
self.addPoint(self.addPolygonEntitys, normalizedVal[0], normalizedVal[1]);
} else if (self.polygonData.length == 1) {
self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
self.addPolyline(self.addPolygonEntitys, self.polygonData);
return;
} else if (self.polygonData.length > 1) {
self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
self.addPolygon(self.addPolygonEntitys, self.polygonData);
}
} else { // 不在编辑中
if (evt.graphic) { // 点击在图形上
// 保存当前点击得图形
// self.currentDrawing = evt.graphic;
self.modifyPolygon();
self.activateToolbar(evt.graphic);
} else { // 点击不在图形上
self.modifyPolygon()
}
}
}
} else if (self.tabIndex == 2) {
if (self.polygonFlag == true) {
var normalizedVal = webMercatorUtils.xyToLngLat(evt.mapPoint.x, evt.mapPoint.y);
if (self.polygonData.length == 0) {
self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
self.addPoint(self.addPolygonEntitys, normalizedVal[0], normalizedVal[1]);
} else if (self.polygonData.length == 1) {
self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
self.addPolyline(self.addPolygonEntitys, self.polygonData);
return;
} else if (self.polygonData.length > 1) {
self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
self.addPolygon(self.addPolygonEntitys, self.polygonData);
}
} else {
if (evt.graphic) { // 点击在图形上
// 保存当前点击得图形
// self.currentDrawing = evt.graphic;
self.electronicFence();
self.activateToolbar(evt.graphic);
} else { // 点击不在图形上
self.electronicFence()
}
}
// self.equipmentDetails(result.id);
}
}
// 提示信息
$(document).off('mousemove').mousemove(function (e) {
var y = e.clientY + 10;
var x = e.clientX + 20;
if (e.clientX < 40) {
var x = 40;
}
if (e.clientY < 42) {
y = 42;
}
if (e.clientY > ($(window).height() - 82)) {
y = ($(window).height() - 66);
}
if (e.clientX > ($(window).width() - 184)) {
x = ($(window).width() - 184);
}
if (self.tabIndex == 1 || self.tabIndex == 2) {
if (self.polygonFlag == true) {
$('.police-dispatching .tips').stop().show();
if (self.polygonData.length == 0) {
$('.police-dispatching .tips').text('单击左键开始绘制。');
} else {
if (e.clientY > ($(window).height() - 98)) {
y = ($(window).height() - 88);
}
$('.police-dispatching .tips').text('单击左键新增加点。单击右键完成绘制。');
}
$('.police-dispatching .tips').css({
'top': y,
'left': x,
})
} else {
$('.police-dispatching .tips').stop().hide();
}
} else {
$('.police-dispatching .tips').stop().hide();
}
})
},
// 警情详情弹框
/**
*
* @param {number} id 警情ID
*/
policeDetails: function (id) {
var that = this;
var url = './popup/html/police-details.html?obj=' + id;
layui.use('layer', function () {
that.layuiLayer = layui.layer;
that.layuiLayer.config({
extend: 'myskin/police-details.css'
});
that.layuiLayer.close(that.layuiLayer.index);
that.layuiLayer.open({
title: '警情详情',
type: 2,
shadeClose: true,
shade: false,
maxmin: false, //开启最大化最小化按钮
area: ['500px', '400px'],
offset: 'auto',
skin: 'police-details',
content: url,
closeBtn: 1,
});
})
},
// 业主详情弹框
/**
*
* @param {number} id 警情ID
*/
ownerDetails: function (id) {
var that = this;
var url = './popup/html/owner-details.html?id=' + id;
layui.use('layer', function () {
that.layuiLayer = layui.layer;
that.layuiLayer.config({
extend: 'myskin/owner-details.css'
});
that.layuiLayer.close(that.layuiLayer.index);
that.layuiLayer.open({
title: '业主详情',
type: 2,
shadeClose: true,
shade: false,
maxmin: false, //开启最大化最小化按钮
area: ['500px', '340px'],
offset: 'auto',
skin: 'owner-details',
content: url,
closeBtn: 1,
});
})
},
// 设备详情弹框
/**
*
* @param {number} id 设备ID
*/
equipmentDetails: function (id) {
var that = this;
var url = './popup/html/equipment-details.html?obj=' + id;
layui.use('layer', function () {
that.layuiLayer = layui.layer;
that.layuiLayer.config({
extend: 'myskin/equipment-details.css'
});
that.layuiLayer.close(that.layuiLayer.index);
that.layuiLayer.open({
title: '警情详情',
type: 2,
shadeClose: true,
shade: false,
maxmin: false, //开启最大化最小化按钮
area: ['520px', '320px'],
offset: 'auto',
skin: 'equipment-details',
content: url,
closeBtn: 1,
});
})
},
// 获取当前时间,以及昨天现在的时间
getTime: function getTime() {
var timestamp = Date.parse(new Date());
// 当前时间
var currentTime = new Date(timestamp);
// 年
var currentY = currentTime.getFullYear();
// 月
var currentM = currentTime.getMonth() + 1 < 10 ? '0' + (currentTime.getMonth() + 1) : currentTime.getMonth() + 1;
// 日
var currentD = currentTime.getDate() < 10 ? '0' + currentTime.getDate() : currentTime.getDate();
// 时
var currentH = currentTime.getHours() < 10 ? '0' + currentTime.getHours() : currentTime.getHours();
// 分
var currentDd = currentTime.getMinutes() < 10 ? '0' + currentTime.getMinutes() : currentTime.getMinutes();
// 明天
var tomorrowTime = new Date(timestamp - 60 * 60 * 24 * 1000);
// 年
var tomorrowY = tomorrowTime.getFullYear();
// 月
var tomorrowM = tomorrowTime.getMonth() + 1 < 10 ? '0' + (tomorrowTime.getMonth() + 1) : tomorrowTime.getMonth() + 1;
// 日
var tomorrowD = tomorrowTime.getDate() < 10 ? '0' + tomorrowTime.getDate() : tomorrowTime.getDate();
// 时
var tomorrowH = tomorrowTime.getHours() < 10 ? '0' + tomorrowTime.getHours() : tomorrowTime.getHours();
// 分
var tomorrowDd = tomorrowTime.getMinutes() < 10 ? '0' + tomorrowTime.getMinutes() : tomorrowTime.getMinutes();
return {
current: currentY + '-' + currentM + '-' + currentD + ' ' + currentH + ':' + currentDd,
tomorrow: tomorrowY + '-' + tomorrowM + '-' + tomorrowD + ' ' + tomorrowH + ':' + tomorrowDd,
month: currentM + currentD
};
},
// 获取警情信息列表
/**
*
* @param {object} dom jq对象
* @param {string} beginTime 开始时间
* @param {string} endTime 结束时间
* @param {*} waringType 警情的类别
*/
getPoliceTable: function (dom, beginTime, endTime, waringType, addvcd, type) {
dom.empty();
var that = this;
$.ajax({
url: 'http://61.131.136.25:2082/api/jingdan/jingdan/selectList',
type: 'POST',
dataType: 'JSON',
data: {
beginTime: beginTime,
endTime: endTime,
waringType: waringType,
addvcd: addvcd,
type: type
},
success: function (data) {
var result = data.data;
var str = '';
that.entitysData = [];
that.addEntitys.clear();
for (var a, time, t, e, y, h, i = 0; i < result.length; i++) {
if (result[i].type != 1) {
that.createEntitys(that.addEntitys, that.entitysData, '警情信息', {
lgtd: result[i].jd,
lttd: result[i].wd,
id: result[i].id
}, result[i].jd, result[i].wd, './images/jingbaored.png');
t = result[i].galarmTime.substr(0, 10);
e = result[i].galarmTime.substr(11);
time = t + ' ' + e;
y = result[i].galarmTime.substr(5, 5);
h = result[i].galarmTime.substr(11, 5);
a = Number(i) + 1;
str += '';
str += '| ' + a + ' | ';
str += '' + result[i].addvnm + ' | ';
str += '' + (result[i].type == 2 ? '处理中' : '待处理') + ' | ';
str += "" + y + ' ' + h + " | ";
if (result[i].type == 2) {
str += " | ";
} else {
str += " | ";
}
str += '
';
dom.append(str);
str = '';
}
}
for (var i = 0; i < 1000; i++) {
var dd = Math.random();
var cc = Math.random();
}
}
})
},
// 获取区域信息列表
patrolArea: function (dom, regionName) {
dom.empty();
var that = this;
that.currentDrawing = [];
that.entityPolygonAll.clear();
$.ajax({
url: 'http://61.131.136.25:2082/api/regions/regions/selectList',
type: 'POST',
dataType: 'JSON',
data: {
regionName: regionName
},
success: function (data) {
var result = data.data;
var str = '';
var entityArr = [];
var objId = {};
var entityData = '';
for (var i = 0; i < result.length; i++) {
entityArr = [];
objId = {};
entityData = result[i].coordinate.match(/\(([^)]*)\)/);
// 此时result=["(dsfasjfj3124123)", "dsfasjfj3124123"];
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])]);
}
}
objId.id = result[i].id;
objId.regionId = result[i].regionId;
objId.regionName = result[i].regionName;
objId.remarks = result[i].remarks;
that.addPolygonAll(that.entityPolygonAll, entityArr, objId);
str += " | " + (Number(i) + 1) + " | " + result[i].regionName + " | " + result[i].ttime + " |
";
dom.append(str);
str = '';
}
}
})
},
// 获取路线信息列表
getRouteInformation: function (dom, routeName) {
dom.empty();
var that = this;
that.currentDrawing = [];
that.entityPolygonAll.clear();
$.ajax({
url: 'http://61.131.136.25:2082/api/routeIn/routein/selectList',
type: 'POST',
dataType: 'JSON',
data: {
routeName: routeName
},
success: function (data) {
var result = data.data;
var str = '';
var entityArr = [];
var objId = {};
var entityData = '';
for (var i = 0; i < result.length; i++) {
entityArr = [];
objId = {};
entityData = result[i].routeInfo.match(/\(([^)]*)\)/);
// 此时result=["(dsfasjfj3124123)", "dsfasjfj3124123"];
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])]);
}
}
objId.id = result[i].id;
objId.regionId = result[i].regionId;
objId.routeName = result[i].routeName;
objId.remarks = result[i].remarks;
that.addPolygonAll(that.entityPolygonAll, entityArr, objId);
str += " | " + (Number(i) + 1) + " | " + result[i].real_name + " | " + result[i].routeName + " | " + result[i].rtime.substr(5, 11) + " | |
";
dom.append(str);
str = '';
}
}
})
},
// 获取保安人员信息列表
getSecurityPeople: function (dom, deviceType) {
dom.empty();
var that = this;
that.currentDrawing = [];
that.entityPolygonAll.clear();
$.ajax({
url: 'http://61.131.136.25:2082/api/alarm/alarm/queryBa',
type: 'POST',
dataType: 'JSON',
success: function (data) {
var result = data.data;
var str = '';
that.entitysData = [];
that.addEntitys.clear();
var entityArr = [];
var objId = {};
for (var a, i = 0; i < result.length; i++) {
that.createEntitys(that.addEntitys, that.entitysData, '出警信息', {
lgtd: result[i].jd,
lttd: result[i].wd,
id: result[i].id
}, result[i].jd, result[i].wd, './images/security.png');
entityArr = [];
objId = {};
a = Number(i) + 1;
str += "";
str += '| ' + a + ' | ';
str += '' + result[i].CODE + ' | ';
str += '' + result[i].real_name + ' | ';
str += '' + result[i].phone + ' | ';
str += " | ";
str += '
';
dom.append(str);
str = '';
// 此时result=["(dsfasjfj3124123)", "dsfasjfj3124123"];
entityArr.push([Number(result[i].jd), Number(result[i].wd)]);
objId.id = result[i].id;
objId.anumber = result[i].CODE;
objId.aname = result[i].real_name;
that.addPolygonAll(that.entityPolygonAll, entityArr, objId);
}
}
})
// $.ajax({
// url: 'http://61.131.136.25:2082/api/security/security/selectList',
// type: 'POST',
// dataType: 'JSON',
// success: function (data) {
// var result = data.data;
// var str = '';
// that.entitysData = [];
// that.addEntitys.clear();
// var entityArr = [];
// var objId = {};
// var entityData = '';
// for (var a, i = 0; i < result.length; i++) {
// that.createEntitys(that.addEntitys, that.entitysData, '出警信息', {
// lgtd: result[i].jd,
// lttd: result[i].wd,
// id: result[i].id
// }, result[i].jd, result[i].wd, './images/security.png');
// entityArr = [];
// objId = {};
// entityData = result[i].coordinate.match(/\(([^)]*)\)/);
// a = Number(i) + 1;
// str += "";
// str += '| ' + a + ' | ';
// str += '' + result[i].snumber + ' | ';
// str += '' + result[i].sname + ' | ';
// str += '' + result[i].phone + ' | ';
// str += " | ";
// str += '
';
// dom.append(str);
// str = '';
// // 此时result=["(dsfasjfj3124123)", "dsfasjfj3124123"];
// 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])]);
// }
// }
// objId.id = result[i].id;
// objId.anumber = result[i].snumber;
// objId.aname = result[i].sname;
// that.addPolygonAll(that.entityPolygonAll, entityArr, objId);
// }
// }
// })
},
// 创建实体图层
createEntitys: function (entitys, entityContent, name, item, lgtd, lttd, outlineColors) {
var symbol = new esri.symbol.PictureMarkerSymbol(outlineColors, 26, 26);
symbol.name = name;
var pt = new Point(lgtd, lttd, new esri.SpatialReference({
wkid: 4326
}));
pt.entityData = item;
var graphic = new esri.Graphic(pt, symbol);
entitys.add(graphic);
entityContent.push(item);
},
addPoint: function (entitys, lgtd, lttd) {
var symbol = new esri.symbol.PictureMarkerSymbol('./images/real-time-callPolice.png', 10, 10);
var pt = new Point(lgtd, lttd, new SpatialReference({
wkid: 4326
}));
var graphic = new esri.Graphic(pt, symbol);
entitys.add(graphic);
},
addPolyline: function (entitys, path) {
entitys.clear();
var polylineSymbol = new SimpleLineSymbol();
polylineSymbol.color = [255, 0, 0, 1];
polylineSymbol.width = 4;
var polyline = new Polyline({
"paths": [path],
"spatialReference": {
"wkid": 4326
}
});
entitys.add(new Graphic(polyline, polylineSymbol));
},
addPolygon: function (entitys, rings) {
entitys.clear();
var polygonSymbol = new SimpleFillSymbol();
polygonSymbol.color = [24, 255, 243, 0.411];
var polygon = new Polygon({
"rings": [rings],
"spatialReference": {
"wkid": 4326
}
});
entitys.add(new Graphic(polygon, polygonSymbol));
},
activateToolbar: function (graphic) {
var tool = 0;
this.editToolbar = new Edit(this._map);
// if (registry.byId("tool_move").checked) {
tool = tool | Edit.MOVE;
// }
// if (registry.byId("tool_vertices").checked) {
tool = tool | Edit.EDIT_VERTICES;
// }
// if (registry.byId("tool_scale").checked) {
tool = tool | Edit.SCALE;
// }
// if (registry.byId("tool_rotate").checked) {
tool = tool | Edit.ROTATE;
// }
// enable text editing if a graphic uses a text symbol
// if ( graphic.symbol.declaredClass === "esri.symbol.TextSymbol" ) {
tool = tool | Edit.EDIT_TEXT;
// }
var options = {
allowAddVertices: true,
allowDeleteVertices: true,
uniformScaling: true
};
this.editToolbar.activate(tool, graphic, options);
},
addPolygonAll: function (entitys, rings, objId) {
// entitys.clear();
var graphic = null;
if (this.patrolIndex == 1) {
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)
} else {
var polygonSymbol = new SimpleFillSymbol();
polygonSymbol.color = [24, 255, 243, 0.411];
var polygon = new Polygon({
"rings": [rings],
"spatialReference": {
"wkid": 4326
}
});
graphic = new Graphic(polygon, polygonSymbol);
}
graphic.objId = objId;
if (this.tabIndex == 1) {
if (this.patrolIndex == 1) {
this.currentDrawing.push({
id: objId.id,
regionId: objId.regionId,
routeName: objId.routeName,
remarks: objId.remarks,
extent: graphic.geometry.getExtent()
});
} else {
this.currentDrawing.push({
id: objId.id,
regionId: objId.regionId,
regionName: objId.regionName,
remarks: objId.remarks,
extent: graphic.geometry.getExtent()
});
}
} else {
this.currentDrawing.push({
id: objId.id,
aname: objId.aname,
anumber: objId.anumber,
extent: graphic.geometry.getExtent()
});
}
entitys.add(graphic);
},
modifyPolygon: function () {
var self = this;
if (self.editToolbar != null) {
if (self.patrolIndex == 1) {
var polygon = self.editToolbar.getCurrentState();
for (var i = 0; i < self.currentDrawing.length; i++) {
if (self.currentDrawing[i].id == polygon.graphic.objId.id) {
self.currentDrawing[i].extent = polygon.graphic.geometry.getExtent();
}
}
self.editToolbar.deactivate();
self.editToolbar = null;
// 声明空字符串,存储数据
var dataStr = '';
// 获取数据
var data = polygon.graphic.geometry.paths[0];
for (var i = 0; i < data.length; i++) {
dataStr += (data[i][0] + ' ' + data[i][1] + ',');
}
// 组装数据
dataStr = dataStr.substring(0, dataStr.length - 1);
$.ajax({
url: 'http://61.131.136.25:2082/api/routeIn/routein/updatelx',
type: 'POST',
dataType: 'JSON',
data: {
id: polygon.graphic.objId.id,
regionId: polygon.graphic.objId.regionId,
routeName: polygon.graphic.objId.routeName,
routeInfo: dataStr,
remarks: polygon.graphic.objId.remarks,
},
success: function (result) {
if (result.code == 200) {
}
}
})
} else {
var polygon = self.editToolbar.getCurrentState();
for (var i = 0; i < self.currentDrawing.length; i++) {
if (self.currentDrawing[i].id == polygon.graphic.objId.id) {
self.currentDrawing[i].extent = polygon.graphic.geometry.getExtent();
}
}
self.editToolbar.deactivate();
self.editToolbar = null;
// 声明空字符串,存储数据
var dataStr = '';
// 获取数据
var data = polygon.graphic.geometry.rings[0];
for (var i = 0; i < data.length; i++) {
dataStr += (data[i][0] + ' ' + data[i][1] + ',');
}
// 组装数据
dataStr = dataStr.substring(0, dataStr.length - 1);
$.ajax({
url: 'http://61.131.136.25:2082/api/regions/regions/updateqy',
type: 'POST',
dataType: 'JSON',
data: {
id: polygon.graphic.objId.id,
regionId: polygon.graphic.objId.regionId,
regionName: polygon.graphic.objId.regionName,
coordinate: dataStr,
remarks: polygon.graphic.objId.remarks
},
success: function (result) {
if (result.code == 200) {
}
}
})
}
}
},
electronicFence: function () {
var self = this;
if (self.editToolbar != null) {
var polygon = self.editToolbar.getCurrentState();
for (var i = 0; i < self.currentDrawing.length; i++) {
if (self.currentDrawing[i].id == polygon.graphic.objId.id) {
self.currentDrawing[i].extent = polygon.graphic.geometry.getExtent();
}
}
self.editToolbar.deactivate();
self.editToolbar = null;
// 声明空字符串,存储数据
var dataStr = '';
// 获取数据
var data = polygon.graphic.geometry.rings[0];
for (var i = 0; i < data.length; i++) {
dataStr += (data[i][0] + ' ' + data[i][1] + ',');
}
// 组装数据
dataStr = dataStr.substring(0, dataStr.length - 1);
$.ajax({
url: 'http://61.131.136.25:2082/api/enclosure/enclosure/updatee',
type: 'POST',
dataType: 'JSON',
data: {
id: polygon.graphic.objId.id,
aname: polygon.graphic.objId.aname,
anumber: polygon.graphic.objId.anumber,
routeInfo: dataStr
},
success: function (result) {
if (result.code == 200) {
}
}
})
}
},
//聚合图层事件
flareClusterLayer: function (datas) {
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;
});