南昌市物联网技防平台-前端
liuyg
2021-05-07 b76dcae851544bc375754c3ba964d66ebd34d22b
Merge branch 'master' of http://192.168.0.105:10010/r/jfpt-Vue
3 files modified
2889 ■■■■ changed files
public/map/widgets/supervisoryMap/SupervisoryMap.js 2879 ●●●● patch | view | raw | blame | history
public/map/widgets/supervisoryMap/template.html 9 ●●●●● patch | view | raw | blame | history
src/views/clientManagement/clientManagement.vue 1 ●●●● patch | view | raw | blame | history
public/map/widgets/supervisoryMap/SupervisoryMap.js
@@ -7,1473 +7,1466 @@
 * @LastEditTime: 2019-12-14 14:44:57
 */
define([
  "dojo",
  "dojo/_base/declare",
  "dojo/_base/lang",
  "base/BaseWidget",
  "dojo/text!widgets/supervisoryMap/template.html",
  "base/AppEvent",
  "base/ConfigData",
  "widgets/supervisoryMap/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/supervisoryMap/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
    "dojo",
    "dojo/_base/declare",
    "dojo/_base/lang",
    "base/BaseWidget",
    "dojo/text!widgets/supervisoryMap/template.html",
    "base/AppEvent",
    "base/ConfigData",
    "widgets/supervisoryMap/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/supervisoryMap/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: "AlertSecurity",
    label: "地图模式",
    templateString: template,
    _map: null,
    objThis: null,
    _siteLayer: new GraphicsLayer(),
    layuiLayer: null,
    layuiLadate: null,
    tabIndex: 0,
    heatmapfeatureLayer: null,//liu热力图
    // 保留添加实体图层的变量
    addEntitys: null,
    entitysData: [],
    var Widget = declare([BaseWidget], {
        widgetName: "AlertSecurity",
        label: "地图模式",
        templateString: template,
        _map: null,
        objThis: null,
        _siteLayer: new GraphicsLayer(),
        layuiLayer: null,
        layuiLadate: null,
        tabIndex: 0,
        heatmapfeatureLayer: null, //liu热力图
        // 保留添加实体图层的变量
        addEntitys: null,
        entitysData: [],
    // 巡逻区域或者巡逻路线的描述
    routeOrRegionDescribe: null,
        // 巡逻区域或者巡逻路线的描述
        routeOrRegionDescribe: null,
    // 用来记录巡逻区域或者巡逻路线的下标的
    patrolIndex: 0,
        // 用来记录巡逻区域或者巡逻路线的下标的
        patrolIndex: 0,
    // 拖拽
    isDown: false,
    x: 0,
    y: 0,
    offset: null,
    moveThis: null,
    // 电子围栏需要新增的Id
    newElectronicFenceId: null,
        // 拖拽
        isDown: false,
        x: 0,
        y: 0,
        offset: null,
        moveThis: null,
        // 电子围栏需要新增的Id
        newElectronicFenceId: null,
    // 新增路线时,派发人员,人员名称,以及人员id
    peopleRealName: null,
    pepleRealId: null,
        // 新增路线时,派发人员,人员名称,以及人员id
        peopleRealName: null,
        pepleRealId: null,
    //存放聚合实体
    clusterLayer: null,
    //左侧控制栏
    entityData: [],
    analysisAddEntitys: null,
    //防抖
    onceTimeMethodS: null,
    onceTime: 300,
    // 警情缓存
    Pdata: null,
    // 警情图标缓存
    Pdatas: null,
    //业主缓存
    Ydata: null,
    // 业主图标缓存
    Ydatas: null,
    //设备缓存
    Sdata: null,
    // 设备图标缓存
    Sdatas: null,
        //存放聚合实体
        clusterLayer: null,
        //左侧控制栏
        entityData: [],
        analysisAddEntitys: null,
        //防抖
        onceTimeMethodS: null,
        onceTime: 300,
        // 警情缓存
        Pdata: null,
        // 警情图标缓存
        Pdatas: null,
        //业主缓存
        Ydata: null,
        // 业主图标缓存
        Ydatas: null,
        //设备缓存
        Sdata: null,
        // 设备图标缓存
        Sdatas: null,
    constructor: function (options, srcRefNode) {
      this._map = options.map;
      objThis = this;
        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);
      this.analysisAddEntitys = new GraphicsLayer({ id: 'analysisAddEntitys' });
      // this.addOneEntitys = new GraphicsLayer({ id: 'addOneEntitys' });
      // this.addTwoEntitys = new GraphicsLayer({ id: 'addTwoEntitys' });
      // this.addThreeEntitys = new GraphicsLayer({ id: 'addThreeEntitys' });
      this._map.addLayer(this.analysisAddEntitys);
      this._map.addLayer(this.addOneEntitys);
    },
    open: function () {
      var that = this;
      $.ajax({
        url: "/api/blade-jfpts/equipment/equipment/listAll",
        type: 'get',
        dataType: 'JSON',
        success: function (res) {
          var datas = res.data;
          // console.log(datas)
          var heatmapRenderer = null;
          that.entityData = [];
          for (var i = 0; i < datas.length; i++) {
            datas[i].x = Number(datas[i].jd);
            datas[i].y = Number(datas[i].wd);
            that.entityData.push({
              lgtd: Number(datas[i].jd),
              lttd: Number(datas[i].wd)
            })
          }
          that.flareClusterLayer(datas);
          // console.log(datas)
          that.heatmapfeatureLayer = that.heatmFeaLayers();
          that._map.addLayer(that.heatmapfeatureLayer);
          // that.checkBoxSelect();//左侧控制热力图重复
        }
      })
      var that = this;
      var intTime = () => {
        var time = this.getTime();
        $("#tabcontainer").css("width", "360px");
        $('#mapcontentClass').addClass('client-max-map'); //追加样式
        AppEvent.dispatchAppEvent(AppEvent.APPLICATION_RESIZE, {});
        that.tabIndex = 0;
        $('.analysis-and-judgment-tab li:eq(0)').addClass('on').siblings().removeClass('on');
        $($('.analysis-container > div')[0]).stop().show().siblings().stop().hide();
        that.heatmapfeatureLayer = that.heatmFeaLayers();
        that._map.addLayer(that.heatmapfeatureLayer);
        $('#analysis_select_time_start').val(time.tomorrow);
        $('#analysis_select_time_end').val(time.current);
        layui.use('laydate', function () {
          that.layuiLadate = layui.laydate;
          //执行一个laydate实例 开始
          that.layuiLadate.render({
            elem: '#analysis_select_time_start', //指定元素
            type: "datetime",
            format: 'yyyy-MM-dd HH:mm',
            trigger: 'click'
          });
          // 结束
          that.layuiLadate.render({
            elem: '#analysis_select_time_end', //指定元素
            type: "datetime",
            format: 'yyyy-MM-dd HH:mm',
            trigger: 'click'
          });
        });
        that.getArea($('#policeArea'));
        // that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), time.tomorrow, time.current, '', '');
        that.clickHand();
      }
      intTime();
    },
    startup: function () {
      var mySelf = this;
      objThis._map.addLayer(objThis._siteLayer);
      var that = this;
      // console.log(mySelf.clusterLayer)
      that.getEquipmentTable($('.analysis-container-equipment').find('.tbody tbody'), '', 'once');
      // 顶部tab得切换事件
      $('.analysis-and-judgment-tab li').click(function () {
        // if (that.tabIndex == $(this).index()) return;
        // if ($(this).index() == 1) { return };
        // if ($(this).index() == 2) { return };
        //解决打开热力图 切换top获取不了数据问题 警情
        if ($('#policeHeatMap').prop('checked') == true) {
          // console.log($('#policeHeatMap').prop('checked') == true)
          $('#policeHeatMap').prop('checked', false);
          that.checkBoxSelect($('#policeHeatMap'));
        } else
          //解决打开热力图 切换top获取不了数据问题 业主
          if ($('#ownerHeatMap').prop('checked') == true) {
            // console.log($('#ownerHeatMap').prop('checked') == true)
            $('#ownerHeatMap').prop('checked', false);
            that.checkBoxSelect($('#ownerHeatMap'));
          } else
            //解决打开热力图 切换top获取不了数据问题 设备
            if ($('#equipmentHeatMap').prop('checked') == true) {
              // console.log($('#equipmentHeatMap').prop('checked') == true)
              $('#equipmentHeatMap').prop('checked', false);
              that.checkBoxSelect($('#equipmentHeatMap'));
            }
        // console.log($('#policeHeatMap').prop('checked') == true)
        if (that.entitysData.length > 0) {
          that.analysisAddEntitys.clear();
          that.entitysData = [];
        }
        if (that.heatmapfeatureLayer.graphics.length > 0) {
          that.heatmapfeatureLayer.clear();
          that.heatmapfeatureLayer.setRenderer();
          $('.analysis-category input').prop('checked', false);
        }
        $(this).addClass('on').siblings().removeClass('on');
        var ind = $(this).index();
        $($('.analysis-container > div')[ind]).stop().show().siblings().stop().hide();
        var overText = $('#policeCategory > div:eq(0)').text().trim() == '全部' ? '' : $('#policeCategory > div:eq(0)').text().trim();
        var levelText = $('#policeArea > div:eq(0)').text().trim() == '全部' ? '' : $('#policeArea > div:eq(0)').attr('areaid');
        if (ind == 1) {
          that.getArea($('#policeArea'));
          that.getPoliceTableAnalysis($($('.analysis-container > div')[ind]).find('.tbody tbody'),
            $('#analysis_select_time_start').val() + ':00',
            $('#analysis_select_time_end').val() + ':00', overText, levelText)
        } else if (ind == 2) {
          that.getOwnerType($('#ownerCategory'));
          that.getOwnerDj($('#ownerLevel'), '');
          that.getOwnerTable($($('.analysis-container > div')[ind]).find('.tbody tbody'), '', '');
        } else if (ind == 0) {
          that.getEquipmentTable($($('.analysis-container > div')[ind]).find('.tbody tbody'), '');
        }
        that.tabIndex = $(this).index();
      })
      // 时间查询
      $('#policeSelectTime').off('click').click(function () {
        var times = $(this).prevAll();
        layui.use('layer', function () {
          var layer = layui.layer;
          // 开始时间
          var startTime = $(times[2]).val();
          // 结束时间
          var endTime = $(times[0]).val();
          if (startTime == '') {
            layer.msg('请选择开始时间!', {
              icon: 5,
              time: 2000 //2秒关闭(如果不配置,默认是3秒)
            this.addEntitys = new GraphicsLayer({
                id: 'addEntitys'
            });
            return;
          } else {
            if (endTime == '') {
              layer.msg('请选择结束时间!', {
                icon: 5,
                time: 2000 //2秒关闭(如果不配置,默认是3秒)
              });
              return;
            } else {
              var text = $('#policeCategory div:eq(0)').text().trim();
              var levelText = $('#policeArea > div:eq(0)').text().trim() == '全部' ? '' : $('#policeArea > div:eq(0)').attr('areaid');
              that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), startTime, endTime, text == '全部' ? '' : text, levelText);
            }
          }
        })
      })
      // 警情列表中的点击事件
      $('.analysis-container-police .analysis-table-content .tbody').off('click', 'tr').on('click', 'tr', function (event) {
        if ($('#policeHeatMap').prop('checked') == true) {// 点击关闭热力图
          // console.log('relitu')
          $('#policeHeatMap').click();
        }
        var id = $(this).attr('term-list');
        var b = mySelf.Pdata;
        for (var key in b) {
          if (b[key].id == id) {
            b = b[key];
            break;
          }
        }
        // console.log(b, id);
        event.stopPropagation();
        var winSize = [+window.innerHeight / 2 - 242 + 'px', +window.innerWidth - 380 + 'px'];
        if (b.jd == '' || b.wd == '') {
          // console.log('无地图经纬度');
          b.haveJW = '无地图经纬度';
        } else {
          // console.log('有地图经纬度')
          b.haveJW = '有地图经纬度';
          // var lgtd = Number($(this).find('input').attr('lgtd'));
          // var lttd = Number($(this).find('input').attr('lttd'));
          var lgtd = Number(b.jd);
          var lttd = Number(b.wd);
          // console.log($(this).find('input').attr('lttd'));
          var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 }));//根据输入坐标信息找地图上的点
          that._map.centerAndZoom(position, 18);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
        }
        //解决重复JSON.stringify将循环结构转换为JSON。有几率出错,err:TypeError: Converting circular structure to JSON
        //舍弃上面方法,原因是对象里面嵌入对象,造成不能转换成JSON,吧对象去掉就好,
        var as = b;
        var setdata = JSON.stringify(as);
        // console.log(setdata,'setdata')
        var intOpen = () => {
          layui.use('layer', function () {
            that.layuiLayer = layui.layer;
            that.layuiLayer.config({
              extend: 'myskin/FlareClusterLayer.css'
            // 添加点面线的图层
            this.addPolygonEntitys = new GraphicsLayer({
                id: 'addPolygonEntitys'
            });
            that.layuiLayer.close(that.layuiLayer.index);
            that.layuiLayer.open({
              title: '',
              type: 2,
              shadeClose: true,
              shade: false,
              skin: 'demo-class',
              id: 'onelyTwo',
              maxmin: false, //开启最大化最小化按钮
              area: ['360px', '484px'],
              // area: 'auto',
              offset: winSize,
              skin: 'flare',
              isOutAnim: false,
              closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
              content: ['./popup/html/SupervisoryMapPdata.html'],
              resize: false,
              scrollbar: false,
              // tipsMore: true, //允许多个tipe
              // content: num,
              success: function (layero, index) { //成功后添加全局点击关闭
                $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
              },
            })
          })
        }
        if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
          intOpen();
          mySelf.onceTimeMethod = setTimeout(() => {
            mySelf.onceTimeMethod = null;
          }, mySelf.onceTime);
        } else {
        };
      })
      $('.analysis-container-police .analysis-table-content .tbody').off('click', '.location').on('click', '.location', function (event) {
        event.stopPropagation();
      })
      $('.analysis-container-police .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', 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是缩放级别,可以自定义,数值越大缩放越大
      })
      // 业主列表中的点击事件
      $('.analysis-container-owner .analysis-table-content .tbody').off('click', 'tr').on('click', 'tr', function (event) {
        if ($('#ownerHeatMap').prop('checked') == true) {// 点击关闭热力图
          // console.log('relitu')
          $('#ownerHeatMap').click();
        }
        var id = $(this).attr('term-list');
        var b = mySelf.Ydata;
        for (var key in b) {
          if (b[key].id == id) {
            b = b[key];
            break;
          }
        }
        event.stopPropagation();
        if (b.jd == '' || b.wd == '') {
          // console.log('无地图经纬度');
          b.haveJW = '无地图经纬度';
        } else {
          // console.log('有地图经纬度')
          b.haveJW = '有地图经纬度';
          var lgtd = Number(b.jd);
          var lttd = Number(b.wd);
          // console.log($(this).find('input').attr('lttd'));
          var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 }));//根据输入坐标信息找地图上的点
          that._map.centerAndZoom(position, 18);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
        }
        // console.log(b, id);
        var winSize = [+window.innerHeight / 2 - 242 + 'px', +window.innerWidth - 380 + 'px'];
        var as = b;
        var bs = {};
        for (let key in as) {
          if (typeof as[key] != 'object') {
            bs[key] = as[key]
            // as = as[key].attributes;
            // console.log('youduixang ')
            // break;
          }
        }
        var setdata = JSON.stringify(bs);
        // console.log(setdata,'setdata')
        var intOpen = () => {
          layui.use('layer', function () {
            that.layuiLayer = layui.layer;
            that.layuiLayer.config({
              extend: 'myskin/FlareClusterLayer.css'
            // 添加所有图层的地方
            this.entityPolygonAll = new GraphicsLayer({
                id: 'entityPolygonAll'
            });
            that.layuiLayer.close(that.layuiLayer.index);
            that.layuiLayer.open({
              title: '',
              type: 2,
              shadeClose: true,
              shade: false,
              skin: 'demo-class',
              id: 'onelyTwo',
              maxmin: false, //开启最大化最小化按钮
              area: ['360px', '484px'],
              // area: 'auto',
              offset: winSize,
              skin: 'flare',
              isOutAnim: false,
              closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
              content: ['./popup/html/SupervisoryMapYdata.html'],
              resize: false,
              scrollbar: false,
              // tipsMore: true, //允许多个tipe
              // content: num,
              success: function (layero, index) { //成功后添加全局点击关闭
                $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
              },
            })
          })
        }
        if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
          intOpen();
          mySelf.onceTimeMethod = setTimeout(() => {
            mySelf.onceTimeMethod = null;
          }, mySelf.onceTime);
        } else {
        };
      })
      $('.analysis-container-owner .analysis-table-content .tbody').off('click', '.location').on('click', '.location', function (event) {
        event.stopPropagation();
      })
      $('.analysis-container-owner .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', 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是缩放级别,可以自定义,数值越大缩放越大
      })
      // 设备列表中的点击事件
      $('.analysis-container-equipment .analysis-table-content .tbody').off('click', 'tr').on('click', 'tr', function (event) {
        var id = $(this).attr('term-listid');
        if ($('#equipmentHeatMap').prop('checked') == true) {// 点击关闭热力图
          // console.log('relitu')
          $('#equipmentHeatMap').click();
        }
        event.stopPropagation();
        var lgtd = Number($(this).find('input').attr('lgtd'));
        var lttd = Number($(this).find('input').attr('lttd'));
        // console.log($(this).find('input').attr('lttd'));
        var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 }));//根据输入坐标信息找地图上的点
        that._map.centerAndZoom(position, 18);//缩放,10是缩放级别,可以自定义,数值越大缩放越大
        var y = +window.innerHeight / 2 + 200;
        var x = (+window.innerWidth - 360) / 2 + 360 + 70;
        // document.elementFromPoint(x, y).click();
        // console.log(x, y)
        // var a = document.elementFromPoint(21, 122);
        // console.log(a);
        // console.log(that.clusterLayer, that._map, 6)
        // console.log(id, 'id');
        // console.log(that.clusterLayer);
        var Tattributes = null
          , ds = that.clusterLayer.allData;
        for (var key in ds) {
          if (ds[key].id == id) {
            Tattributes = ds[key];
          }
        }
        if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
          var evtdata = {};
          evtdata = {
            graphic: {
              attributes: Tattributes,
            },
            screenX: x,
            screenY: y,
          }
          that.clusterLayer._clickOpenOnclick(evtdata, '控制端', that.clusterLayer.indexs);
          mySelf.onceTimeMethod = setTimeout(() => {
            mySelf.onceTimeMethod = null;
          }, mySelf.onceTime);
        } else {
        };
            this._map.addLayer(this.addEntitys);
      })
      // $('.analysis-container-equipment .analysis-table-content .tbody').off('click', '.location').on('click', '.location', function (event) {
      //   event.stopPropagation();
      // })
      // $('.analysis-container-equipment .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', 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是缩放级别,可以自定义,数值越大缩放越大
            this._map.addLayer(this.addPolygonEntitys);
            this._map.addLayer(this.entityPolygonAll);
            this.analysisAddEntitys = new GraphicsLayer({ id: 'analysisAddEntitys' });
            // this.addOneEntitys = new GraphicsLayer({ id: 'addOneEntitys' });
            // this.addTwoEntitys = new GraphicsLayer({ id: 'addTwoEntitys' });
            // this.addThreeEntitys = new GraphicsLayer({ id: 'addThreeEntitys' });
      //   var y = +window.innerHeight / 2 + 200;
      //   var x = (+window.innerWidth - 360) / 2 + 360 + 70;
      //   // document.elementFromPoint(x, y).click();
      //   // console.log(x, y)
            this._map.addLayer(this.analysisAddEntitys);
            this._map.addLayer(this.addOneEntitys);
      //   // var a = document.elementFromPoint(21, 122);
      //   // console.log(a);
      //   // console.log(that.clusterLayer, that._map, 6)
      //   // console.log(id, 'id');
      //   // console.log(that.clusterLayer.indexs);
      //   var Tattributes = null
      //     , ds = that.clusterLayer.allData;
      //   for (var key in ds) {
      //     if (ds[key].id == id) {
      //       Tattributes = ds[key];
      //     }
      //   }
      //   if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
      //     var evtdata = {};
      //     evtdata = {
      //       graphic: {
      //         attributes: Tattributes,
      //       },
      //       screenX: x,
      //       screenY: y,
      //     }
      //     that.clusterLayer._clickOpenOnclick(evtdata, '控制端', that.clusterLayer.indexs);
      //     mySelf.onceTimeMethod = setTimeout(() => {
      //       mySelf.onceTimeMethod = null;
      //     }, mySelf.onceTime);
      //   } else {
      //   };
      // })
      // 警情列表中得热力图是否选中事件
      $('#policeHeatMap').click(function () {
        that.checkBoxSelect(this);
      })
      // 业主信息列表中得热力图是否选中事件
      $('#ownerHeatMap').click(function () {
        that.checkBoxSelect(this);
      })
      // 设备信息列表的热力图是否选中事件
      $('#equipmentHeatMap').click(function () {
        that.checkBoxSelect(this);
      })
      // 警情信息中类别移入事件
      $('#policeCategory').mouseenter(function () {
        if ($('#policeCategory .select-list').is(':hidden')) {
          $('#policeCategory .select-list').stop().slideDown(0);
        }
      })
      // 警情信息中得类别移出事件
      $('#policeCategory').mouseleave(function () {
        if (!$('#policeCategory .select-list').is(':hidden')) {
          $('#policeCategory .select-list').stop().slideUp(0);
        }
      })
      // 警情信息中行政区移入事件
      $('#policeArea').mouseenter(function () {
        if ($('#policeArea .select-list').is(':hidden')) {
          $('#policeArea .select-list').stop().slideDown(0);
        }
      })
      // 警情信息中得行政区移出事件
      $('#policeArea').mouseleave(function () {
        if (!$('#policeArea .select-list').is(':hidden')) {
          $('#policeArea .select-list').stop().slideUp(0);
        }
      })
      // 业主信息中类别移入事件
      $('#ownerCategory').mouseenter(function () {
        if ($('#ownerCategory .select-list').is(':hidden')) {
          $('#ownerCategory .select-list').stop().slideDown(0);
        }
      })
      // 业主信息中得类别移出事件
      $('#ownerCategory').mouseleave(function () {
        if (!$('#ownerCategory .select-list').is(':hidden')) {
          $('#ownerCategory .select-list').stop().slideUp(0);
        }
      })
      // 业主信息中的等级移入事件
      $('#ownerLevel').mouseenter(function () {
        if ($('#ownerLevel .select-list').is(':hidden')) {
          $('#ownerLevel .select-list').stop().slideDown(0);
        }
      })
      // 业主信息中的等级移出事件
      $('#ownerLevel').mouseleave(function () {
        if (!$('#ownerLevel .select-list').is(':hidden')) {
          $('#ownerLevel .select-list').stop().slideUp(0);
        }
      })
      // 设备信息中类别移入事件
      $('#equipmentCategory').mouseenter(function () {
        if ($('#equipmentCategory .select-list').is(':hidden')) {
          $('#equipmentCategory .select-list').stop().slideDown(0);
        }
      })
      // 设备信息中得类别移出事件
      $('#equipmentCategory').mouseleave(function () {
        if (!$('#equipmentCategory .select-list').is(':hidden')) {
          $('#equipmentCategory .select-list').stop().slideUp(0);
        }
      })
      //  警情信息类,业主信息类,设备信息类别,具体项的点击事件
      $('.analysis-container > div .select-list').off('click', 'li').on('click', 'li', function (event) {
        // console.log(event.currentTarget.innerHTML,'innerhtml')
        var text = $(this).text().trim();
        // console.log(this,text,'text()')
        // console.log(that.tabIndex,'tabIndex')
        //解决打开热力图 切换top获取不了数据问题 警情
        if ($('#policeHeatMap').prop('checked') == true) {
          // console.log($('#policeHeatMap').prop('checked') == true)
          $('#policeHeatMap').prop('checked', false);
          that.checkBoxSelect($('#policeHeatMap'));
        } else
          //解决打开热力图 切换top获取不了数据问题 业主
          if ($('#ownerHeatMap').prop('checked') == true) {
            // console.log($('#ownerHeatMap').prop('checked') == true)
            $('#ownerHeatMap').prop('checked', false);
            that.checkBoxSelect($('#ownerHeatMap'));
          } else
            //解决打开热力图 切换top获取不了数据问题 设备
            if ($('#equipmentHeatMap').prop('checked') == true) {
              // console.log($('#equipmentHeatMap').prop('checked') == true)
              $('#equipmentHeatMap').prop('checked', false);
              that.checkBoxSelect($('#equipmentHeatMap'));
              var time = setTimeout(() => {
                // $('#equipmentHeatMap').click(function () {
                //   that.checkBoxSelect('#equipmentHeatMap');
                // })();
                $('#equipmentHeatMap').click();
              }, 500);
            }
        $(this).parent().parent().prev().html(text + '<i></i>');
        $(this).parent().parent().stop().slideUp(0);
        if ($(this).attr('areaid')) {
          $(this).parent().parent().prev().attr('areaid', $(this).attr('areaid'));
        } else if ($(this).attr('ownerid')) {
          $(this).parent().parent().prev().attr('ownerid', $(this).attr('ownerid'));
        }
        if (that.tabIndex == 1) {
          var levelText = $('#policeArea > div:eq(0)').text().trim() == '全部' ? '' : $('#policeArea > div:eq(0)').attr('areaid');
          var overText = $('#policeCategory > div:eq(0)').text().trim() == '全部' ? '' : $('#policeCategory > div:eq(0)').text().trim();
          if ($(this).attr('areaid')) {
            that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), $('#analysis_select_time_start').val(), $('#analysis_select_time_end').val(), overText, levelText);
          } else {
            that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), $('#analysis_select_time_start').val(), $('#analysis_select_time_end').val(), overText, levelText);
          }
        } else if (that.tabIndex == 2) {
          that.getOwnerTable($('.analysis-container-owner').find('.tbody tbody'), text == '全部' ? '' : text);
        } else if (that.tabIndex == 0) {
          that.getEquipmentTable($('.analysis-container-equipment').find('.tbody tbody'), text == '全部' ? '' : text);
        }
      })
    },
    getQueryStringByKey: function (key) {
      return (document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)")) || ['', null])[1];
    },
    //左侧控制栏
    getArea: function (dom) {
      dom.children('.select-list').children('ul').empty();
      dom.children('.select-list').children('ul').append($("<li areaid='all'>全部</li>"));
      var that = this;
      $.ajax({
        url: '/api/blade-system/region/select?code=3601',
        type: 'GET',
        dataType: 'JSON',
        success: function (data) {
          var res = data.data;
          for (var i = 0; i < res.length; i++) {
            dom.children('.select-list').children('ul').append($("<li areaid=" + res[i].code + ">" + res[i].name + "</li>"));
          }
        }
      })
    },
    getPoliceTableAnalysis: function (dom, beginTime, endTime, waringType, addvcd) {
      dom.empty();//警情信息
      var that = this;
      $.ajax({
        url: "/api/blade-jfpts/alarm/alarm/page?current=1&size=99999&waringType=&beginTime=" + beginTime + "&endTime=" + endTime + "&province=36&city=3601&district=" + addvcd,
        type: 'get',
        dataType: 'JSON',
        success: function (data) {
          // var result = data.data.records;
          var oldData = data.data.records
          var result = oldData;
          that.Pdata = oldData;
          // console.log(that.Pdata);//警情筛选
          var str = '';
          that.entitysData = [];
          that.analysisAddEntitys.clear();
          for (var a, time, t, e, y, h, i = 0; i < result.length; i++) {
            if (result[i].waringType == "紧急求救") {
              result[i].waringType = "一键求助"
            }
            that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '警情信息', {
              lgtd: result[i].jd,
              lttd: result[i].wd,
              id: result[i].id
            }, result[i].jd, result[i].wd,
              //  './images/police-situation.png'
            );
            t = result[i].alarmTime.substr(0, 10);
            e = result[i].alarmTime.substr(11);
            time = t + '&nbsp;' + e;
            y = result[i].alarmTime.substr(5, 5);
            h = result[i].alarmTime.substr(11, 5);
            a = Number(i) + 1;
            str += '<tr term-list=' + result[i].id + '>';
            str += '<td>' + a + '</td>';
            str += '<td title=' + result[i].waringType + '>' + result[i].waringType + '</td>';
            str += '<td title=' + result[i].alarmPeople + '>' + result[i].alarmPeople + '</td>';
            str += "<td><a href='javascript:;' title=" + time + ">" + y + ' ' + h + "</a></td>";
            // str += "<td class='location' style='display: none'> <input type='button' value='定位'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
            if (result[i].jtype == 0) {
              str += "<td class='location'> <input style='color:#fff;background-color:#F35B5B;width: 50px' type='button' value='未处理'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
            } else {
              if (result[i].jtype == 1) {
                str += "<td class='location'> <input style='color:#fff;background-color:rgb(18, 145, 230);width: 50px' type='button' value='处理中'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
              } else {
                str += "<td class='location'> <input style='color:#fff;background-color:#32C1A2;width: 50px' type='button' value='已处理'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
              }
            }
            str += '</tr>';
            dom.append(str);
            str = '';
          }
          that.clearLayer();//图标清除
          that.entityData = [];
          for (var i = 0; i < result.length; i++) {
            result[i].x = Number(result[i].jd);
            result[i].y = Number(result[i].wd);
            that.entityData.push({
              lgtd: Number(result[i].jd),
              lttd: Number(result[i].wd)
            })
          }
          // console.log(result);//警情
          if (that.heatmapfeatureLayer.graphics.length > 0) {//热力图数据映射
            that.heatmapfeatureLayer.clear();
            that.heatmapfeatureLayer.setRenderer();
            $('.analysis-category input').prop('checked', false);
          };
          that.flareClusterLayer(result);//图标渲染
          that.Pdatas = result;
          that.clusterLayer._setUserState('警情');//切换聚合图标点击事件
          for (var i = 0; i < 1000; i++) {
            var dd = Math.random();
            var cc = Math.random();
          }
        }
      })
    },
    getOwnerType: function (dom) {
      dom.children('div:eq(0)').html("全部 <i></i>");
      dom.children('.select-list').children('ul').empty();
      dom.children('.select-list').children('ul').append($("<li ownerid='all'>全部</li>"));
      $.ajax({
        url: '/api/blade-jfpts/lx/lx/seleclx',
        type: 'GET',
        dataType: 'JSON',
        success: function (data) {
          var res = data.data;
          for (var i = 0; i < res.length; i++) {
            dom.children('.select-list').children('ul').append($("<li ownerid=" + res[i].tnumber + ">" + res[i].types + "</li>"));
          }
        }
      })
    },
    getOwnerDj: function (dom, tnumbers) {
      dom.children('div:eq(0)').html("全部 <i></i>");
      dom.children('.select-list').children('ul').empty();
      dom.children('.select-list').children('ul').append($("<li>全部</li>"));
      // $.ajax({
      //   url: '/api/blade-jfpts/dj/dj/selectName?tnumbers=' + tnumbers,
      //   type: 'GET',
      //   dataType: 'JSON',
      //   success: function (data) {
      //     var res = data.data;
      //     for (var i = 0; i < res.length; i++) {
      //       dom.children('.select-list').children('ul').append($("<li>" + res[i].dj + "</li>"));
      //     }
      //   }
      // })
    },
    // 获取业主信息列表
    getOwnerTable: function (dom, deviceType) {
      dom.empty();
      var that = this;
      $.ajax({
        // url: '/api/blade-system/tenant/page',
        // type: 'GET',
        url: '/api/blade-system/tenant/selectListTe',
        type: 'POST',
        dataType: 'JSON',
        success: function (data) {
          // var result = data.data;
          var oldData = data.data;
          // console.log(deviceType)
          var result = [];
          that.Ydata = oldData;
          if (deviceType == '') {
            result = oldData;
          } else if (deviceType == '医院') {
            for (var key in oldData) {
              // console.log(oldData[key]);
              if (oldData[key].type == '0') {
                result.push(oldData[key]);
              }
            }
          } else if (deviceType == '学校') {
            for (var key in oldData) {
              // console.log(oldData[key]);
              if (oldData[key].type == '1') {
                result.push(oldData[key]);
              }
            }
          } else if (deviceType == '小区') {
            for (var key in oldData) {
              // console.log(oldData[key]);
              if (oldData[key].type == '2') {
                result.push(oldData[key]);
              }
            }
          }
          that.clearLayer();//图标清除
          that.entityData = [];
          for (var i = 0; i < result.length; i++) {
            result[i].x = Number(result[i].jd);
            result[i].y = Number(result[i].wd);
            that.entityData.push({
              lgtd: Number(result[i].jd),
              lttd: Number(result[i].wd)
            })
          }
          // console.log(result);//业主
          if (that.heatmapfeatureLayer.graphics.length > 0) {//热力图数据映射
            that.heatmapfeatureLayer.clear();
            that.heatmapfeatureLayer.setRenderer();
            $('.analysis-category input').prop('checked', false);
          };
          that.flareClusterLayer(result);//图标渲染
          that.Ydatas = result;
          that.clusterLayer._setUserState('业主');//切换聚合图标点击事件
          var str = '';
          that.entitysData = [];
          that.analysisAddEntitys.clear();
          var createD = (id, a, name, dj, type) => {
            str += "<tr term-list=" + id + ">";
            str += '<td>' + a + '</td>';
            str += '<td>' + name + '</td>';
            str += '<td>' + dj + '</td>';
            str += '<td>' + type + '</td>';
            // str += "<td class='location' style='display: none'> <input type='button' value='定位'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
            str += '</tr>';
            dom.append(str);
            str = '';
          }
          for (var a, i = 0; i < result.length; i++) {
            that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '业主信息', {
              lgtd: result[i].jd,
              lttd: result[i].wd,
              id: result[i].id
            }, result[i].jd, result[i].wd,
              // './images/业主.png'
            );
            a = Number(i) + 1;
            if (result[i].type === "0") {
              createD(result[i].id, a, result[i].tenant_name, result[i].dj, '医院')
            } else if (result[i].type === "1") {
              createD(result[i].id, a, result[i].tenant_name, result[i].nature, '学校')
            } else if (result[i].type === "2") {
              createD(result[i].id, a, result[i].tenant_name, result[i].housetype, '小区')
            } else {
              createD(result[i].id, a, result[i].tenant_name, result[i].dj, '其他')
            }
          }
          // console.log(that.Ydata);//业主筛选
        }
      })
    },
    // 获取设备信息列表
    getEquipmentTable: function (dom, deviceType, once) {
      dom.empty();
      var that = this;
      // console.log(that.clusterLayer)
      // console.log(dom, deviceType);
      // dom.append(deviceType);
      // var str = "<td class='locationb'> <input type='button' value='定位'" + ' lgtd=' + 114.9285 + ' lttd=' + 25.850693 + "></td>"
      // that.entitysData = [];
      // that.analysisAddEntitys.clear();
      // that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '设备信息', {
      //   lgtd: 114.9285,
      //   lttd: 25.850693,
      //   id: 5
      // }, 114.9285, 25.850693, './images/ceshi.png');
      // dom.append(str)
      $.ajax({
        url: '/api/blade-jfpts/equipment/equipment/listAll?deviceType=' + deviceType,
        type: 'GET',
        dataType: 'JSON',
        success: function (data) {
          var oldData = data.data;
          var result = [];
          that.Sdata = oldData;
          var str = '';
          that.entitysData = [];
          that.analysisAddEntitys.clear();
          if (deviceType == '') {
            result = oldData;
          } else if (deviceType == '在线') {
            for (var key in oldData) {
              // console.log(oldData[key]);
              if (oldData[key].state == '' && oldData[key].jtype != 1 && oldData[key].onlineStatus == 1) {
                result.push(oldData[key]);
              }
            }
          } else if (deviceType == '离线') {
            for (var key in oldData) {
              // console.log(oldData[key]);
              if (oldData[key].state == '' && oldData[key].jtype != 1 && oldData[key].onlineStatus != 1) {
                result.push(oldData[key]);
              }
            }
          } else if (deviceType == '警报') {
            for (var key in oldData) {
              // console.log(oldData[key]);
              if (oldData[key].state == '' && oldData[key].jtype == 1) {
                result.push(oldData[key]);
              }
            }
          } else if (deviceType == '故障') {
            for (var key in oldData) {
              // console.log(oldData[key]);
              if (oldData[key].state != '') {
                result.push(oldData[key]);
              }
            }
          }
          if (once != 'once') {
            that.clearLayer();//图标清除
            that.entityData = [];
            for (var i = 0; i < result.length; i++) {
              result[i].x = Number(result[i].jd);
              result[i].y = Number(result[i].wd);
              that.entityData.push({
                lgtd: Number(result[i].jd),
                lttd: Number(result[i].wd)
              })
            }
            // console.log(result);//设备筛选
            if (that.heatmapfeatureLayer.graphics.length > 0) {//热力图数据映射
              that.heatmapfeatureLayer.clear();
              that.heatmapfeatureLayer.setRenderer();
              $('.analysis-category input').prop('checked', false);
            };
            that.flareClusterLayer(result);//图标渲染
            that.clusterLayer._setUserState('设备');//切换聚合图标点击事件
          }
          that.Sdatas = result;
          for (var a, i = 0; i < result.length; i++) {
            that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '设备信息', {
              lgtd: result[i].jd,
              lttd: result[i].wd,
              id: result[i].id
            }, result[i].jd, result[i].wd,
              // './images/ceshi.png'
            );
            var stares = '';
            a = Number(i) + 1;
            str += "<tr term-listid=" + result[i].id + ">";
            str += '<td>' + a + '</td>';
            str += '<td title=' + result[i].deviceName + '>' + result[i].deviceName + '</td>';
            // str += '<td title=' + result[i].deviceType + '>' + result[i].deviceType + '</td>';
            str += '<td>' + result[i].deviceNumber + '</td>';
            // console.log(result[i].state);
            if (result[i].state != '') {
              stares = '故障';
              str += "<td class='location'> <input style='background-image:linear-gradient(to right, #F49966 , #F49966' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
            } else {
              if (result[i].jtype != 1) {
                if (result[i].onlineStatus == 1) {//el-tabs__active-bar
                  stares = '在线';
                  str += "<td class='location'> <input style='background-image:linear-gradient(to right, #32C1A2 , #32C1A2' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                } else {
                  stares = '离线';
                  str += "<td class='location'> <input style='background-image:linear-gradient(to right, #CDCDCD , #CDCDCD' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
        },
        open: function() {
            var that = this;
            $.ajax({
                url: "/api/blade-jfpts/equipment/equipment/listAll",
                type: 'get',
                dataType: 'JSON',
                success: function(res) {
                    var datas = res.data;
                    // console.log(datas)
                    var heatmapRenderer = null;
                    that.entityData = [];
                    for (var i = 0; i < datas.length; i++) {
                        datas[i].x = Number(datas[i].jd);
                        datas[i].y = Number(datas[i].wd);
                        that.entityData.push({
                            lgtd: Number(datas[i].jd),
                            lttd: Number(datas[i].wd)
                        })
                    }
                    that.flareClusterLayer(datas);
                    // console.log(datas)
                    that.heatmapfeatureLayer = that.heatmFeaLayers();
                    that._map.addLayer(that.heatmapfeatureLayer);
                    // that.checkBoxSelect();//左侧控制热力图重复
                }
              } else {
                stares = '警报';
                str += "<td class='location'> <input style='background-image:linear-gradient(to right, #F35B5B , #F35B5B' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
              }
            })
            var that = this;
            var intTime = () => {
                var time = this.getTime();
                $("#tabcontainer").css("width", "360px");
                $('#mapcontentClass').addClass('client-max-map'); //追加样式
                AppEvent.dispatchAppEvent(AppEvent.APPLICATION_RESIZE, {});
                that.tabIndex = 0;
                $('.analysis-and-judgment-tab li:eq(0)').addClass('on').siblings().removeClass('on');
                $($('.analysis-container > div')[0]).stop().show().siblings().stop().hide();
                that.heatmapfeatureLayer = that.heatmFeaLayers();
                that._map.addLayer(that.heatmapfeatureLayer);
                $('#analysis_select_time_start').val(time.tomorrow);
                $('#analysis_select_time_end').val(time.current);
                layui.use('laydate', function() {
                    that.layuiLadate = layui.laydate;
                    //执行一个laydate实例 开始
                    that.layuiLadate.render({
                        elem: '#analysis_select_time_start', //指定元素
                        type: "datetime",
                        format: 'yyyy-MM-dd HH:mm',
                        trigger: 'click'
                    });
                    // 结束
                    that.layuiLadate.render({
                        elem: '#analysis_select_time_end', //指定元素
                        type: "datetime",
                        format: 'yyyy-MM-dd HH:mm',
                        trigger: 'click'
                    });
                });
                that.getArea($('#policeArea'));
                // that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), time.tomorrow, time.current, '', '');
                that.clickHand();
            }
            str += '</tr>';
            dom.append(str);
            str = '';
          }
        }
      })
    },
    // 创建实体图层
    createEntitysAnalysis: function (entitys, entityContent, name, item, lgtd, lttd, outlineColors) {
      var symbol = new esri.symbol.PictureMarkerSymbol(outlineColors, 16, 16);
      symbol.name = name;
      var pt = new Point(lgtd, lttd, new SpatialReference({ wkid: 4326 }));
      pt.entityData = item;
      var graphic = new esri.Graphic(pt, symbol);
      entitys.add(graphic);
      var bbb = document.getElementsByTagName("image");
      // console.log(bbb);
      entityContent.push(item);
    },
    //左侧控制栏↑
    heatmFeaLayers: function () {// liu 热力图渲染器,加载热力图
      var layerDefinition = {
        "geometryType": "esriGeometryPoint",
        "fields": [{
          "num": "num",
          editable: true,
          nullable: true,
          "type": "esriFieldTypeInteger",
          "alias": "数量"
        }]
      };
      var featureCollection = {
        layerDefinition: layerDefinition,
        featureSet: null
      };
      //创建 FeatureLayer 图层
      var featureLayer = new esri.layers.FeatureLayer(featureCollection, {
        mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
        outFields: ["*"],
        opacity: .8
      });
      //设置渲染方式
      return featureLayer;
    },
    checkBoxSelect: function (self) {//选择热力图
      var that = this;
      var heatmapRenderer = null;
      // console.log(self);
      // // return
      // 选中
      if ($(self).prop('checked') == true) {
        that.clearLayer();//图标清除
        // console.log($(self).attr('id'), 1);
        // if (1) {
        heatmapRenderer = new HeatmapRenderer({
          colorStops: [
            { ratio: 0.45, color: "rgba(000,000,255,0)" },
            { ratio: 0.55, color: "rgb(000,255,255)" },
            { ratio: 0.65, color: "rgb(000,255,000)" },
            { ratio: 0.75, color: "rgb(234,126,15)" },
            { ratio: 1.00, color: "rgb(255,000,000)" },
          ],
          blurRadius: 42,
          maxPixelIntensity: 100,
          minPixelIntensity: 0
        });
        this.heatmapfeatureLayer.setRenderer(heatmapRenderer);
        // 取消选中
        var point = null;
        for (var i = 0; i < that.entityData.length; i++) {
          point = new esri.geometry.Point(this.entityData[i].lgtd, this.entityData[i].lttd, new esri.SpatialReference({ wkid: 4326 }));
          this.heatmapfeatureLayer.add(new esri.Graphic(point));
        }
      } else {
        // console.log(self, 2);
        if ($(self).attr('class') == 'p') {
          that.entityData = [];
          for (var i = 0; i < this.Pdatas.length; i++) {
            this.Pdatas[i].x = Number(this.Pdatas[i].jd);
            this.Pdatas[i].y = Number(this.Pdatas[i].wd);
            that.entityData.push({
              lgtd: Number(this.Pdatas[i].jd),
              lttd: Number(this.Pdatas[i].wd)
            })
          }
          if (that.heatmapfeatureLayer.graphics.length > 0) {//热力图数据映射
            that.heatmapfeatureLayer.clear();
            that.heatmapfeatureLayer.setRenderer();
            // $('.analysis-category input').prop('checked', false);
          };
          that.flareClusterLayer(this.Pdatas);//图标渲染
        } else if ($(self).attr('class') == 'Y') {
          that.entityData = [];
          for (var i = 0; i < this.Ydatas.length; i++) {
            this.Ydatas[i].x = Number(this.Ydatas[i].jd);
            this.Ydatas[i].y = Number(this.Ydatas[i].wd);
            that.entityData.push({
              lgtd: Number(this.Ydatas[i].jd),
              lttd: Number(this.Ydatas[i].wd)
            })
          }
          if (that.heatmapfeatureLayer.graphics.length > 0) {//热力图数据映射
            that.heatmapfeatureLayer.clear();
            that.heatmapfeatureLayer.setRenderer();
            // $('.analysis-category input').prop('checked', false);
          };
          that.flareClusterLayer(this.Ydatas);//图标渲染
        } else if ($(self).attr('class') == 'S') {
          that.entityData = [];
          for (var i = 0; i < this.Sdatas.length; i++) {
            this.Sdatas[i].x = Number(this.Sdatas[i].jd);
            this.Sdatas[i].y = Number(this.Sdatas[i].wd);
            that.entityData.push({
              lgtd: Number(this.Sdatas[i].jd),
              lttd: Number(this.Sdatas[i].wd)
            })
          }
          if (that.heatmapfeatureLayer.graphics.length > 0) {//热力图数据映射
            that.heatmapfeatureLayer.clear();
            that.heatmapfeatureLayer.setRenderer();
            // $('.analysis-category input').prop('checked', false);
          };
          that.flareClusterLayer(this.Sdatas);//图标渲染
        }
        this.heatmapfeatureLayer.clear();
        this.heatmapfeatureLayer.setRenderer();
      }
    },
    close: function () {
    },
    // 获取当前时间,以及昨天现在的时间
    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
      };
    },
    // 创建实体图层
    createEntitys: function (entitys, entityContent, name, item, lgtd, lttd, outlineColors) {
      var symbol = new esri.symbol.PictureMarkerSymbol(outlineColors, 33, 48);
      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, img) {
      var symbol = new esri.symbol.PictureMarkerSymbol(img, 33, 48);
      var pt = new Point(lgtd, lttd, new SpatialReference({
        wkid: 4326
      }));
      var graphic = new esri.Graphic(pt, symbol);
      entitys.add(graphic);
    },
    addPoints: function (entitys, lgtd, lttd, img) {
      var symbol = new esri.symbol.PictureMarkerSymbol(img, 33, 48);
      var pt = new Point(lgtd, lttd, new SpatialReference({
        wkid: 4326
      }));
      var graphic = new esri.Graphic(pt, symbol);
      entitys.add(graphic);
    },
    clickHand: function (e) {//top点击事件,导航
      // console.log(e);
    },
    //聚合图层事件
    flareClusterLayer: function (datas, userState) {  //top聚合事件,导航
      var that = this;
      var preClustered = false;
      var displaySingleFlaresAtCount = 20;
      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: 120,
        clusterAreaDisplay: areaDisplayMode,
        clusteringBegin: function (e) {
          // console.log("clustering begin");
            intTime();
        },
        clusteringComplete: function () {
          console.log("clustering complete");
        }
      });
        startup: function() {
            var mySelf = this;
            objThis._map.addLayer(objThis._siteLayer);
            var that = this;
            // console.log(mySelf.clusterLayer)
            that.getEquipmentTable($('.analysis-container-equipment').find('.tbody tbody'), '', 'once');
            // 顶部tab得切换事件
            $('.analysis-and-judgment-tab li').click(function() {
                // if (that.tabIndex == $(this).index()) return;
                // if ($(this).index() == 1) { return };
                // if ($(this).index() == 2) { return };
      //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/jingbaored.png", 33, 48).setOffset(0, 1);
      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, 52, 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);
                //解决打开热力图 切换top获取不了数据问题 警情
                if ($('#policeHeatMap').prop('checked') == true) {
                    // console.log($('#policeHeatMap').prop('checked') == true)
                    $('#policeHeatMap').prop('checked', false);
                    that.checkBoxSelect($('#policeHeatMap'));
                } else
                //解决打开热力图 切换top获取不了数据问题 业主
                if ($('#ownerHeatMap').prop('checked') == true) {
                    // console.log($('#ownerHeatMap').prop('checked') == true)
                    $('#ownerHeatMap').prop('checked', false);
                    that.checkBoxSelect($('#ownerHeatMap'));
                } else
                //解决打开热力图 切换top获取不了数据问题 设备
                if ($('#equipmentHeatMap').prop('checked') == true) {
                    // console.log($('#equipmentHeatMap').prop('checked') == true)
                    $('#equipmentHeatMap').prop('checked', false);
                    that.checkBoxSelect($('#equipmentHeatMap'));
                }
      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
                // console.log($('#policeHeatMap').prop('checked') == true)
                if (that.entitysData.length > 0) {
                    that.analysisAddEntitys.clear();
                    that.entitysData = [];
                }
                if (that.heatmapfeatureLayer.graphics.length > 0) {
                    that.heatmapfeatureLayer.clear();
                    that.heatmapfeatureLayer.setRenderer();
                    $('.analysis-category input').prop('checked', false);
                }
                $(this).addClass('on').siblings().removeClass('on');
                var ind = $(this).index();
                $($('.analysis-container > div')[ind]).stop().show().siblings().stop().hide();
                var overText = $('#policeCategory > div:eq(0)').text().trim() == '全部' ? '' : $('#policeCategory > div:eq(0)').text().trim();
                var levelText = $('#policeArea > div:eq(0)').text().trim() == '全部' ? '' : $('#policeArea > div:eq(0)').attr('areaid');
                if (ind == 1) {
                    that.getArea($('#policeArea'));
                    that.getPoliceTableAnalysis($($('.analysis-container > div')[ind]).find('.tbody tbody'),
                        $('#analysis_select_time_start').val() + ':00',
                        $('#analysis_select_time_end').val() + ':00', overText, levelText)
                } else if (ind == 2) {
                    that.getOwnerType($('#ownerCategory'));
                    that.getOwnerDj($('#ownerLevel'), '');
                    that.getOwnerTable($($('.analysis-container > div')[ind]).find('.tbody tbody'), '', '');
                } else if (ind == 0) {
                    that.getEquipmentTable($($('.analysis-container > div')[ind]).find('.tbody tbody'), '');
                }
                that.tabIndex = $(this).index();
            })
            // 时间查询
            $('#policeSelectTime').off('click').click(function() {
                var times = $(this).prevAll();
                layui.use('layer', function() {
                    var layer = layui.layer;
                    // 开始时间
                    var startTime = $(times[2]).val();
                    // 结束时间
                    var endTime = $(times[0]).val();
                    if (startTime == '') {
                        layer.msg('请选择开始时间!', {
                            icon: 5,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                        return;
                    } else {
                        if (endTime == '') {
                            layer.msg('请选择结束时间!', {
                                icon: 5,
                                time: 2000 //2秒关闭(如果不配置,默认是3秒)
                            });
                            return;
                        } else {
                            var text = $('#policeCategory div:eq(0)').text().trim();
                            var levelText = $('#policeArea > div:eq(0)').text().trim() == '全部' ? '' : $('#policeArea > div:eq(0)').attr('areaid');
                            that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), startTime, endTime, text == '全部' ? '' : text, levelText);
                        }
                    }
                })
            })
            // 警情列表中的点击事件
            $('.analysis-container-police .analysis-table-content .tbody').off('click', 'tr').on('click', 'tr', function(event) {
                if ($('#policeHeatMap').prop('checked') == true) { // 点击关闭热力图
                    // console.log('relitu')
                    $('#policeHeatMap').click();
                }
                var id = $(this).attr('term-list');
                var b = mySelf.Pdata;
                for (var key in b) {
                    if (b[key].id == id) {
                        b = b[key];
                        break;
                    }
                }
                // console.log(b, id);
                event.stopPropagation();
                var winSize = [+window.innerHeight / 2 - 242 + 'px', +window.innerWidth - 380 + 'px'];
                if (b.jd == '' || b.wd == '') {
                    // console.log('无地图经纬度');
                    b.haveJW = '无地图经纬度';
                } else {
                    // console.log('有地图经纬度')
                    b.haveJW = '有地图经纬度';
                    // var lgtd = Number($(this).find('input').attr('lgtd'));
                    // var lttd = Number($(this).find('input').attr('lttd'));
                    var lgtd = Number(b.jd);
                    var lttd = Number(b.wd);
                    // console.log($(this).find('input').attr('lttd'));
                    var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
                    that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
                }
                //解决重复JSON.stringify将循环结构转换为JSON。有几率出错,err:TypeError: Converting circular structure to JSON
                //舍弃上面方法,原因是对象里面嵌入对象,造成不能转换成JSON,吧对象去掉就好,
                var as = b;
                var setdata = JSON.stringify(as);
                // console.log(setdata,'setdata')
                var intOpen = () => {
                    layui.use('layer', function() {
                        that.layuiLayer = layui.layer;
                        that.layuiLayer.config({
                            extend: 'myskin/FlareClusterLayer.css'
                        });
                        that.layuiLayer.close(that.layuiLayer.index);
                        that.layuiLayer.open({
                            title: '',
                            type: 2,
                            shadeClose: true,
                            shade: false,
                            skin: 'demo-class',
                            id: 'onelyTwo',
                            maxmin: false, //开启最大化最小化按钮
                            area: ['360px', '484px'],
                            // area: 'auto',
                            offset: winSize,
                            skin: 'flare',
                            isOutAnim: false,
                            closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
                            content: ['./popup/html/SupervisoryMapPdata.html'],
                            resize: false,
                            scrollbar: false,
                            // tipsMore: true, //允许多个tipe
                            // content: num,
                            success: function(layero, index) { //成功后添加全局点击关闭
                                $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
                            },
                        })
                    })
                }
                if (mySelf.onceTimeMethod == null) { //防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
                    intOpen();
                    mySelf.onceTimeMethod = setTimeout(() => {
                        mySelf.onceTimeMethod = null;
                    }, mySelf.onceTime);
                } else {};
            })
            $('.analysis-container-police .analysis-table-content .tbody').off('click', '.location').on('click', '.location', function(event) {
                event.stopPropagation();
            })
            $('.analysis-container-police .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', 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是缩放级别,可以自定义,数值越大缩放越大
            })
            // 业主列表中的点击事件
            $('.analysis-container-owner .analysis-table-content .tbody').off('click', 'tr').on('click', 'tr', function(event) {
                if ($('#ownerHeatMap').prop('checked') == true) { // 点击关闭热力图
                    // console.log('relitu')
                    $('#ownerHeatMap').click();
                }
                var id = $(this).attr('term-list');
                var b = mySelf.Ydata;
                for (var key in b) {
                    if (b[key].id == id) {
                        b = b[key];
                        break;
                    }
                }
                event.stopPropagation();
                if (b.jd == '' || b.wd == '') {
                    // console.log('无地图经纬度');
                    b.haveJW = '无地图经纬度';
                } else {
                    // console.log('有地图经纬度')
                    b.haveJW = '有地图经纬度';
                    var lgtd = Number(b.jd);
                    var lttd = Number(b.wd);
                    // console.log($(this).find('input').attr('lttd'));
                    var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
                    that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
                }
                // console.log(b, id);
                var winSize = [+window.innerHeight / 2 - 242 + 'px', +window.innerWidth - 380 + 'px'];
                var as = b;
                var bs = {};
                for (let key in as) {
                    if (typeof as[key] != 'object') {
                        bs[key] = as[key]
                            // as = as[key].attributes;
                            // console.log('youduixang ')
                            // break;
                    }
                }
                var setdata = JSON.stringify(bs);
                // console.log(setdata,'setdata')
                var intOpen = () => {
                    layui.use('layer', function() {
                        that.layuiLayer = layui.layer;
                        that.layuiLayer.config({
                            extend: 'myskin/FlareClusterLayer.css'
                        });
                        that.layuiLayer.close(that.layuiLayer.index);
                        that.layuiLayer.open({
                            title: '',
                            type: 2,
                            shadeClose: true,
                            shade: false,
                            skin: 'demo-class',
                            id: 'onelyTwo',
                            maxmin: false, //开启最大化最小化按钮
                            area: ['360px', '484px'],
                            // area: 'auto',
                            offset: winSize,
                            skin: 'flare',
                            isOutAnim: false,
                            closeBtn: 2, //关闭按钮,可通过配置1和2来展示,0关闭
                            content: ['./popup/html/SupervisoryMapYdata.html'],
                            resize: false,
                            scrollbar: false,
                            // tipsMore: true, //允许多个tipe
                            // content: num,
                            success: function(layero, index) { //成功后添加全局点击关闭
                                $("#layui-layer-iframe" + index).contents().find("#sidIput").val(setdata);
                            },
                        })
                    })
                }
                if (mySelf.onceTimeMethod == null) { //防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
                    intOpen();
                    mySelf.onceTimeMethod = setTimeout(() => {
                        mySelf.onceTimeMethod = null;
                    }, mySelf.onceTime);
                } else {};
            })
            $('.analysis-container-owner .analysis-table-content .tbody').off('click', '.location').on('click', '.location', function(event) {
                event.stopPropagation();
            })
            $('.analysis-container-owner .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', 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是缩放级别,可以自定义,数值越大缩放越大
            })
            // 设备列表中的点击事件
            $('.analysis-container-equipment .analysis-table-content .tbody').off('click', 'tr').on('click', 'tr', function(event) {
                    var id = $(this).attr('term-listid');
                    if ($('#equipmentHeatMap').prop('checked') == true) { // 点击关闭热力图
                        // console.log('relitu')
                        $('#equipmentHeatMap').click();
                    }
                    event.stopPropagation();
                    var lgtd = Number($(this).find('input').attr('lgtd'));
                    var lttd = Number($(this).find('input').attr('lttd'));
                    // console.log($(this).find('input').attr('lttd'));
                    var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
                    that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
                    var y = +window.innerHeight / 2 + 200;
                    var x = (+window.innerWidth - 360) / 2 + 360 + 70;
                    // document.elementFromPoint(x, y).click();
                    // console.log(x, y)
                    // var a = document.elementFromPoint(21, 122);
                    // console.log(a);
                    // console.log(that.clusterLayer, that._map, 6)
                    // console.log(id, 'id');
                    // console.log(that.clusterLayer);
                    var Tattributes = null,
                        ds = that.clusterLayer.allData;
                    for (var key in ds) {
                        if (ds[key].id == id) {
                            Tattributes = ds[key];
                        }
                    }
                    if (mySelf.onceTimeMethod == null) { //防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
                        var evtdata = {};
                        evtdata = {
                            graphic: {
                                attributes: Tattributes,
                            },
                            screenX: x,
                            screenY: y,
                        }
                        that.clusterLayer._clickOpenOnclick(evtdata, '控制端', that.clusterLayer.indexs);
                        mySelf.onceTimeMethod = setTimeout(() => {
                            mySelf.onceTimeMethod = null;
                        }, mySelf.onceTime);
                    } else {};
                })
                // $('.analysis-container-equipment .analysis-table-content .tbody').off('click', '.location').on('click', '.location', function (event) {
                //   event.stopPropagation();
                // })
                // $('.analysis-container-equipment .analysis-table-content .tbody').off('click', '.location input').on('click', '.location input', 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 y = +window.innerHeight / 2 + 200;
            //   var x = (+window.innerWidth - 360) / 2 + 360 + 70;
            //   // document.elementFromPoint(x, y).click();
            //   // console.log(x, y)
            //   // var a = document.elementFromPoint(21, 122);
            //   // console.log(a);
            //   // console.log(that.clusterLayer, that._map, 6)
            //   // console.log(id, 'id');
            //   // console.log(that.clusterLayer.indexs);
            //   var Tattributes = null
            //     , ds = that.clusterLayer.allData;
            //   for (var key in ds) {
            //     if (ds[key].id == id) {
            //       Tattributes = ds[key];
            //     }
            //   }
            //   if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
            //     var evtdata = {};
            //     evtdata = {
            //       graphic: {
            //         attributes: Tattributes,
            //       },
            //       screenX: x,
            //       screenY: y,
            //     }
            //     that.clusterLayer._clickOpenOnclick(evtdata, '控制端', that.clusterLayer.indexs);
            //     mySelf.onceTimeMethod = setTimeout(() => {
            //       mySelf.onceTimeMethod = null;
            //     }, mySelf.onceTime);
            //   } else {
            //   };
            // })
            // 警情列表中得热力图是否选中事件
            $('#policeHeatMap').click(function() {
                    that.checkBoxSelect(this);
                })
                // 业主信息列表中得热力图是否选中事件
            $('#ownerHeatMap').click(function() {
                    that.checkBoxSelect(this);
                })
                // 设备信息列表的热力图是否选中事件
            $('#equipmentHeatMap').click(function() {
                    that.checkBoxSelect(this);
                })
                // 警情信息中类别移入事件
            $('#policeCategory').mouseenter(function() {
                    if ($('#policeCategory .select-list').is(':hidden')) {
                        $('#policeCategory .select-list').stop().slideDown(0);
                    }
                })
                // 警情信息中得类别移出事件
            $('#policeCategory').mouseleave(function() {
                    if (!$('#policeCategory .select-list').is(':hidden')) {
                        $('#policeCategory .select-list').stop().slideUp(0);
                    }
                })
                // 警情信息中行政区移入事件
            $('#policeArea').mouseenter(function() {
                    if ($('#policeArea .select-list').is(':hidden')) {
                        $('#policeArea .select-list').stop().slideDown(0);
                    }
                })
                // 警情信息中得行政区移出事件
            $('#policeArea').mouseleave(function() {
                    if (!$('#policeArea .select-list').is(':hidden')) {
                        $('#policeArea .select-list').stop().slideUp(0);
                    }
                })
                // 业主信息中类别移入事件
            $('#ownerCategory').mouseenter(function() {
                    if ($('#ownerCategory .select-list').is(':hidden')) {
                        $('#ownerCategory .select-list').stop().slideDown(0);
                    }
                })
                // 业主信息中得类别移出事件
            $('#ownerCategory').mouseleave(function() {
                    if (!$('#ownerCategory .select-list').is(':hidden')) {
                        $('#ownerCategory .select-list').stop().slideUp(0);
                    }
                })
                // 业主信息中的等级移入事件
            $('#ownerLevel').mouseenter(function() {
                    if ($('#ownerLevel .select-list').is(':hidden')) {
                        $('#ownerLevel .select-list').stop().slideDown(0);
                    }
                })
                // 业主信息中的等级移出事件
            $('#ownerLevel').mouseleave(function() {
                    if (!$('#ownerLevel .select-list').is(':hidden')) {
                        $('#ownerLevel .select-list').stop().slideUp(0);
                    }
                })
                // 设备信息中类别移入事件
            $('#equipmentCategory').mouseenter(function() {
                    if ($('#equipmentCategory .select-list').is(':hidden')) {
                        $('#equipmentCategory .select-list').stop().slideDown(0);
                    }
                })
                // 设备信息中得类别移出事件
            $('#equipmentCategory').mouseleave(function() {
                    if (!$('#equipmentCategory .select-list').is(':hidden')) {
                        $('#equipmentCategory .select-list').stop().slideUp(0);
                    }
                })
                //  警情信息类,业主信息类,设备信息类别,具体项的点击事件
            $('.analysis-container > div .select-list').off('click', 'li').on('click', 'li', function(event) {
                // console.log(event.currentTarget.innerHTML,'innerhtml')
                var text = $(this).text().trim();
                // console.log(this,text,'text()')
                // console.log(that.tabIndex,'tabIndex')
                //解决打开热力图 切换top获取不了数据问题 警情
                if ($('#policeHeatMap').prop('checked') == true) {
                    // console.log($('#policeHeatMap').prop('checked') == true)
                    $('#policeHeatMap').prop('checked', false);
                    that.checkBoxSelect($('#policeHeatMap'));
                } else
                //解决打开热力图 切换top获取不了数据问题 业主
                if ($('#ownerHeatMap').prop('checked') == true) {
                    // console.log($('#ownerHeatMap').prop('checked') == true)
                    $('#ownerHeatMap').prop('checked', false);
                    that.checkBoxSelect($('#ownerHeatMap'));
                } else
                //解决打开热力图 切换top获取不了数据问题 设备
                if ($('#equipmentHeatMap').prop('checked') == true) {
                    // console.log($('#equipmentHeatMap').prop('checked') == true)
                    $('#equipmentHeatMap').prop('checked', false);
                    that.checkBoxSelect($('#equipmentHeatMap'));
                    var time = setTimeout(() => {
                        // $('#equipmentHeatMap').click(function () {
                        //   that.checkBoxSelect('#equipmentHeatMap');
                        // })();
                        $('#equipmentHeatMap').click();
                    }, 500);
                }
                $(this).parent().parent().prev().html(text + '<i></i>');
                $(this).parent().parent().stop().slideUp(0);
                if ($(this).attr('areaid')) {
                    $(this).parent().parent().prev().attr('areaid', $(this).attr('areaid'));
                } else if ($(this).attr('ownerid')) {
                    $(this).parent().parent().prev().attr('ownerid', $(this).attr('ownerid'));
                }
                if (that.tabIndex == 1) {
                    var levelText = $('#policeArea > div:eq(0)').text().trim() == '全部' ? '' : $('#policeArea > div:eq(0)').attr('areaid');
                    var overText = $('#policeCategory > div:eq(0)').text().trim() == '全部' ? '' : $('#policeCategory > div:eq(0)').text().trim();
                    if ($(this).attr('areaid')) {
                        that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), $('#analysis_select_time_start').val(), $('#analysis_select_time_end').val(), overText, levelText);
                    } else {
                        that.getPoliceTableAnalysis($('.analysis-container-police').find('.tbody tbody'), $('#analysis_select_time_start').val(), $('#analysis_select_time_end').val(), overText, levelText);
                    }
                } else if (that.tabIndex == 2) {
                    that.getOwnerTable($('.analysis-container-owner').find('.tbody tbody'), text == '全部' ? '' : text);
                } else if (that.tabIndex == 0) {
                    that.getEquipmentTable($('.analysis-container-equipment').find('.tbody tbody'), text == '全部' ? '' : text);
                }
            })
        },
        {
          fieldName: "postcode",
          label: "Post Code",
          visible: true
        getQueryStringByKey: function(key) {
            return (document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)")) || ['', null])[1];
        },
        {
          fieldName: "isOpen",
          label: "Opening Hours",
          visible: true
        //左侧控制栏
        getArea: function(dom) {
            dom.children('.select-list').children('ul').empty();
            dom.children('.select-list').children('ul').append($("<li areaid='all'>全部</li>"));
            var that = this;
            $.ajax({
                url: '/api/blade-system/region/select?code=3601',
                type: 'GET',
                dataType: 'JSON',
                success: function(data) {
                    var res = data.data;
                    for (var i = 0; i < res.length; i++) {
                        dom.children('.select-list').children('ul').append($("<li areaid=" + res[i].code + ">" + res[i].name + "</li>"));
                    }
                }
            })
        },
        getPoliceTableAnalysis: function(dom, beginTime, endTime, waringType, addvcd) {
            dom.empty(); //警情信息
            var that = this;
            $.ajax({
                url: "/api/blade-jfpts/alarm/alarm/page?current=1&size=99999&waringType=&beginTime=" + beginTime + "&endTime=" + endTime + "&province=36&city=3601&district=" + addvcd,
                type: 'get',
                dataType: 'JSON',
                success: function(data) {
                    // var result = data.data.records;
                    var oldData = data.data.records
                    var result = oldData;
                    that.Pdata = oldData;
                    // console.log(that.Pdata);//警情筛选
                    var str = '';
                    that.entitysData = [];
                    that.analysisAddEntitys.clear();
                    for (var a, time, t, e, y, h, i = 0; i < result.length; i++) {
                        if (result[i].waringType == "紧急求救") {
                            result[i].waringType = "一键求助"
                        }
                        that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '警情信息', {
                                lgtd: result[i].jd,
                                lttd: result[i].wd,
                                id: result[i].id
                            }, result[i].jd, result[i].wd,
                            //  './images/police-situation.png'
                        );
                        t = result[i].alarmTime.substr(0, 10);
                        e = result[i].alarmTime.substr(11);
                        time = t + '&nbsp;' + e;
                        y = result[i].alarmTime.substr(5, 5);
                        h = result[i].alarmTime.substr(11, 5);
                        a = Number(i) + 1;
                        str += '<tr term-list=' + result[i].id + '>';
                        str += '<td>' + a + '</td>';
                        str += '<td title=' + result[i].waringType + '>' + result[i].waringType + '</td>';
                        str += '<td title=' + result[i].alarmPeople + '>' + result[i].alarmPeople + '</td>';
                        str += "<td><a href='javascript:;' title=" + time + ">" + y + ' ' + h + "</a></td>";
                        // str += "<td class='location' style='display: none'> <input type='button' value='定位'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                        if (result[i].jtype == 0) {
                            str += "<td class='location'> <input style='color:#fff;background-color:#F35B5B;width: 50px' type='button' value='未处理'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                        } else {
                            if (result[i].jtype == 1) {
                                str += "<td class='location'> <input style='color:#fff;background-color:rgb(18, 145, 230);width: 50px' type='button' value='处理中'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                            } else {
                                str += "<td class='location'> <input style='color:#fff;background-color:#32C1A2;width: 50px' type='button' value='已处理'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                            }
                        }
                        str += '</tr>';
                        dom.append(str);
                        str = '';
                    }
                    that.clearLayer(); //图标清除
                    that.entityData = [];
                    for (var i = 0; i < result.length; i++) {
                        result[i].x = Number(result[i].jd);
                        result[i].y = Number(result[i].wd);
                        that.entityData.push({
                            lgtd: Number(result[i].jd),
                            lttd: Number(result[i].wd)
                        })
                    }
                    // console.log(result);//警情
                    if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
                        that.heatmapfeatureLayer.clear();
                        that.heatmapfeatureLayer.setRenderer();
                        $('.analysis-category input').prop('checked', false);
                    };
                    that.flareClusterLayer(result); //图标渲染
                    that.Pdatas = result;
                    that.clusterLayer._setUserState('警情'); //切换聚合图标点击事件
                    for (var i = 0; i < 1000; i++) {
                        var dd = Math.random();
                        var cc = Math.random();
                    }
                }
            })
        },
        getOwnerType: function(dom) {
            dom.children('div:eq(0)').html("全部 <i></i>");
            dom.children('.select-list').children('ul').empty();
            dom.children('.select-list').children('ul').append($("<li ownerid='all'>全部</li>"));
            $.ajax({
                url: '/api/blade-jfpts/lx/lx/seleclx',
                type: 'GET',
                dataType: 'JSON',
                success: function(data) {
                    var res = data.data;
                    for (var i = 0; i < res.length; i++) {
                        dom.children('.select-list').children('ul').append($("<li ownerid=" + res[i].tnumber + ">" + res[i].types + "</li>"));
                    }
                }
            })
        },
        getOwnerDj: function(dom, tnumbers) {
            dom.children('div:eq(0)').html("全部 <i></i>");
            dom.children('.select-list').children('ul').empty();
            dom.children('.select-list').children('ul').append($("<li>全部</li>"));
            // $.ajax({
            //   url: '/api/blade-jfpts/dj/dj/selectName?tnumbers=' + tnumbers,
            //   type: 'GET',
            //   dataType: 'JSON',
            //   success: function (data) {
            //     var res = data.data;
            //     for (var i = 0; i < res.length; i++) {
            //       dom.children('.select-list').children('ul').append($("<li>" + res[i].dj + "</li>"));
            //     }
            //   }
            // })
        },
        // 获取业主信息列表
        getOwnerTable: function(dom, deviceType) {
            dom.empty();
            var that = this;
            $.ajax({
                // url: '/api/blade-system/tenant/page',
                // type: 'GET',
                url: '/api/blade-system/tenant/selectListTe',
                type: 'POST',
                dataType: 'JSON',
                success: function(data) {
                    // var result = data.data;
                    var oldData = data.data;
                    // console.log(deviceType)
                    var result = [];
                    that.Ydata = oldData;
                    if (deviceType == '') {
                        result = oldData;
                    } else if (deviceType == '医院') {
                        for (var key in oldData) {
                            // console.log(oldData[key]);
                            if (oldData[key].type == '0') {
                                result.push(oldData[key]);
                            }
                        }
                    } else if (deviceType == '学校') {
                        for (var key in oldData) {
                            // console.log(oldData[key]);
                            if (oldData[key].type == '1') {
                                result.push(oldData[key]);
                            }
                        }
                    } else if (deviceType == '小区') {
                        for (var key in oldData) {
                            // console.log(oldData[key]);
                            if (oldData[key].type == '2') {
                                result.push(oldData[key]);
                            }
                        }
                    }
                    that.clearLayer(); //图标清除
                    that.entityData = [];
                    for (var i = 0; i < result.length; i++) {
                        result[i].x = Number(result[i].jd);
                        result[i].y = Number(result[i].wd);
                        that.entityData.push({
                            lgtd: Number(result[i].jd),
                            lttd: Number(result[i].wd)
                        })
                    }
                    // console.log(result);//业主
                    if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
                        that.heatmapfeatureLayer.clear();
                        that.heatmapfeatureLayer.setRenderer();
                        $('.analysis-category input').prop('checked', false);
                    };
                    that.flareClusterLayer(result); //图标渲染
                    that.Ydatas = result;
                    that.clusterLayer._setUserState('业主'); //切换聚合图标点击事件
                    var str = '';
                    that.entitysData = [];
                    that.analysisAddEntitys.clear();
                    var createD = (id, a, name, dj, type) => {
                        str += "<tr term-list=" + id + ">";
                        str += '<td>' + a + '</td>';
                        str += '<td>' + name + '</td>';
                        str += '<td>' + dj + '</td>';
                        str += '<td>' + type + '</td>';
                        // str += "<td class='location' style='display: none'> <input type='button' value='定位'" + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                        str += '</tr>';
                        dom.append(str);
                        str = '';
                    }
                    for (var a, i = 0; i < result.length; i++) {
                        that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '业主信息', {
                                lgtd: result[i].jd,
                                lttd: result[i].wd,
                                id: result[i].id
                            }, result[i].jd, result[i].wd,
                            // './images/业主.png'
                        );
                        a = Number(i) + 1;
                        if (result[i].type === "0") {
                            createD(result[i].id, a, result[i].tenant_name, result[i].dj, '医院')
                        } else if (result[i].type === "1") {
                            createD(result[i].id, a, result[i].tenant_name, result[i].nature, '学校')
                        } else if (result[i].type === "2") {
                            createD(result[i].id, a, result[i].tenant_name, result[i].housetype, '小区')
                        } else {
                            createD(result[i].id, a, result[i].tenant_name, result[i].dj, '其他')
                        }
                    }
                    // console.log(that.Ydata);//业主筛选
                }
            })
        },
        // 获取设备信息列表
        getEquipmentTable: function(dom, deviceType, once) {
            dom.empty();
            var that = this;
            // console.log(that.clusterLayer)
            // console.log(dom, deviceType);
            // dom.append(deviceType);
            // var str = "<td class='locationb'> <input type='button' value='定位'" + ' lgtd=' + 114.9285 + ' lttd=' + 25.850693 + "></td>"
            // that.entitysData = [];
            // that.analysisAddEntitys.clear();
            // that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '设备信息', {
            //   lgtd: 114.9285,
            //   lttd: 25.850693,
            //   id: 5
            // }, 114.9285, 25.850693, './images/ceshi.png');
            // dom.append(str)
            $.ajax({
                url: '/api/blade-jfpts/equipment/equipment/listAll?deviceType=' + deviceType,
                type: 'GET',
                dataType: 'JSON',
                success: function(data) {
                    var oldData = data.data;
                    var result = [];
                    that.Sdata = oldData;
                    var str = '';
                    that.entitysData = [];
                    that.analysisAddEntitys.clear();
                    if (deviceType == '') {
                        result = oldData;
                    } else if (deviceType == '正常') {
                        for (var key in oldData) {
                            // console.log(oldData[key]);
                            if (oldData[key].dtype == '1') {
                                result.push(oldData[key]);
                            }
                        }
                    } else if (deviceType == '掉线') {
                        for (var key in oldData) {
                            // console.log(oldData[key]);
                            if (oldData[key].dtype == '0') {
                                result.push(oldData[key]);
                            }
                        }
                    } else if (deviceType == '预警') {
                        for (var key in oldData) {
                            console.log(oldData[key], 111);
                            if (oldData[key].dtype == 2) {
                                result.push(oldData[key]);
                            }
                        }
                    } else if (deviceType == '故障') {
                        for (var key in oldData) {
                            // console.log(oldData[key]);
                            if (oldData[key].dtype == 3) {
                                result.push(oldData[key]);
                            }
                        }
                    }
                    if (once != 'once') {
                        that.clearLayer(); //图标清除
                        that.entityData = [];
                        for (var i = 0; i < result.length; i++) {
                            result[i].x = Number(result[i].jd);
                            result[i].y = Number(result[i].wd);
                            that.entityData.push({
                                lgtd: Number(result[i].jd),
                                lttd: Number(result[i].wd)
                            })
                        }
                        // console.log(result);//设备筛选
                        if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
                            that.heatmapfeatureLayer.clear();
                            that.heatmapfeatureLayer.setRenderer();
                            $('.analysis-category input').prop('checked', false);
                        };
                        that.flareClusterLayer(result); //图标渲染
                        that.clusterLayer._setUserState('设备'); //切换聚合图标点击事件
                    }
                    that.Sdatas = result;
                    for (var a, i = 0; i < result.length; i++) {
                        that.createEntitysAnalysis(that.analysisAddEntitys, that.entitysData, '设备信息', {
                                lgtd: result[i].jd,
                                lttd: result[i].wd,
                                id: result[i].id
                            }, result[i].jd, result[i].wd,
                            // './images/ceshi.png'
                        );
                        var stares = '';
                        a = Number(i) + 1;
                        str += "<tr term-listid=" + result[i].id + ">";
                        str += '<td>' + a + '</td>';
                        str += '<td title=' + result[i].deviceName + '>' + result[i].deviceName + '</td>';
                        // str += '<td title=' + result[i].deviceType + '>' + result[i].deviceType + '</td>';
                        str += '<td>' + result[i].deviceNumber + '</td>';
                        // console.log(result[i].state);
                        if (result[i].dtype == '3') {
                            stares = '故障';
                            str += "<td class='location'> <input style='background-image:linear-gradient(to right, #F49966 , #F49966' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                        } else if (result[i].dtype == '1') {
                            stares = '正常';
                            str += "<td class='location'> <input style='background-image:linear-gradient(to right, #32C1A2 , #32C1A2' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                        } else if (result[i].dtype == '0') {
                            stares = '掉线';
                            str += "<td class='location'> <input style='background-image:linear-gradient(to right, #CDCDCD , #CDCDCD' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                        } else if (result[i].dtype == '2') {
                            stares = '预警';
                            str += "<td class='location'> <input style='background-image:linear-gradient(to right, #F35B5B , #F35B5B' type='button' value=" + stares + ' lgtd=' + result[i].jd + ' lttd=' + result[i].wd + "></td>";
                        }
                        str += '</tr>';
                        dom.append(str);
                        str = '';
                    }
                }
            })
        },
        // 创建实体图层
        createEntitysAnalysis: function(entitys, entityContent, name, item, lgtd, lttd, outlineColors) {
            var symbol = new esri.symbol.PictureMarkerSymbol(outlineColors, 16, 16);
            symbol.name = name;
            var pt = new Point(lgtd, lttd, new SpatialReference({ wkid: 4326 }));
            pt.entityData = item;
            var graphic = new esri.Graphic(pt, symbol);
            entitys.add(graphic);
            var bbb = document.getElementsByTagName("image");
            // console.log(bbb);
            entityContent.push(item);
        },
        //左侧控制栏↑
        heatmFeaLayers: function() { // liu 热力图渲染器,加载热力图
            var layerDefinition = {
                "geometryType": "esriGeometryPoint",
                "fields": [{
                    "num": "num",
                    editable: true,
                    nullable: true,
                    "type": "esriFieldTypeInteger",
                    "alias": "数量"
                }]
            };
            var featureCollection = {
                layerDefinition: layerDefinition,
                featureSet: null
            };
            //创建 FeatureLayer 图层
            var featureLayer = new esri.layers.FeatureLayer(featureCollection, {
                mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
                outFields: ["*"],
                opacity: .8
            });
            //设置渲染方式
            return featureLayer;
        },
        checkBoxSelect: function(self) { //选择热力图
            var that = this;
            var heatmapRenderer = null;
            // console.log(self);
            // // return
            // 选中
            if ($(self).prop('checked') == true) {
                that.clearLayer(); //图标清除
                // console.log($(self).attr('id'), 1);
                // if (1) {
                heatmapRenderer = new HeatmapRenderer({
                    colorStops: [
                        { ratio: 0.45, color: "rgba(000,000,255,0)" },
                        { ratio: 0.55, color: "rgb(000,255,255)" },
                        { ratio: 0.65, color: "rgb(000,255,000)" },
                        { ratio: 0.75, color: "rgb(234,126,15)" },
                        { ratio: 1.00, color: "rgb(255,000,000)" },
                    ],
                    blurRadius: 42,
                    maxPixelIntensity: 100,
                    minPixelIntensity: 0
                });
                this.heatmapfeatureLayer.setRenderer(heatmapRenderer);
                // 取消选中
                var point = null;
                for (var i = 0; i < that.entityData.length; i++) {
                    point = new esri.geometry.Point(this.entityData[i].lgtd, this.entityData[i].lttd, new esri.SpatialReference({ wkid: 4326 }));
                    this.heatmapfeatureLayer.add(new esri.Graphic(point));
                }
            } else {
                // console.log(self, 2);
                if ($(self).attr('class') == 'p') {
                    that.entityData = [];
                    for (var i = 0; i < this.Pdatas.length; i++) {
                        this.Pdatas[i].x = Number(this.Pdatas[i].jd);
                        this.Pdatas[i].y = Number(this.Pdatas[i].wd);
                        that.entityData.push({
                            lgtd: Number(this.Pdatas[i].jd),
                            lttd: Number(this.Pdatas[i].wd)
                        })
                    }
                    if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
                        that.heatmapfeatureLayer.clear();
                        that.heatmapfeatureLayer.setRenderer();
                        // $('.analysis-category input').prop('checked', false);
                    };
                    that.flareClusterLayer(this.Pdatas); //图标渲染
                } else if ($(self).attr('class') == 'Y') {
                    that.entityData = [];
                    for (var i = 0; i < this.Ydatas.length; i++) {
                        this.Ydatas[i].x = Number(this.Ydatas[i].jd);
                        this.Ydatas[i].y = Number(this.Ydatas[i].wd);
                        that.entityData.push({
                            lgtd: Number(this.Ydatas[i].jd),
                            lttd: Number(this.Ydatas[i].wd)
                        })
                    }
                    if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
                        that.heatmapfeatureLayer.clear();
                        that.heatmapfeatureLayer.setRenderer();
                        // $('.analysis-category input').prop('checked', false);
                    };
                    that.flareClusterLayer(this.Ydatas); //图标渲染
                } else if ($(self).attr('class') == 'S') {
                    that.entityData = [];
                    for (var i = 0; i < this.Sdatas.length; i++) {
                        this.Sdatas[i].x = Number(this.Sdatas[i].jd);
                        this.Sdatas[i].y = Number(this.Sdatas[i].wd);
                        that.entityData.push({
                            lgtd: Number(this.Sdatas[i].jd),
                            lttd: Number(this.Sdatas[i].wd)
                        })
                    }
                    if (that.heatmapfeatureLayer.graphics.length > 0) { //热力图数据映射
                        that.heatmapfeatureLayer.clear();
                        that.heatmapfeatureLayer.setRenderer();
                        // $('.analysis-category input').prop('checked', false);
                    };
                    that.flareClusterLayer(this.Sdatas); //图标渲染
                }
                this.heatmapfeatureLayer.clear();
                this.heatmapfeatureLayer.setRenderer();
            }
        },
        close: function() {
        },
        // 获取当前时间,以及昨天现在的时间
        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
            };
        },
        // 创建实体图层
        createEntitys: function(entitys, entityContent, name, item, lgtd, lttd, outlineColors) {
            var symbol = new esri.symbol.PictureMarkerSymbol(outlineColors, 33, 48);
            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, img) {
            var symbol = new esri.symbol.PictureMarkerSymbol(img, 33, 48);
            var pt = new Point(lgtd, lttd, new SpatialReference({
                wkid: 4326
            }));
            var graphic = new esri.Graphic(pt, symbol);
            entitys.add(graphic);
        },
        addPoints: function(entitys, lgtd, lttd, img) {
            var symbol = new esri.symbol.PictureMarkerSymbol(img, 33, 48);
            var pt = new Point(lgtd, lttd, new SpatialReference({
                wkid: 4326
            }));
            var graphic = new esri.Graphic(pt, symbol);
            entitys.add(graphic);
        },
        clickHand: function(e) { //top点击事件,导航
            // console.log(e);
        },
        //聚合图层事件
        flareClusterLayer: function(datas, userState) { //top聚合事件,导航
            var that = this;
            var preClustered = false;
            var displaySingleFlaresAtCount = 20;
            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: 120,
                clusterAreaDisplay: areaDisplayMode,
                clusteringBegin: function(e) {
                    // 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/jingbaored.png", 33, 48).setOffset(0, 1);
            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, 52, 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;
        }
        ]
      });
      //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;
});
    });
    return Widget;
});
public/map/widgets/supervisoryMap/template.html
@@ -22,10 +22,10 @@
                        <div class='select-list'>
                            <ul>
                                <li>全部</li>
                                <li>在线</li>
                                <li>警报</li>
                                <li>正常</li>
                                <li>预警</li>
                                <li>故障</li>
                                <li>离线</li>
                                <li>掉线</li>
                            </ul>
                        </div>
                    </li>
@@ -96,8 +96,7 @@
                </ul>
            </div>
            <div class='analysis-selection-criteria'>
                <input type="text" id='analysis_select_time_start' readonly> <span>-</span> <input type="text"
                    id='analysis_select_time_end' readonly>
                <input type="text" id='analysis_select_time_start' readonly> <span>-</span> <input type="text" id='analysis_select_time_end' readonly>
                <input type="button" value='查询' id='policeSelectTime'>
            </div>
            <div class='analysis-table-content'>
src/views/clientManagement/clientManagement.vue
@@ -861,7 +861,6 @@
        });
      },
      rowUpdate(row, index, done, loading) {
        debugger;
        if(Array.isArray(row.deptId)){
            row.deptId = row.deptId.join(",");
        }