From c6796cb12ca7aa0717349ca185ece091acdd2bbc Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Tue, 20 Apr 2021 15:32:01 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/jfpt-Vue

---
 src/views/healthcode/healthcode.vue             |    4 
 src/api/client/client.js                        |   10 
 src/views/security/security.vue                 |   42 +
 src/views/supervisoryConsole/card.vue           |   37 +
 src/views/clientManagement/clientManagement.vue |   81 +++-
 src/views/parcel/parcel.vue                     |    2 
 src/page/index/logo.vue                         |   28 
 src/views/parcel/parcelKind.vue                 |    4 
 src/views/realTimePolice/real.vue               |  277 +++++++-------
 src/views/animalHeat/animalHeat.vue             |    4 
 public/map/widgets/securityMap/SecurityMap.js   |  551 +++++++++++++++++++++---------
 src/views/zc/zc.vue                             |    4 
 src/views/system/cs.vue                         |    6 
 13 files changed, 682 insertions(+), 368 deletions(-)

diff --git a/public/map/widgets/securityMap/SecurityMap.js b/public/map/widgets/securityMap/SecurityMap.js
index 17d7985..00dd42c 100644
--- a/public/map/widgets/securityMap/SecurityMap.js
+++ b/public/map/widgets/securityMap/SecurityMap.js
@@ -3,18 +3,18 @@
  * @Version: 1.0
  * @Author: yangsx
  * @Date: 2019-12-09 19:01:40
- * @LastEditors: song
- * @LastEditTime: 2021-02-25 13:59:29
+ * @LastEditors: yangsx
+ * @LastEditTime: 2019-12-14 14:44:57
  */
 define([
     "dojo",
     "dojo/_base/declare",
     "dojo/_base/lang",
     "base/BaseWidget",
-    "dojo/text!widgets/SecurityMap/template.html",
+    "dojo/text!widgets/securityMap/template.html",
     "base/AppEvent",
     "base/ConfigData",
-    "widgets/realTimePolice/config",
+    "widgets/securityMap/config",
     "dojo/dom",
     "dojo/dom-construct",
     "dojo/dom-attr",
@@ -31,8 +31,12 @@
     "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",
@@ -55,9 +59,8 @@
     "esri/layers/ImageParameters",
     "esri/geometry/geometryEngine",
     "esri/dijit/PopupTemplate",
-    "widgets/SecurityMap/FlareClusterLayer_v3",
-    "dojo/domReady!",
-    "widgets/realTimePolice/LayUIDataTable"
+    "widgets/securityMap/FlareClusterLayer_v3",
+    "dojo/domReady!"
 ], function(
     dojo,
     declare,
@@ -83,8 +86,12 @@
     Query,
     QueryTask,
     Color,
+    Edit,
     Graphic,
     Point,
+    Polyline,
+    Polygon,
+    Extent,
     FeatureSet,
     HeatmapRenderer,
     SimpleLineSymbol,
@@ -112,11 +119,9 @@
     var Widget = declare([BaseWidget], {
         widgetName: "SecurityMap",
         label: "处警队伍管理",
-
         templateString: template,
         _map: null,
         objThis: null,
-        // 现场图层
         _siteLayer: new GraphicsLayer(),
         layuiLayer: null,
         layuiLadate: null,
@@ -126,25 +131,18 @@
         addEntitys: null,
         entitysData: [],
 
-        // 是否派发保安的 文字
-        treatmentIndex: null,
-        securityFlag: false,
-        editParentInd: null,
-
-        // 存储新增点,线,面,数据的地方
-        polygonData: [],
-        polygonFlag: false,
-        editToolbar: null,
-        addPolygonEntitys: null,
-
-        // 所有的面图层
-        entityPolygonAll: null,
 
         // 用来存储区域名称
         globalRegionName: null,
 
         // 用来区域得最大最小经纬度
         currentDrawing: [],
+
+        // 存储新增点,线,面,数据的地方
+        polygonData: [],
+        polygonFlag: false,
+        editToolbar: null,
+        addPolygonEntitys: null,
 
         // 巡逻区域或者巡逻路线的描述
         routeOrRegionDescribe: null,
@@ -158,200 +156,429 @@
         y: 0,
         offset: null,
         moveThis: null,
+
         // 电子围栏需要新增的Id
         newElectronicFenceId: null,
 
         // 新增路线时,派发人员,人员名称,以及人员id
-        peopleRealName: null,
-        pepleRealId: null,
+        anumber: null,
+        realname: null,
 
+        //存放聚合实体
+        clusterLayer: null,
         constructor: function(options, srcRefNode) {
-            debugger;
-            console.log("option=" + options);
             this._map = options.map;
             objThis = this;
 
-
-            this.addEntitys = new GraphicsLayer({ id: 'addEntitys' });
+            this.addEntitys = new GraphicsLayer({
+                id: 'addEntitys'
+            });
 
             // 添加点面线的图层
-            this.addPolygonEntitys = new GraphicsLayer({ id: 'addPolygonEntitys' });
+            this.addPolygonEntitys = new GraphicsLayer({
+                id: 'addPolygonEntitys'
+            });
+
             // 添加所有图层的地方
-            this.entityPolygonAll = new GraphicsLayer({ id: 'entityPolygonAll' });
+            this.entityPolygonAll = new GraphicsLayer({
+                id: 'entityPolygonAll'
+            });
 
 
             this._map.addLayer(this.addEntitys);
-
-
             this._map.addLayer(this.addPolygonEntitys);
             this._map.addLayer(this.entityPolygonAll);
 
-
         },
-
 
         startup: function() {
             objThis._map.addLayer(objThis._siteLayer);
+        },
+
+        //根据key 取value值
+        getQueryStringByKey: function(key) {
+            return (document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)")) || ['', null])[1];
+        },
+
+        //带有中文的解码
+        getQueryString: function(name) {
+            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+            var r = window.location.search.substr(1).match(reg);
+            if (r != null) return decodeURI(r[2]);
+            return null;
+        },
+
+        //页面打开后,获取参数数据
+        open: function() {
             var that = this;
-            // 保安出警管理表格中点击事件
-            $('.police-dispatching .police-container .police-container-policeforce .table .tbody tbody').off('click', 'input').on('click', 'input', function(event) {
-                event.stopPropagation();
-                var lgtd = Number($(this).parent().parent().attr('lgtd'));
-                var lttd = Number($(this).parent().parent().attr('lttd'));
-                var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
-                that.newElectronicFenceId = null;
-                that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
-                var graphic = that.entityPolygonAll.graphics;
-                for (var i = 0; i < graphic.length; i++) {
-                    if (graphic[i].objId.id == $(this).attr('resultid')) {
-                        if (graphic[i].geometry.rings[0].length > 0) {
-                            that.polygonFlag = false;
-                            that.electronicFence();
-                            that.activateToolbar(graphic[i]);
+            var lgtd = that.getQueryStringByKey('jd');
+            var lttd = that.getQueryStringByKey('wd');
+            if (lgtd == null || lgtd == "") {
+                return;
+            }
+            anumber = that.getQueryStringByKey('code');
+            realname = that.getQueryString('name');
+            //所在位置标记
+            that.addPoint(that.addEntitys, lgtd, lttd, './images/security.png');
+            //获取当前处警员的电子围栏信息
+            $.ajax({
+                //https://web.byisf.com/api/blade-jfpts/enclosure/enclosure/selectEnclosureDetail
+                url: 'http://localhost:89/enclosure/enclosure/selectEnclosureDetail',
+                type: 'GET',
+                dataType: 'JSON',
+                data: {
+                    anumber: anumber
+                },
+                success: function(result) {
+                    //如果已有电子围栏信息,展示出围栏区域,并且可以编辑
+                    if (result.code == 200) {
+                        if (JSON.stringify(result.data) != "{}") {
+                            var entityArr = [];
+                            var coordinate = result.data.coordinate.match(/\(([^)]*)\)/).toString();
+                            var a = coordinate.indexOf("(");
+                            var b = coordinate.indexOf(")");
+                            coordinate = coordinate.substring(a + 1, b) + "";
+                            if (coordinate && coordinate != '') {
+                                coordinate = coordinate.split(',');
+                                for (var i = 0; i < coordinate.length; i++) {
+                                    entityArr.push([Number(coordinate[i].split(' ')[0]), Number(coordinate[i].split(' ')[1])]);
+                                }
+                            }
+                            that.addPolygon(that.addPolygonEntitys, entityArr);
                         } else {
+                            //如果无电子围栏信息,则提示请编辑电子围栏信息
+                            //编辑好电子围栏信息后,将当前处警员的电子围栏信息保存到数据库
+                            that.newElectronicFenceId = null;
+
                             layui.use('layer', function() {
                                 layui.layer.msg('请开始划分电子围栏');
                             })
                             that.polygonFlag = true;
-                            that.newElectronicFenceId = graphic[i].objId;
+                            that.newElectronicFenceId = anumber;
                         }
+
                     }
                 }
             })
 
-            $('.police-dispatching .police-container .police-container-policeforce .table .tbody tbody').off('click', 'tr').on('click', 'tr', function(event) {
-                event.stopPropagation();
-                var lgtd = Number($(this).attr('lgtd'));
-                var lttd = Number($(this).attr('lttd'));
-                var position = new esri.geometry.Point(lgtd, lttd, new esri.SpatialReference({ wkid: 4326 })); //根据输入坐标信息找地图上的点
+            //调用点击事件
+            that.clickHand();
 
-                that._map.centerAndZoom(position, 18); //缩放,10是缩放级别,可以自定义,数值越大缩放越大
-
-                var snumber = $(this).attr('term-snumber');
-
-                var url = './popup/html/personnel-information-management.html?id=' + code;
-                layui.use('layer', function() {
-                    that.layuiLayer = layui.layer;
-                    that.layuiLayer.config({
-                        extend: 'myskin/personnel-information-management.css'
-                    });
-                    that.layuiLayer.close(that.layuiLayer.index);
-                    that.layuiLayer.open({
-                        title: '保安人员信息',
-                        type: 2,
-                        shadeClose: true,
-                        shade: false,
-                        maxmin: false, //开启最大化最小化按钮
-                        area: ['400px', '220px'],
-                        offset: 'auto',
-                        skin: 'personnel-information-management',
-                        content: url,
-                        closeBtn: 1,
-                    });
-                })
-            })
-        },
-
-
-        open: function() {
-            var that = this;
-            debugger;
-            $.ajax({
-                url: '/api/blade-jfpts/alarm/alarm/listAll?',
-                type: 'get',
-                dataType: 'JSON',
-                success: function(data) {
-                    var datas = data.data;
-                    for (var i = 0; i < datas.length; i++) {
-                        datas[i].x = Number(datas[i].jd);
-                        datas[i].y = Number(datas[i].wd);
+            //鼠标右击事件
+            document.getElementById('mainMapWidget').onmousedown = function(event) {
+                if (event.button == 2) {
+                    if (that.polygonData.length < 2) {
+                        layui.use('layer', function() {
+                            layui.layer.msg('不能形成区域,请继续划分!!!')
+                        })
+                        return;
                     }
-                    debugger;
-                    that.flareClusterLayer(datas);
+                    if (that.polygonFlag == true) {
+                        // 勾画最后一个点
+                        var normalizedVal = webMercatorUtils.xyToLngLat(event.mapPoint.x, event.mapPoint.y);
+                        that.polygonData.push([normalizedVal[0], normalizedVal[1]]);
+                        // 声明空字符串,存储数据
+                        var dataStr = '';
+                        var data = null;
+                        if (that.patrolIndex == 1) {
+                            that.addPolyline(that.addPolygonEntitys, that.polygonData);
+                            // 获取数据
+                            data = that.addPolygonEntitys.graphics[0].geometry.paths[0];
+                        } else {
+                            that.addPolygon(that.addPolygonEntitys, that.polygonData);
+                            // 获取数据
+                            data = that.addPolygonEntitys.graphics[0].geometry.rings[0];
+                        }
+
+                        // 组装数据
+                        for (var i = 0; i < data.length; i++) {
+                            dataStr += (data[i][0] + ' ' + data[i][1] + ',');
+                        }
+                        dataStr = dataStr.substring(0, dataStr.length - 1);
+
+                        //将数据存入数据库
+                        $.ajax({
+                            //url: 'https://web.byisf.com/api/blade-jfpts/enclosure/enclosure/updatee',
+                            url: 'http://localhost:89/enclosure/enclosure/insertes',
+                            type: 'POST',
+                            dataType: 'JSON',
+                            data: {
+                                aname: realname,
+                                anumber: anumber,
+                                routeInfo: dataStr
+                            },
+                            success: function(result) {
+                                if (result.code == 200) {}
+                            }
+                        })
+                    }
+                    that.polygonFlag = false;
+
                 }
-            });
-
-        },
-
-
-        close: function() {
-
+            }
         },
 
         // 鼠标点击事件
-        clickHand: function() {},
+        clickHand: function() {
 
-        //聚合图层事件
-        flareClusterLayer: function(datas) {
-            debugger;
+            var self = this;
+            self._map.onClick = mapClick;
 
-            var that = this;
+            function mapClick(evt) {
+                debugger;
+                var normalizedVal = webMercatorUtils.xyToLngLat(evt.mapPoint.x, evt.mapPoint.y);
+                var y = self._map.toMap({
+                    spatialReference: '4326',
+                    type: "point",
+                    x: evt.screenPoint.x,
+                    y: evt.screenPoint.y,
+                });
 
-            var preClustered = false;
-            var displaySingleFlaresAtCount = 10;
-            var areaDisplayMode = "";
-            // var allData = JSON.parse(DATA);
-            // DataManager.setData(allData);
 
-            //init the layer, more options are available and explained in the cluster layer constructor
-            that.clusterLayer = new FlareClusterLayer({
-                id: "flare-cluster-layer",
-                spatialReference: new esri.SpatialReference({ "wkid": 4326 }),
-                subTypeFlareProperty: "facilityType",
-                singleFlareTooltipProperty: "name",
-                displaySubTypeFlares: true,
-                displaySingleFlaresAtCount: displaySingleFlaresAtCount,
-                flareShowMode: "mouse",
-                preClustered: preClustered,
-                clusterRatio: 75,
-                clusterAreaDisplay: areaDisplayMode,
-                clusteringBegin: function() {
-                    console.log("clustering begin");
-                },
-                clusteringComplete: function() {
-                    console.log("clustering complete");
+                // 编辑中的
+                if (self.polygonFlag == true) {
+                    if (self.polygonData.length == 0) {
+                        self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
+                        self.addPoint(self.addPolygonEntitys, normalizedVal[0], normalizedVal[1]);
+                    } else if (self.polygonData.length == 1) {
+                        self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
+                        self.addPolyline(self.addPolygonEntitys, self.polygonData);
+                        return;
+                    } else if (self.polygonData.length > 1) {
+                        self.polygonData.push([normalizedVal[0], normalizedVal[1]]);
+                        self.addPolygon(self.addPolygonEntitys, self.polygonData);
+                    }
+
+                } else { // 不在编辑中
+                    if (evt.graphic) { // 点击在图形上
+                        // 保存当前点击得图形
+                        // self.currentDrawing = evt.graphic;
+
+                        self.modifyPolygon();
+
+                        self.activateToolbar(evt.graphic);
+                    } else { // 点击不在图形上
+
+                        self.modifyPolygon()
+                    }
+                }
+
+            }
+
+            // 提示信息
+            $(document).off('mousemove').mousemove(function(e) {
+                var y = e.clientY + 10;
+                var x = e.clientX + 20;
+
+                if (e.clientX < 40) {
+                    var x = 40;
+                }
+
+                if (e.clientY < 42) {
+                    y = 42;
+                }
+
+                if (e.clientY > ($(window).height() - 82)) {
+                    y = ($(window).height() - 66);
+                }
+
+                if (e.clientX > ($(window).width() - 184)) {
+                    x = ($(window).width() - 184);
+                }
+
+                if (self.tabIndex == 1 || self.tabIndex == 2) {
+
+                    if (self.polygonFlag == true) {
+                        $('.police-dispatching .tips').stop().show();
+
+                        if (self.polygonData.length == 0) {
+                            $('.police-dispatching .tips').text('单击左键开始绘制。');
+                        } else {
+                            if (e.clientY > ($(window).height() - 98)) {
+                                y = ($(window).height() - 88);
+                            }
+                            $('.police-dispatching .tips').text('单击左键新增加点。单击右键完成绘制。');
+                        }
+
+                        $('.police-dispatching .tips').css({
+                            'top': y,
+                            'left': x,
+                        })
+                    } else {
+                        $('.police-dispatching .tips').stop().hide();
+                    }
+
+                } else {
+                    $('.police-dispatching .tips').stop().hide();
+                }
+            })
+        },
+
+        //新增线
+        addPolyline: function(entitys, path) {
+            entitys.clear();
+            var polylineSymbol = new SimpleLineSymbol();
+            polylineSymbol.color = [255, 0, 0, 1];
+            polylineSymbol.width = 4;
+            var polyline = new Polyline({
+                "paths": [path],
+                "spatialReference": {
+                    "wkid": 4326
                 }
             });
 
-            //set up a class breaks renderer to render different symbols based on the cluster count. Use the required clusterCount property to break on.
-            var defaultSym = new PictureMarkerSymbol("./images/ceshi.png", 32, 32).setOffset(0, 15);
-            var renderer = new ClassBreaksRenderer(defaultSym, "clusterCount");
-            var xlSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 32, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([200, 52, 59, 0.8]), 1), new dojo.Color([250, 65, 74, 0.8]));
-            var lgSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 28, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([41, 163, 41, 0.8]), 1), new dojo.Color([51, 204, 51, 0.8]));
-            var mdSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 24, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([82, 163, 204, 0.8]), 1), new dojo.Color([102, 204, 255, 0.8]));
-            var smSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 22, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([230, 184, 92, 0.8]), 1), new dojo.Color([255, 204, 102, 0.8]));
-            renderer.addBreak(0, 19, smSymbol);
-            renderer.addBreak(20, 150, mdSymbol);
-            renderer.addBreak(151, 1000, lgSymbol);
-            renderer.addBreak(1001, Infinity, xlSymbol);
+            entitys.add(new Graphic(polyline, polylineSymbol));
+        },
 
-            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 }
-                ]
-            });
+        //编辑电子围栏(多边形)
+        modifyPolygon: function() {
+            var self = this;
+            if (self.editToolbar != null) {
+                //获取当前的多边形数据
+                var polygon = self.editToolbar.getCurrentState();
 
-            //clusterLayer.infoTemplate = template;
-            that._map.infoWindow.titleInBody = false;
+                //释放编辑后
+                self.editToolbar.deactivate();
 
-            that._map.addLayer(that.clusterLayer);
+                self.editToolbar = null;
 
-            //var data = DataManager.getData();
-            that.clusterLayer.addData(datas);
+                // 声明空字符串,存储数据
+                var dataStr = '';
+
+                // 获取数据
+                var data = polygon.graphic.geometry.rings[0];
+
+                // 组装数据
+                for (var i = 0; i < data.length; i++) {
+                    dataStr += (data[i][0] + ' ' + data[i][1] + ',');
+                }
+                dataStr = dataStr.substring(0, dataStr.length - 1);
+
+                //更新电子围栏数据
+                $.ajax({
+                    //url: 'https://web.byisf.com/api/blade-jfpts/enclosure/enclosure/updatee',
+                    url: 'http://localhost:89/enclosure/enclosure/updatee',
+                    type: 'POST',
+                    dataType: 'JSON',
+                    data: {
+                        anumber: anumber,
+                        routeInfo: dataStr
+                    },
+                    success: function(result) {
+                        if (result.code == 200) {}
+                    }
+                })
+
+            }
+        },
+
+
+        activateToolbar: function(graphic) {
+            var tool = 0;
+
+            this.editToolbar = new Edit(this._map);
+
+            // if (registry.byId("tool_move").checked) {
+            tool = tool | Edit.MOVE;
+            // }
+            // if (registry.byId("tool_vertices").checked) {
+            tool = tool | Edit.EDIT_VERTICES;
+            // }
+            // if (registry.byId("tool_scale").checked) {
+            tool = tool | Edit.SCALE;
+            // }
+            // if (registry.byId("tool_rotate").checked) {
+            tool = tool | Edit.ROTATE;
+            // }
+            // enable text editing if a graphic uses a text symbol
+            // if ( graphic.symbol.declaredClass === "esri.symbol.TextSymbol" ) {
+            tool = tool | Edit.EDIT_TEXT;
+            // }
+
+            var options = {
+                allowAddVertices: true,
+                allowDeleteVertices: true,
+                uniformScaling: true
+            };
+            this.editToolbar.activate(tool, graphic, options);
 
         },
-        clearLayer: function() {
-            var that = this;
-            that._map.removeLayer(that.clusterLayer);
-            that.clusterLayer = null;
-        }
 
+        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, 22, 22);
+            var pt = new Point(lgtd, lttd, new SpatialReference({
+                wkid: 4326
+            }));
+            var graphic = new esri.Graphic(pt, symbol);
+            entitys.add(graphic);
+        },
+
+        //绘制多边形
+        addPolygon: function(entitys, rings) {
+            entitys.clear();
+            var polygonSymbol = new SimpleFillSymbol();
+            polygonSymbol.color = [24, 255, 243, 0.411];
+            var polygon = new Polygon({
+                "rings": [rings],
+                "spatialReference": {
+                    "wkid": 4326
+                }
+            });
+            entitys.add(new Graphic(polygon, polygonSymbol));
+        }
 
     });
     return Widget;
diff --git a/src/api/client/client.js b/src/api/client/client.js
index b8c1451..1f77856 100644
--- a/src/api/client/client.js
+++ b/src/api/client/client.js
@@ -87,3 +87,13 @@
   })
 }
 
+export const getBaTree = (id) => {
+  return request({
+    url: '/api/blade-user/pages',
+    method: 'get',
+    params: {
+      id,
+    }
+  })
+}
+
diff --git a/src/page/index/logo.vue b/src/page/index/logo.vue
index 987f282..e7b5548 100644
--- a/src/page/index/logo.vue
+++ b/src/page/index/logo.vue
@@ -401,13 +401,13 @@
                     `https://web.byisf.com:18000/GetPlayUrl?deviceCode=${that.form.serialNumber}&chl=${that.form.channelNumber}`
                   )
                   .then((result) => {
-                    // axios({
-                    //   method: "post",
-                    //   url: `/api/blade-jfpts/rvideo/rVoids`,
-                    //   params: {
-                    //     url: result.data.data.flv,
-                    //   },
-                    // }).then((resdata) => {});
+                    axios({
+                      method: "post",
+                      url: `/api/blade-jfpts/rvideo/rVoids`,
+                      params: {
+                        url: result.data.data.flv,
+                      },
+                    }).then((resdata) => {});
                   });
               });
             if (
@@ -572,13 +572,13 @@
         .then(function () {
           that.dialogTableVisible = false;
 
-          // axios({
-          //   method: "post",
-          //   url: `/api/blade-jfpts/rvideo/stop`,
-          //   params: {
-          //     jid: row.id,
-          //   },
-          // }).then((resdata) => {});
+          axios({
+            method: "post",
+            url: `/api/blade-jfpts/rvideo/stop`,
+            params: {
+              jid: row.id,
+            },
+          }).then((resdata) => {});
 
           that.$router.push({
             path: "/policeTracking/track",
diff --git a/src/views/animalHeat/animalHeat.vue b/src/views/animalHeat/animalHeat.vue
index 7699961..f5642cd 100644
--- a/src/views/animalHeat/animalHeat.vue
+++ b/src/views/animalHeat/animalHeat.vue
@@ -245,7 +245,7 @@
       },
       //数据导出
       handleExport() {
-        this.$confirm("是否导出用户数据?", "提示", {
+        this.$confirm("是否导出体温数据?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
@@ -255,7 +255,7 @@
       },
       //数据报表导出
       handleExportStatis() {
-        this.$confirm("是否导出用户数据?", "提示", {
+        this.$confirm("是否导出体温数据?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
diff --git a/src/views/clientManagement/clientManagement.vue b/src/views/clientManagement/clientManagement.vue
index 8b27e59..3e8b720 100644
--- a/src/views/clientManagement/clientManagement.vue
+++ b/src/views/clientManagement/clientManagement.vue
@@ -193,10 +193,11 @@
 </template>
 
 <script>
-  import {getList, remove, update, add, getclient, getDeptLazyTree, getAll, updates} from "@/api/client/client";
+  import {getList, remove, update, add, getclient, getDeptLazyTree, getAll, updates,getBaTree} from "@/api/client/client";
   import {mapGetters} from "vuex";
   import axios from "axios";
   import Legend from '../../components/liu-legend/Legend'
+  import AvueMap from "avue-plugin-map";
 
   export default {
     components:{
@@ -315,7 +316,6 @@
               label: "设备编号",
               prop: "deviceNumber",
               width: 130,
-              editDisabled: true,
               rules: [
                 {
                   required: false,
@@ -336,7 +336,7 @@
               rules: [
                 {
                   required: false,
-                  message: "请选择上级菜单",
+                  message: "请选择使用方",
                   trigger: "click"
                 }
               ]
@@ -403,25 +403,7 @@
               addDisplay: false,
               editDisplay: false
             },
-            {
-              label: "设备类型",
-              prop: "deviceType",
-              width: 100,
-              search: true,
-              searchSpan: 3,
-              searchLabelWidth: 80,
-              searchPlaceholder: "请选择",
-              type: "select",
-              props: {
-                label: "dictValue",
-                value: "dictValue"
-              },
-              dicUrl: "/api/blade-system/dict-biz/child-list?parentId=1357568691367661569",
-              hide: true,
-              addDisplay: true,
-              editDisplay: true,
-              viewDisplay: true,
-            },
+
             {
               label: "省份",
               prop: "province",
@@ -497,8 +479,32 @@
               viewDisplay: true,
             },
             {
+              label: "地址",
+              prop: "map",
+              hide: true,
+              span: 24,
+              component: "AvueMap",
+            },
+            {
+              label: "经度",
+              hide: true,
+              addDisplay: false,
+              prop: "jd",
+            },
+            {
+              label: "纬度",
+              hide: true,
+              addDisplay: false,
+              prop: "wd",
+            },
+            {
               label: "负责人",
-              prop: "oneContacts",
+              prop: "oneId",
+              type: "tree",
+              dicUrl: "/api/blade-system/dept/Batrees",
+              props: {
+                label: "title"
+              },
               width: 72,
               hide: true,
               addDisplay: true,
@@ -559,6 +565,31 @@
         },
         data: []
       };
+    },
+    watch: {
+      "form.map": {
+        // form是表单或者表格绑定的数据集,v-model='form'
+        handler(val) {
+          debugger
+          if (val) {
+            this.form.wd = val.latitude;
+            this.form.jd = val.longitude;
+            this.form.street = val.formattedAddress;
+          }
+        },
+        immediate: true,
+      },
+      "form.oneId":{
+        handler(val) {
+          var that = this;
+          getBaTree(val).then(res => {
+            if (res) {
+              that.form.onePhone = res.data.data.records[0].phone;
+              that.form.oneContacts = res.data.data.records[0].name;
+            }
+          });
+        },
+      }
     },
     computed: {
       ...mapGetters(["permission"]),
@@ -834,9 +865,9 @@
         //console.log(document.body.clientHeight,event.clientY,cha)
         // 防止菜单太靠底,根据可视高度调整菜单出现位置
         if (cha < 150) {
-          menu.style.top = event.clientY -120 - (70) + 'px'
+          menu.style.top = event.clientY -120 - (100) + 'px'
         } else {
-          menu.style.top = event.clientY -10 - (70) + 'px'
+          menu.style.top = event.clientY -10 - (100) + 'px'
         }
         menu.style.left = event.clientX + 10 - (60) + 'px'
         document.addEventListener('click', this.foo); // 给整个document新增监听鼠标事件,点击任何位置执行foo方法
diff --git a/src/views/healthcode/healthcode.vue b/src/views/healthcode/healthcode.vue
index e003b15..31f69a7 100644
--- a/src/views/healthcode/healthcode.vue
+++ b/src/views/healthcode/healthcode.vue
@@ -297,7 +297,7 @@
       },
       //数据导出
       handleExport() {
-        this.$confirm("是否导出用户数据?", "提示", {
+        this.$confirm("是否导出健康码数据?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
@@ -307,7 +307,7 @@
       },
       //数据报表导出
       handleExportStatis() {
-        this.$confirm("是否导出用户数据?", "提示", {
+        this.$confirm("是否导出健康码数据?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
diff --git a/src/views/parcel/parcel.vue b/src/views/parcel/parcel.vue
index bf3ac6f..14749b5 100644
--- a/src/views/parcel/parcel.vue
+++ b/src/views/parcel/parcel.vue
@@ -306,7 +306,7 @@
       },
       //数据报表导出
       handleExportStatis() {
-        this.$confirm("是否导出用户数据?", "提示", {
+        this.$confirm("是否导出包裹数据?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
diff --git a/src/views/parcel/parcelKind.vue b/src/views/parcel/parcelKind.vue
index 0d2559d..b88ef1e 100644
--- a/src/views/parcel/parcelKind.vue
+++ b/src/views/parcel/parcelKind.vue
@@ -270,7 +270,7 @@
       },
       //数据导出
       handleExport() {
-        this.$confirm("是否导出用户数据?", "提示", {
+        this.$confirm("是否导出违禁品数据?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
@@ -282,7 +282,7 @@
       },
       //数据报表导出
       handleExportStatis() {
-        this.$confirm("是否导出用户数据?", "提示", {
+        this.$confirm("是否导出违禁品数据?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
diff --git a/src/views/realTimePolice/real.vue b/src/views/realTimePolice/real.vue
index e3d22fa..122b2e8 100644
--- a/src/views/realTimePolice/real.vue
+++ b/src/views/realTimePolice/real.vue
@@ -1,9 +1,4 @@
-/*
- * @Author: Morpheus
- * @Date: 2021-03-17 15:21:33
- * @Last Modified by: Morpheus
- * @Last Modified time: 2021-04-10 17:33:38
- */
+
 <template>
   <basic-container>
     <avue-crud
@@ -40,7 +35,7 @@
           >删 除
         </el-button>
       </template>
-
+ 
       <template slot="menuLeft">
         <el-button
           v-bind:class="activeClass == 0 ? 'btn-color' : ''"
@@ -66,11 +61,8 @@
           @click="getQBdata(3)"
           >全部
         </el-button>
-        <span>
-          <Legend :datas="datalistLIU"></Legend>
-        </span>
       </template>
-
+ 
       <template slot="menuLeft">
         <el-button type="warning"
                     size="mini"
@@ -79,15 +71,14 @@
                     @click="handleExport">导出
         </el-button>
         <el-button type="warning"
-        style="display:none"
                     size="small"
                     plain
-                    icon="el-icon-download"
+                    icon="el-icon-pie-chart"
                     @click="handleExportStatis">导出报表
         </el-button>
       </template>
-
-
+ 
+ 
       <template slot-scope="{ row }" slot="jtype">
         <el-tag
           >{{
@@ -102,7 +93,7 @@
           }}
         </el-tag>
       </template>
-
+ 
       <template slot-scope="{ type, size, row }" slot="menu">
         <el-button
           icon="el-icon-s-order"
@@ -143,7 +134,7 @@
         </el-button>
       </template>
     </avue-crud>
-
+ 
     <el-dialog
       class="real-dialog"
       title="警情核实"
@@ -171,7 +162,7 @@
           controls
         ></video>
       </el-dialog>
-
+ 
       <el-dialog
         class="ss-video-dialog"
         :modal="false"
@@ -193,7 +184,7 @@
           controls
         ></video>
       </el-dialog>
-
+ 
       <el-form
         :model="form"
         label-position="right"
@@ -329,7 +320,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-
+ 
         <el-row>
           <el-col span="12">
             <el-form-item label="报警时间">
@@ -363,7 +354,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-
+ 
         <el-row>
           <el-col span="12">
             <el-form-item label="备注">
@@ -371,7 +362,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-
+ 
         <el-row :align="center">
           <el-col class="opt-btn">
             <el-form-item>
@@ -386,14 +377,14 @@
                 @click.stop="updateJtyep(form, 1, '办结')"
                 >办结
               </el-button>
-
+ 
               <img
                 src="/img/police-num.png"
                 style="margin-top: -20px; height: 80px; vertical-align: middle"
                 alt=""
                 @click.stop="updateJtyep(form, 1, '推送110')"
               />
-
+ 
               <el-button
                 type="primary"
                 @click.stop="updateJtyep(form, 1, '派送保安')"
@@ -404,7 +395,7 @@
         </el-row>
       </el-form>
     </el-dialog>
-
+ 
     <el-drawer title="电子地图" append-to-body="true" :visible.sync="showMap">
       <iframe
         id="mapDiv"
@@ -417,41 +408,20 @@
     </el-drawer>
   </basic-container>
 </template>
-
+ 
 <script>
 import { getList, remove, update, add, getclient } from "@/api/real/real";
 import { mapGetters } from "vuex";
-
+ 
 import Hls from "hls.js";
-
+ 
 import axios from "axios";
-
+ 
 import Recorder from "js-audio-recorder";
-
-import Legend from '../../components/liu-legend/Legend'
-
+ 
 export default {
-  components:{
-      Legend,
-    },
   data() {
     return {
-      //legend-liu数据
-      datalistLIU:[
-                {
-                    color: 'rgb(236, 83, 37)',
-                    text: '未处理'
-                },
-                {
-                    color: 'rgb(17, 198, 253)',
-                    text: '处理中'
-                },
-                {
-                    color: 'rgb(49, 49, 49)',
-                    text: '已处理'
-                }
-            ],
-
       showMap: false,
       hls: "",
       videoSource: "",
@@ -860,24 +830,12 @@
     refreshChange() {
       this.onLoad(this.page, this.query);
     },
-    getStartTime(){
-           if (this.$route.query.startTime != undefined && this.$route.query.startTime != null && this.$route.query.startTime != "" ) {
-             return this.$route.query.startTime
-           }
-           return '';
-      },
-      getEndTime(){
-           if (this.$route.query.endTime != undefined && this.$route.query.endTime != null && this.$route.query.endTime != "" ) {
-             return this.$route.query.endTime
-           }
-           return '';
-      },
     onLoad(page, params = {}) {
       const { releaseTimeRange } = this.query;
       let values = {
         ...params,
       };
-
+ 
       if (
         this.$route.query.waringType &&
         this.$route.query != undefined &&
@@ -919,7 +877,7 @@
             endTime: this.dateTime.day.endTime,
           };
         }
-
+ 
         if (
           this.$route.query.startTime != undefined &&
           this.$route.query.startTime != null &&
@@ -932,7 +890,7 @@
           };
         }
       }
-
+ 
       if (releaseTimeRange) {
         values = {
           ...params,
@@ -947,7 +905,7 @@
           ...this.query,
         };
       }
-
+ 
       if (this.$route.query.timeDesc) {
         values = {
           ...params,
@@ -955,7 +913,7 @@
           ...this.query,
         };
       }
-
+ 
       this.loading = true;
       getList(page.currentPage, page.pageSize, values).then((res) => {
         const data = res.data.data;
@@ -963,13 +921,13 @@
           item.waringType == "紧急求救" ? (item.waringType = "一键求助") : "";
         });
         this.page.total = data.total;
-
+ 
         data.records.sort((a, b) => {
           return a.jtype - b.jtype;
         });
-
+ 
         this.data = data.records;
-
+ 
         this.loading = false;
         this.selectionClear();
       });
@@ -978,7 +936,7 @@
       // 当前时间
       var timestamp = Date.parse(new Date());
       var serverDate = new Date(timestamp);
-
+ 
       // 本周周一的时间
       var mondayTime =
         timestamp - (serverDate.getDay() - 1) * 24 * 60 * 60 * 1000;
@@ -1024,7 +982,7 @@
         currentData.getSeconds() < 10
           ? "0" + currentData.getSeconds()
           : currentData.getSeconds();
-
+ 
       return {
         day: {
           beginTime: currentY + "-" + currentM + "-" + currentD + " 00:00:00",
@@ -1165,6 +1123,18 @@
         };
       });
     },
+    getStartTime(){
+           if (this.$route.query.startTime != undefined && this.$route.query.startTime != null && this.$route.query.startTime != "" ) {
+             return this.$route.query.startTime
+           }
+           return '';
+      },
+      getEndTime(){
+           if (this.$route.query.endTime != undefined && this.$route.query.endTime != null && this.$route.query.endTime != "" ) {
+             return this.$route.query.endTime
+           }
+           return '';
+      },
     handleManage(row) {
       this.form = row;
       this.peopleList = [
@@ -1178,7 +1148,7 @@
     },
     updateJtyep(row, jtype, t) {
       var that = this;
-
+ 
       axios
         .post(
           "/api/blade-jfpts/alarm/alarm/updateJtype",
@@ -1198,15 +1168,15 @@
         )
         .then(function () {
           that.dialogTableVisible = false;
-
-          // axios({
-          //   method: "post",
-          //   url: `/api/blade-jfpts/rvideo/stop`,
-          //   params: {
-          //     jid: row.id,
-          //   },
-          // }).then((resdata) => {});
-
+ 
+          axios({
+            method: "post",
+            url: `/api/blade-jfpts/rvideo/stop`,
+            params: {
+              jid: row.id,
+            },
+          }).then((resdata) => {});
+ 
           that.onLoad(that.page, that.query);
           that.$router.push({
             path: "/policeTracking/track",
@@ -1216,54 +1186,54 @@
     },
     beginTimeOrEndTime(time) {
       var beginTime = new Date(time);
-
+ 
       var endTime = new Date(new Date(time).valueOf() - 1000 * 60 * 60 * 3);
-
+ 
       var beginY = beginTime.getFullYear();
-
+ 
       var beginM =
         beginTime.getMonth() + 1 < 10
           ? "0" + (beginTime.getMonth() + 1)
           : beginTime.getMonth() + 1;
-
+ 
       var beginD =
         beginTime.getDate() < 10
           ? "0" + beginTime.getDate()
           : beginTime.getDate();
-
+ 
       var beginH =
         beginTime.getHours() < 10
           ? "0" + beginTime.getHours()
           : beginTime.getHours();
-
+ 
       var beginm =
         beginTime.getMinutes() < 10
           ? "0" + beginTime.getMinutes()
           : beginTime.getMinutes();
-
+ 
       var begins =
         beginTime.getSeconds() < 10
           ? "0" + beginTime.getSeconds()
           : beginTime.getSeconds();
-
+ 
       var endY = endTime.getFullYear();
-
+ 
       var endM =
         endTime.getMonth() + 1 < 10
           ? "0" + (endTime.getMonth() + 1)
           : endTime.getMonth() + 1;
-
+ 
       var endD =
         endTime.getDate() < 10 ? "0" + endTime.getDate() : endTime.getDate();
-
+ 
       var endH =
         endTime.getHours() < 10 ? "0" + endTime.getHours() : endTime.getHours();
-
+ 
       var endm =
         endTime.getMinutes() < 10
           ? "0" + endTime.getMinutes()
           : endTime.getMinutes();
-
+ 
       var ends =
         endTime.getSeconds() < 10
           ? "0" + endTime.getSeconds()
@@ -1283,7 +1253,7 @@
           "Content-type": "application/x-www-form-urlencoded",
         },
       });
-
+ 
       //this.form.serialNumber
       newAxios
         .post(
@@ -1302,22 +1272,22 @@
             )
             .then((result) => {
               that.videoSource = result.data.data.m3u8;
-
+ 
               if (Hls.isSupported()) {
                 var dom = document.getElementById("real_video_conversation");
-
+ 
                 that.hls = new Hls();
-
+ 
                 var m3u8Url = decodeURIComponent(that.videoSource);
-
+ 
                 that.hls.loadSource(m3u8Url);
-
+ 
                 that.hls.attachMedia(dom);
-
+ 
                 that.hls.on(Hls.Events.MANIFEST_PARSED, function () {
                   dom.play();
                 });
-
+ 
                 that.hls.on(Hls.Events.ERROR, function (event, data) {
                   console.log(data, 4566824159, "视频播放有问题!!!");
                   if (data.fatal) {
@@ -1348,12 +1318,12 @@
     },
     closeRealVideoBox() {
       var dom = document.getElementById("real_video_conversation");
-
+ 
       if (dom.getAttribute("src") != "") {
         dom.pause();
-
+ 
         dom.setAttribute("src", "");
-
+ 
         this.hls.destroy();
       }
     },
@@ -1367,7 +1337,7 @@
       var dom = document.getElementById("real_old_video");
       dom.pause();
     },
-
+ 
     aKeyToCall() {
       this.isActive = true;
       var that = this;
@@ -1379,7 +1349,7 @@
           // compiling: false,(0.x版本中生效,1.x增加中)  // 是否边录边转换,默认是false
         });
       }
-
+ 
       // 一键呼叫相关函数
       that.recorder.start().then(
         () => {
@@ -1391,7 +1361,7 @@
         }
       );
     },
-
+ 
     // 序列号后期待修改
     aKeyStopCall() {
       this.isActive = false;
@@ -1402,8 +1372,14 @@
           "Content-Type": "application/json;",
         },
       });
+ 
+      var wavAxios = axios.create({
+        baseURL: "https://web.byisf.com",
+        withCredentials: false,
+      });
+ 
       var that = this;
-
+ 
       newCallAxios
         .post(
           `/api_control`,
@@ -1417,12 +1393,37 @@
         .then((result) => {
           var formData = new FormData();
           // that.recorder.downloadWAV("新文件");
-
+ 
           var blob = that.recorder.getPCMBlob(); //获取pcm格式音频数据
           //此处获取到blob对象后需要设置fileName满足当前项目上传需求,其它项目可直接传把blob作为file塞入formData
           var newbolb = new Blob([blob], { type: "audio/pcm" });
           var fileOfBlob = new File([newbolb], new Date().getTime() + ".pcm");
           formData.append("file", fileOfBlob);
+ 
+          var wavBlob = that.recorder.getWAVBlob();
+ 
+          var wavformData = new FormData();
+          var wavform = new File([wavBlob], new Date().getTime() + ".wav");
+          wavformData.append("file", wavform);
+          console.log(
+            wavBlob,
+            wavform,
+            wavformData,
+            wavformData.entries(),
+            132
+          );
+ 
+          axios({
+            method: "post",
+            url: "/api/blade-jfpts/xlfeedback/xlfeedback/put-objecty",
+            data: wavformData,
+            params: {
+              jid: that.form.id,
+            },
+          }).then((resdata) => {
+            console.log(resdata);
+          });
+ 
           newCallAxios
             .post(`/api_control`, blob, {
               params: {
@@ -1440,7 +1441,7 @@
             });
         });
     },
-
+ 
     peopleOrPhone(e) {
       this.peopleList.forEach((item) => {
         if (item.label == e) {
@@ -1458,7 +1459,7 @@
     },
     //数据导出
     handleExport() {
-      this.$confirm("是否导出用户数据?", "提示", {
+      this.$confirm("是否导出实时警情数据?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning"
@@ -1468,7 +1469,7 @@
     },
     //数据报表导出
       handleExportStatis() {
-        this.$confirm("是否导出用户数据?", "提示", {
+        this.$confirm("是否导出实时警情数据?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
@@ -1477,88 +1478,88 @@
           let endTime = this.$route.query.endTime==undefined? '':this.$route.query.endTime;
           let waringType = this.$route.query.waringType==undefined? '':this.$route.query.waringType;
           let timeDesc = this.$route.query.timeDesc==undefined? '':this.$route.query.timeDesc;
-          window.open(`http://localhost:8108/ureport/excel?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}`);
+          window.open(`http://localhost:8108/ureport/preview?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}`);
+          //window.open(`http://localhost:8108/ureport/excel?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}`);
         });
       }
-
   },
 };
 </script>
-
+ 
 <style>
 .el-card__body .waringTypeClass {
   width: 12%;
 }
-
+ 
 /*页面样式*/
 .el-card__body .cityClass1 {
   width: 155px;
   padding-right: 0px !important;
 }
-
+ 
 .el-card__body .cityClass2 {
   width: 100px;
   padding-left: 0px !important;
   padding-right: 0px !important;
 }
-
+ 
 .el-card__body .cityClass3 {
   width: 100px;
   padding-left: 0px !important;
   padding-right: 0px !important;
 }
-
+ 
 /*新增窗体样式*/
 .el-dialog .cityClass1 {
   width: 220px;
   padding-right: 0px !important;
 }
-
+ 
 .el-dialog .cityClass2 {
   width: 110px;
   padding-left: 5px !important;
   padding-right: 5px !important;
 }
-
+ 
 .el-dialog .cityClass3 {
   width: 110px;
   padding-left: 0px !important;
   padding-right: 0px !important;
 }
-
+ 
 .cityClassParams .avue-form__group.avue-form__group--flex {
   display: flex;
   justify-content: space-between;
 }
-
+ 
 .cityClassParams .cityClassSelect {
   flex: 1;
   margin: 0 !important;
   padding-left: 0px !important;
   padding-right: 0px !important;
 }
-
+ 
 .cityClassParams .cityClassSelect:nth-child(2) {
   margin: 0 10px !important;
 }
-
+ 
 .cityClassParams .cityClassSelect .el-form-item {
   margin-bottom: 0px !important;
 }
-
+ 
 .cityClassParams .cityClassSelect .el-form-item .el-input__inner {
   height: 28px !important;
   line-height: 28px !important;
 }
-
+ 
 .cityClass2 div label {
   display: none;
 }
-
+ 
 .cityClass3 div label {
   display: none;
 }
-
+ 
 .old-video-dialog {
   position: absolute !important;
   top: 0 !important;
@@ -1569,7 +1570,7 @@
   height: 100% !important;
   width: 476px !important;
 }
-
+ 
 .old-video-dialog .el-dialog {
   position: absolute !important;
   top: 0 !important;
@@ -1580,23 +1581,23 @@
   margin-top: 15vh !important;
   height: 538px;
 }
-
+ 
 .old-video-dialog .el-dialog .el-dialog__body {
   height: calc(100% - 54px);
   box-sizing: border-box;
 }
-
+ 
 .el-button.active {
   background: #ff0000 !important;
 }
-
+ 
 .el-button.btn-color {
   color: rgb(255, 255, 255);
   background-color: rgb(64, 158, 255);
   border-color: rgb(64, 158, 255);
 }
-
+ 
 .tabFontSize {
   font-size: 15px;
 }
-</style>
+</style>
\ No newline at end of file
diff --git a/src/views/security/security.vue b/src/views/security/security.vue
index cbda06b..62f4cdb 100644
--- a/src/views/security/security.vue
+++ b/src/views/security/security.vue
@@ -23,9 +23,20 @@
       </template>
     </avue-crud>
 
-    <el-drawer title="电子地图" append-to-body="true" :visible.sync="showMap">
-      <iframe id="mapDiv" ref="mapDiv" src="/map/index.html?openid=scurityMap&ISinit=1" frameborder="0" width="100%"
+    <!-- <el-drawer title="电子地图" append-to-body="true" :visible.sync="showMap">
+      <iframe id="mapDiv" ref="mapDiv" src="/map/index.html?ISinit=1&openid=SecurityMap" frameborder="0" width="100%"
               height="100%"></iframe>
+    </el-drawer> -->
+    <el-drawer title="电子地图" append-to-body="true" :visible.sync="showMap">
+      <iframe
+                id="securityMap"
+                ref="securityMap"
+                :src="baseUrl"
+                frameborder="0"
+                width="100%"
+                height="100%"
+                name="securityMap"
+              ></iframe>
     </el-drawer>
   </basic-container>
 </template>
@@ -45,10 +56,11 @@
   export default {
     data() {
       return {
+        baseUrl:"/map/index.html?ISinit=1",
         form: {},
         query: {},
         loading: true,
-        showMap: false,
+        showMap: true,
         page: {
           pageSize: 10,
           currentPage: 1,
@@ -189,6 +201,9 @@
         return ids.join(",");
       }
     },
+    mounted() {
+      this.showMap = false;
+    },
     methods: {
       rowSave(row, done, loading) {
         add(row).then(() => {
@@ -233,17 +248,22 @@
             });
           });
       },
+      //打开地图
       handleMap(row) {
-        this.showMap = true;
-        this.$nextTick(() => {
-          this.$refs.mapDiv.onload = () => {
+        var that =this;
+        that.baseUrl = `/map/index.html?ISinit=1&openid=SecurityMap&jd=${row.jd}&wd=${row.wd}&code=${row.code}&name=${row.realName}`;
+        this.showMap=true;
+        this.$refs.securityMap.onload = () => {
+          if (window.frames[0].init) {
             window.frames[0].init("SecurityMap", {
-              x: row.jd,
-              y: row.wd,
-              code:row.code
+                x: row.jd,
+                y: row.wd,
+                code:row.code
             });
-          };
-        })
+          } else {
+            console.log(`没有找到到window.frames[0].init`)
+          }
+        }
       },
       handleDelete() {
         if (this.selectionList.length === 0) {
diff --git a/src/views/supervisoryConsole/card.vue b/src/views/supervisoryConsole/card.vue
index 36ac9ac..f4c0410 100644
--- a/src/views/supervisoryConsole/card.vue
+++ b/src/views/supervisoryConsole/card.vue
@@ -26,7 +26,13 @@
     <el-row
       v-infinite-scroll="load"
       :infinite-scroll-disabled="disabled"
-      style="margin-top: 10px"
+      style="
+        margin-top: 10px;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        flex-wrap: wrap;
+      "
     >
       <el-col
         class="card-container"
@@ -37,7 +43,9 @@
         <a href="javascript:void(0);" @click.stop="goToDetails(item)">
           <el-card
             :style="
-              item.state == ''
+              item.jtype == 1
+                ? 'background: #F34A4Ae6'
+                : item.state == ''
                 ? item.onlineStatus == 1
                   ? 'background: #1DBB99e6'
                   : 'background: #C9C9C9e6'
@@ -49,7 +57,9 @@
 
             <div class="cet">
               {{
-                item.state == ""
+                item.jtype == 1
+                  ? "设备预警"
+                  : item.state == ""
                   ? item.onlineStatus == 1
                     ? "设备在线"
                     : "设备掉线"
@@ -136,12 +146,17 @@
       getList({ deviceName: this.inputSearchValue }).then((res) => {
         var a = [],
           b = [],
-          c = [];
+          c = [],
+          f = [];
         if (this.radio == "全部") {
           res.data.data.forEach((item) => {
-            if (item.state != "") a.push(item);
-            if (item.state == "" && item.onlineStatus == 1) c.push(item);
-            if (item.state == "" && item.onlineStatus != 1) b.push(item);
+            if (item.jtype == 1) {
+              f.push(item);
+            } else {
+              if (item.state != "") a.push(item);
+              if (item.state == "" && item.onlineStatus == 1) c.push(item);
+              if (item.state == "" && item.onlineStatus != 1) b.push(item);
+            }
           });
         } else if (this.radio == "仅显示预警设备") {
           res.data.data.forEach((item) => {
@@ -149,7 +164,11 @@
           });
         } else if (this.radio == "仅显示设备掉线") {
           res.data.data.forEach((item) => {
-            if (item.onlineStatus != 1) b.push(item);
+            if (item.jtype == 1 && item.onlineStatus != 1) {
+              f.push(item);
+            } else {
+              if (item.onlineStatus != 1) b.push(item);
+            }
           });
         } else if (this.radio == "仅显示设备故障") {
           res.data.data.forEach((item) => {
@@ -157,7 +176,7 @@
           });
         }
 
-        var d = a.concat(c.concat(b));
+        var d = f.concat(a.concat(c.concat(b)));
 
         d.forEach((item) => {
           this.count.push(item);
diff --git a/src/views/system/cs.vue b/src/views/system/cs.vue
index b9e1236..a4d1ba8 100644
--- a/src/views/system/cs.vue
+++ b/src/views/system/cs.vue
@@ -662,6 +662,7 @@
             );
           } else if (row.type == "1") {
             insertss(
+              row.dj,
               row.nature,
               row.had,
               row.motto,
@@ -671,6 +672,7 @@
             );
           } else if (row.type == "2") {
             insertsr(
+              row.dj,
               row.category,
               row.attributes,
               row.developers,
@@ -705,6 +707,7 @@
         );
       } else if (row.type == "1") {
         updateInfos(
+          row.dj,
           row.nature,
           row.had,
           row.motto,
@@ -714,6 +717,7 @@
         );
       } else if (row.type == "2") {
         updateInfor(
+          row.dj,
           row.category,
           row.attributes,
           row.developers,
@@ -770,6 +774,7 @@
             selectTs(this.form.tenantName).then((re) => {
               const data = res.data.data;
               data.nature = re.data.data[0].nature;
+              data.dj = re.data.data[0].dj;
               data.motto = re.data.data[0].motto;
               data.ctime = re.data.data[0].ctime;
               data.had = re.data.data[0].had;
@@ -789,6 +794,7 @@
           } else if (this.form.type == "2") {
             selectTr(this.form.tenantName).then((re) => {
               const data = res.data.data;
+              data.dj = re.data.data[0].dj;
               data.category = re.data.data[0].category;
               data.attributes = re.data.data[0].attributes;
               data.developers = re.data.data[0].developers;
diff --git a/src/views/zc/zc.vue b/src/views/zc/zc.vue
index 51180ee..620642d 100644
--- a/src/views/zc/zc.vue
+++ b/src/views/zc/zc.vue
@@ -167,10 +167,10 @@
       ...mapGetters(["permission"]),
       permissionList() {
         return {
-         addBtn: this.vaildData(this.permission.zc_add, true),
+         addBtn: this.vaildData(this.permission.zc_add, false),
           viewBtn: this.vaildData(this.permission.zc_view, true),
           delBtn: this.vaildData(this.permission.zc_delete, false),
-          editBtn: this.vaildData(this.permission.zc_edit, true)
+          editBtn: this.vaildData(this.permission.zc_edit, false)
         };
       },
       ids() {

--
Gitblit v1.9.3