From 92d5a2511ed8c40cfffc960d7c3556db2e09a485 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Thu, 22 Apr 2021 20:34:20 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/jfpt-Vue

---
 package-lock.json                                         |   10 
 src/views/healthcode/healthcode.vue                       |    5 
 src/views/policeTracking/policeTracking.vue               |  156 +++++----
 public/map/images/del.png                                 |    0 
 src/views/supervisoryConsole/card.vue                     |   12 
 public/map/images/insert.png                              |    0 
 src/views/report/reportlist.vue                           |    4 
 src/views/realTimePolice/real.vue                         |   32 -
 public/map/images/by-jingbao.png                          |    0 
 public/map/images/add-0.png                               |    0 
 src/views/report/reportlist copy.vue                      |  203 ++++++++++++
 src/styles/media.scss                                     |    2 
 src/views/report/announcementReport.vue                   |    2 
 public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js |   81 ++--
 public/map/widgets/securityMap/SecurityMap.js             |  234 ++++++++------
 public/map/widgets/map/MapWidget.js                       |    2 
 public/map/images/yj-jingbao.png                          |    0 
 public/map/widgets/securityMap/SecurityMap.css            |   34 ++
 public/map/widgets/securityMap/template.html              |   17 +
 src/views/security/security.vue                           |   22 +
 src/views/report/reportConfiguration.vue                  |    2 
 src/views/parcel/parcel.vue                               |    5 
 src/page/index/logo.vue                                   |   80 +++-
 src/views/parcel/parcelKind.vue                           |    6 
 public/map/images/delete.png                              |    0 
 src/views/animalHeat/animalHeat.vue                       |    8 
 src/main.js                                               |    2 
 package.json                                              |    1 
 28 files changed, 624 insertions(+), 296 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 5884a59..2fea7e5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11817,6 +11817,16 @@
         "vue-style-loader": "^4.1.0"
       }
     },
+    "vue-mobile-audio": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npm.taobao.org/vue-mobile-audio/download/vue-mobile-audio-0.1.3.tgz",
+      "integrity": "sha1-LTrV14UgV5RC/JZzpzD68AoxGJY=",
+      "requires": {
+        "vue": "^2.5.17",
+        "vue-router": "^3.0.1",
+        "vuex": "^3.0.1"
+      }
+    },
     "vue-router": {
       "version": "3.4.9",
       "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.4.9.tgz?cache=0&sync_timestamp=1610356181553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.4.9.tgz",
diff --git a/package.json b/package.json
index a52bed6..9bc4865 100644
--- a/package.json
+++ b/package.json
@@ -33,6 +33,7 @@
     "vue": "^2.6.10",
     "vue-axios": "^2.1.2",
     "vue-i18n": "^8.7.0",
+    "vue-mobile-audio": "^0.1.3",
     "vue-router": "^3.0.1",
     "vuex": "^3.1.1"
   },
diff --git a/public/map/images/add-0.png b/public/map/images/add-0.png
new file mode 100644
index 0000000..aa7ef24
--- /dev/null
+++ b/public/map/images/add-0.png
Binary files differ
diff --git a/public/map/images/by-jingbao.png b/public/map/images/by-jingbao.png
new file mode 100644
index 0000000..bdedf67
--- /dev/null
+++ b/public/map/images/by-jingbao.png
Binary files differ
diff --git a/public/map/images/del.png b/public/map/images/del.png
new file mode 100644
index 0000000..570e7e1
--- /dev/null
+++ b/public/map/images/del.png
Binary files differ
diff --git a/public/map/images/delete.png b/public/map/images/delete.png
new file mode 100644
index 0000000..cf627ad
--- /dev/null
+++ b/public/map/images/delete.png
Binary files differ
diff --git a/public/map/images/insert.png b/public/map/images/insert.png
new file mode 100644
index 0000000..fc9ad6b
--- /dev/null
+++ b/public/map/images/insert.png
Binary files differ
diff --git a/public/map/images/yj-jingbao.png b/public/map/images/yj-jingbao.png
new file mode 100644
index 0000000..a4f0271
--- /dev/null
+++ b/public/map/images/yj-jingbao.png
Binary files differ
diff --git a/public/map/widgets/map/MapWidget.js b/public/map/widgets/map/MapWidget.js
index 482aff1..9039070 100644
--- a/public/map/widgets/map/MapWidget.js
+++ b/public/map/widgets/map/MapWidget.js
@@ -116,7 +116,7 @@
 
             this._addLayer();
             this._eventHandlers.push(this.map.on("extent-change", lang.hitch(this, this._onExtentChange)));
-            this._eventHandlers.push(this.map.on("mouse-move", lang.hitch(this, this._onMouseMove)));
+            // this._eventHandlers.push(this.map.on("mouse-move", lang.hitch(this, this._onMouseMove)));
             AppEvent.addAppEventListener(AppEvent.SWITCH_BASEMAP, lang.hitch(this, this.onSwitchBaseMap));
             AppEvent.addAppEventListener(AppEvent.ADD_TOP_MOST_LAYER, lang.hitch(this, this.onAddTopMostLayer));
         },
diff --git a/public/map/widgets/securityMap/SecurityMap.css b/public/map/widgets/securityMap/SecurityMap.css
index e69de29..666c505 100644
--- a/public/map/widgets/securityMap/SecurityMap.css
+++ b/public/map/widgets/securityMap/SecurityMap.css
@@ -0,0 +1,34 @@
+.mapBtn {
+    background-color: #ffffff;
+    width: 14vh;
+    height: 4vh;
+    position: relative;
+    top: 3vh;
+    right: -45vh;
+    border-radius: 5px;
+}
+
+.insBtn {
+    float: left;
+}
+
+.mapBtn a {
+    line-height: 4vh;
+    font-size: 13px;
+    text-align: center;
+    color: #757575;
+    position: relative;
+    left: 1.2vh;
+    letter-spacing: 1.5px;
+}
+
+.mapBtn img {
+    position: relative;
+    left: 1.2vh;
+    top: -1px;
+}
+
+a:hover {
+    color: #3385FF;
+    cursor: pointer;
+}
\ No newline at end of file
diff --git a/public/map/widgets/securityMap/SecurityMap.js b/public/map/widgets/securityMap/SecurityMap.js
index 00dd42c..1ca59f9 100644
--- a/public/map/widgets/securityMap/SecurityMap.js
+++ b/public/map/widgets/securityMap/SecurityMap.js
@@ -144,8 +144,14 @@
         editToolbar: null,
         addPolygonEntitys: null,
 
-        // 巡逻区域或者巡逻路线的描述
-        routeOrRegionDescribe: null,
+        //是否选中电子围栏区域
+        isChecked: false,
+
+        //当前处警员是否已有电子围栏
+        isEngineer: false,
+
+        //当前处警员是否有位置信息
+        isPosition: true,
 
         // 用来记录巡逻区域或者巡逻路线的下标的
         patrolIndex: 0,
@@ -156,6 +162,10 @@
         y: 0,
         offset: null,
         moveThis: null,
+
+        //基础路径
+        //pathUrl: "http://localhost:89",
+        pathUrl: "https://web.byisf.com/api/blade-jfpts",
 
         // 电子围栏需要新增的Id
         newElectronicFenceId: null,
@@ -193,6 +203,55 @@
 
         startup: function() {
             objThis._map.addLayer(objThis._siteLayer);
+            var that = this;
+
+            //删除电子围栏点击事件
+            $(".mapBtn .delete").click(function() {
+                //需选中电子围栏,然后进行删除
+                if (that.isChecked) {
+                    that.addPolygonEntitys.clear();
+                    //删除数据库数据
+                    //更新电子围栏数据
+                    $.ajax({
+                            url: that.pathUrl + '/enclosure/enclosure/deleteByAnumber',
+                            type: 'POST',
+                            dataType: 'JSON',
+                            data: {
+                                anumber: anumber
+                            },
+                            success: function(result) {
+                                if (result.code == 200) {}
+                            }
+                        })
+                        //修改围栏状态
+                    that.isEngineer = false;
+                } else {
+                    layui.use('layer', function() {
+                        layui.layer.msg('请先选中需要删除的电子围栏');
+                    })
+                }
+            })
+
+            //新增电子围栏
+            $('.mapBtn .insert').click(function() {
+                if (that.isPosition) {
+                    if (that.isEngineer) {
+                        layui.use('layer', function() {
+                            layui.layer.msg('已存在电子围栏');
+                        })
+                    } else {
+                        layui.use('layer', function() {
+                            layui.layer.msg('请开始划分电子围栏');
+                        })
+                        that.polygonFlag = true;
+                    }
+                } else {
+                    layui.use('layer', function() {
+                        layui.layer.msg('当前处警员无位置信息,不能划分电子围栏');
+                    })
+                }
+            })
+
         },
 
         //根据key 取value值
@@ -211,55 +270,55 @@
         //页面打开后,获取参数数据
         open: function() {
             var that = this;
+            //获取父页面传过来的参数
             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])]);
+            console.log(lgtd, 1111);
+            //如果处警员的位置信息存在
+            if (lgtd != null && lgtd != "") {
+                //所在位置标记
+                that.addPoint(that.addEntitys, lgtd, lttd, './images/security.png');
+                //获取当前处警员的电子围栏信息
+                $.ajax({
+                    url: this.pathUrl + '/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.isEngineer = true;
+                                that.addPolygon(that.addPolygonEntitys, entityArr);
+                            } else {
+                                //如果无电子围栏信息,则提示请编辑电子围栏信息
+                                //编辑好电子围栏信息后,将当前处警员的电子围栏信息保存到数据库
+                                that.newElectronicFenceId = null;
+                                //that.polygonFlag = true;
+                                that.newElectronicFenceId = anumber;
                             }
-                            that.addPolygon(that.addPolygonEntitys, entityArr);
-                        } else {
-                            //如果无电子围栏信息,则提示请编辑电子围栏信息
-                            //编辑好电子围栏信息后,将当前处警员的电子围栏信息保存到数据库
-                            that.newElectronicFenceId = null;
-
-                            layui.use('layer', function() {
-                                layui.layer.msg('请开始划分电子围栏');
-                            })
-                            that.polygonFlag = true;
-                            that.newElectronicFenceId = anumber;
                         }
-
                     }
-                }
-            })
+                })
+            } else {
+                //当前处警员没有位置信息,则默认定位到市中心位置
+                that.isPosition = false;
+            }
 
             //调用点击事件
             that.clickHand();
@@ -298,8 +357,8 @@
 
                         //将数据存入数据库
                         $.ajax({
-                            //url: 'https://web.byisf.com/api/blade-jfpts/enclosure/enclosure/updatee',
-                            url: 'http://localhost:89/enclosure/enclosure/insertes',
+                            url: that
+                                .pathUrl + '/enclosure/enclosure/insertes',
                             type: 'POST',
                             dataType: 'JSON',
                             data: {
@@ -312,20 +371,25 @@
                             }
                         })
                     }
+                    //修改电子围栏数据状态
+                    that.isEngineer = true;
+                    //修改电子围栏选中状态
+                    that.isChecked = false;
+                    //修改电子围栏编辑状态
                     that.polygonFlag = false;
-
                 }
             }
         },
 
         // 鼠标点击事件
         clickHand: function() {
+            var that = this;
 
             var self = this;
             self._map.onClick = mapClick;
 
+            //点击事件
             function mapClick(evt) {
-                debugger;
                 var normalizedVal = webMercatorUtils.xyToLngLat(evt.mapPoint.x, evt.mapPoint.y);
                 var y = self._map.toMap({
                     spatialReference: '4326',
@@ -354,11 +418,14 @@
                         // 保存当前点击得图形
                         // self.currentDrawing = evt.graphic;
 
+                        that.isChecked = true;
+
                         self.modifyPolygon();
 
                         self.activateToolbar(evt.graphic);
                     } else { // 点击不在图形上
-
+                        //修改电子围栏选中状态
+                        that.isChecked = false;
                         self.modifyPolygon()
                     }
                 }
@@ -386,30 +453,24 @@
                     x = ($(window).width() - 184);
                 }
 
-                if (self.tabIndex == 1 || self.tabIndex == 2) {
+                if (self.polygonFlag == true) {
+                    $('.securityMapTips').stop().show();
 
-                    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,
-                        })
+                    if (self.polygonData.length == 0) {
+                        $('.securityMapTips').text('单击左键开始绘制。');
                     } else {
-                        $('.police-dispatching .tips').stop().hide();
+                        if (e.clientY > ($(window).height() - 98)) {
+                            y = ($(window).height() - 88);
+                        }
+                        $('.securityMapTips').text('单击左键新增加点。单击右键完成绘制。');
                     }
 
+                    $('.securityMapTips').css({
+                        'top': y,
+                        'left': x,
+                    })
                 } else {
-                    $('.police-dispatching .tips').stop().hide();
+                    $('.securityMapTips').stop().hide();
                 }
             })
         },
@@ -457,8 +518,7 @@
 
                 //更新电子围栏数据
                 $.ajax({
-                    //url: 'https://web.byisf.com/api/blade-jfpts/enclosure/enclosure/updatee',
-                    url: 'http://localhost:89/enclosure/enclosure/updatee',
+                    url: this.pathUrl + '/enclosure/enclosure/updatee',
                     type: 'POST',
                     dataType: 'JSON',
                     data: {
@@ -507,44 +567,8 @@
 
         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({
diff --git a/public/map/widgets/securityMap/template.html b/public/map/widgets/securityMap/template.html
index 281c686..507553e 100644
--- a/public/map/widgets/securityMap/template.html
+++ b/public/map/widgets/securityMap/template.html
@@ -1 +1,16 @@
-<div></div>
\ No newline at end of file
+<div>
+    <div class="mapBtn">
+        <div class="insBtn">
+            <img src="./images/add-0.png" style="width:14px;height:14px;">
+            <a class=" insert " id="insertEngineeringMap ">新增&nbsp;|&nbsp;</a>
+        </div>
+        <div class="delBtn">
+            <img src="./images/del.png" style="width:14px;height:14px;">
+            <a class="delete " id="securityMapClearMap ">删除</a>
+        </div>
+    </div>
+
+    <!-- 提示语 -->
+    <div class="securityMapTips">
+    </div>
+</div>
\ No newline at end of file
diff --git a/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js b/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js
index 208b075..f95b136 100644
--- a/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js
+++ b/public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js
@@ -167,7 +167,7 @@
         }
       }
     },
-    _mapClick: function (e) {//地图全局点击事件 标记不能点击
+    _mapClick: function (e) { //地图全局点击事件 标记不能点击
       // console.log('地图全局点击事件');
 
       if (!e.target) {
@@ -278,7 +278,7 @@
               // area: 'auto',
               offset: posi,
               skin: 'flare',
-              closeBtn: 0,//关闭按钮,可通过配置1和2来展示,0关闭
+              closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭
               content: [url, 'no'],
               resize: false,
               scrollbar: false,
@@ -295,7 +295,7 @@
                   , endy = null;
                 layero[0].style.position = 'absolute';
 
-                downs = document.onmousedown = () => {//鼠标按下事件
+                downs = document.onmousedown = () => { //鼠标按下事件
                   // console.log('down');//start
                   // downs = document.onmousedown = null;
                   var mx = window.event.clientX//鼠标初始位置
@@ -359,11 +359,11 @@
                 }
 
               },
-              end: function () {//关闭事件
+              end: function () { //关闭事件
 
               }
             });
-            that.layuiLayer.open({//第二个iframe
+            that.layuiLayer.open({ //第二个iframe
               title: '',
               type: 2,
               shadeClose: true,
@@ -376,13 +376,13 @@
               offset: 'r',
               skin: 'flare',
               isOutAnim: false,
-              closeBtn: 0,//关闭按钮,可通过配置1和2来展示,0关闭
+              closeBtn: 0, //关闭按钮,可通过配置1和2来展示,0关闭
               content: ['./popup/html/FlareClusterLayer_v3 copy.html'],
               resize: false,
               scrollbar: false,
               // tipsMore: true, //允许多个tipe
               // content: num,
-              success: function (layero, index) {//成功后添加全局点击关闭
+              success: function (layero, index) { //成功后添加全局点击关闭
                 // var z = document.onclick = ()=>{
                 //   parent[0].layer.close(index);
                 // //   // parent[0].layer.close(+index + 1);
@@ -396,15 +396,14 @@
             })
           })
         }
-        if (mySelf.onceTimeMethod == null) {//防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
+        if (mySelf.onceTimeMethod == null) { //防抖.限制时间内点击次数,否则会造成不能正确销毁前一个弹窗
           var offsetMy = [+evt.screenY - 300 + 'px', +evt.screenX - 172.5 + 'px'];
           // console.log(evt.screenY);
           fCard(offsetMy, setdata);
           mySelf.onceTimeMethod = setTimeout(() => {
             mySelf.onceTimeMethod = null;
           }, mySelf.onceTime);
-        } else {
-        };
+        } else {};
 
 
 
@@ -900,12 +899,16 @@
       this.singles.push(single);
       delete single.graphic;
       var symbol;
-      console.log(single.onlineStatus, '移动事件');
-      if (single.onlineStatus == 1) {
-        symbol = new esri.symbol.PictureMarkerSymbol("./images/zx-jingbao.png", 40, 40);
+      if (single.jtype == 1) {
+        symbol = new esri.symbol.PictureMarkerSymbol("./images/yj-jingbao.png", 40, 40);
       } else {
-        symbol = new esri.symbol.PictureMarkerSymbol("./images/dx-jingbao.png", 40, 40);
+        if (single.onlineStatus == 1) {
+          symbol = new esri.symbol.PictureMarkerSymbol("./images/zx-jingbao.png", 40, 40);
+        } else {
+          symbol = new esri.symbol.PictureMarkerSymbol("./images/dx-jingbao.png", 40, 40);
+        }
       }
+
       var point = new Point(single[this.xPropertyName], single[this.yPropertyName], this.spatialRef);
       var attributes = lang.clone(single);
       var graphic = new Graphic(point, symbol, attributes, null);
@@ -998,11 +1001,11 @@
       //add a text element for the label to display the count and add to the group
       var shapeCenter = this._getShapeCenter(cluster.graphicShape);
       var textShape = groupShape.createText({
-        x: shapeCenter.x,
-        y: shapeCenter.y + (this.textSymbol.font.size / 2 - 2),
-        text: cluster.clusterCount,
-        align: 'middle'
-      })
+          x: shapeCenter.x,
+          y: shapeCenter.y + (this.textSymbol.font.size / 2 - 2),
+          text: cluster.clusterCount,
+          align: 'middle'
+        })
         .setFont({
           size: this.textSymbol.font.size,
           family: this.textSymbol.font.family,
@@ -1126,10 +1129,10 @@
       //create a transparent circle that contains the boundary of the flares, this is to make sure the mouse events don't fire moving in between flares
       var conCircleRadius = (center.x - (bbox.x - radius - buffer)) + radius; //get the radius of the circle to contain everything
       var containerCircle = groupShape.createCircle({
-        cx: center.x,
-        cy: center.y,
-        r: conCircleRadius
-      })
+          cx: center.x,
+          cy: center.y,
+          r: conCircleRadius
+        })
         //.setStroke({ width: 1, color: "000" })
         .setFill(new Color([0, 0, 0, 0]));
       containerCircle.rawNode.setAttribute("class", "flare-object cluster-object");
@@ -1430,11 +1433,11 @@
       var textShapes = [];
       for (var i = 0, len = lines.length; i < len; i++) {
         var textShape = tooltipGroup.createText({
-          x: xPos,
-          y: yPos + (i * 10),
-          text: lines[i],
-          align: 'middle'
-        })
+            x: xPos,
+            y: yPos + (i * 10),
+            text: lines[i],
+            align: 'middle'
+          })
           .setFill("#000")
           .setFont({
             size: 8,
@@ -1448,12 +1451,12 @@
       var rectPadding = 2;
       var textBox = tooltipGroup.getBoundingBox();
       var rectShape = tooltipGroup.createRect({
-        x: textBox.x - rectPadding,
-        y: textBox.y - rectPadding,
-        width: textBox.width + (rectPadding * 2),
-        height: textBox.height + (rectPadding * 2),
-        r: 0
-      })
+          x: textBox.x - rectPadding,
+          y: textBox.y - rectPadding,
+          width: textBox.width + (rectPadding * 2),
+          height: textBox.height + (rectPadding * 2),
+          r: 0
+        })
         .setFill(new Color([255, 255, 255, 0.9]))
         .setStroke({
           color: "#000",
@@ -1589,11 +1592,11 @@
       //Have to add the flare text after the flare group animation otherwise Edge just reloads the page and dies for some reason?
       if (this.shape.flareText) {
         var flareText = this.shape.createText({
-          x: this.shape.flareText.location.x,
-          y: this.shape.flareText.location.y,
-          text: this.shape.flareText.text,
-          align: 'middle'
-        })
+            x: this.shape.flareText.location.x,
+            y: this.shape.flareText.location.y,
+            text: this.shape.flareText.text,
+            align: 'middle'
+          })
           .setFill(layer.textSymbol.color)
           .setFont({
             size: this.shape.flareText.textSize,
diff --git a/src/main.js b/src/main.js
index eced8de..1485fae 100644
--- a/src/main.js
+++ b/src/main.js
@@ -25,6 +25,8 @@
 import website from '@/config/website';
 import crudCommon from '@/mixins/crud';
 import * as echarts from 'echarts';
+import audio from 'vue-mobile-audio';
+Vue.use(audio);
 Vue.prototype.$echarts = echarts;
 // 注册全局crud驱动
 window.$crudCommon = crudCommon;
diff --git a/src/page/index/logo.vue b/src/page/index/logo.vue
index e7b5548..7f292ff 100644
--- a/src/page/index/logo.vue
+++ b/src/page/index/logo.vue
@@ -385,31 +385,7 @@
           if (response.data.data.length > 0) {
             that.deviceId = response.data.data[0].id;
             that.form = response.data.data[0];
-            newAxios
-              .post(
-                "/api_control",
-                {},
-                {
-                  params: {
-                    param: JSON.stringify({ PktType: "GetAccessToken" }),
-                  },
-                }
-              )
-              .then((res) => {
-                newAxios
-                  .get(
-                    `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) => {});
-                  });
-              });
+
             if (
               response.data.data[0].waringType == "紧急求救" &&
               response.data.data[0].alarmId == userId
@@ -711,7 +687,6 @@
 
     aKeyToCall() {
       this.isActive = true;
-
       var that = this;
       if (this.recorder == null) {
         this.recorder = new Recorder({
@@ -737,7 +712,6 @@
     // 序列号后期待修改
     aKeyStopCall() {
       this.isActive = false;
-
       var newCallAxios = axios.create({
         baseURL: "https://web.byisf.com:18000",
         withCredentials: false,
@@ -745,6 +719,7 @@
           "Content-Type": "application/json;",
         },
       });
+
       var that = this;
 
       newCallAxios
@@ -759,12 +734,31 @@
         )
         .then((result) => {
           var formData = new FormData();
-          var blob = that.recorder.getPCMBlob(); //获取pcm格式音频数据
+          // 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);
+
+          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: {
@@ -866,8 +860,38 @@
     },
 
     onDialogTableVisible() {
+      var that = this;
       Recorder.getPermission().then(() => {});
       this.videoConversationReal = true;
+      var userId = JSON.parse(
+        window.localStorage.getItem("物联网安保云服务平台-userInfo")
+      ).content.user_id;
+      newAxios
+        .post(
+          "/api_control",
+          {},
+          {
+            params: {
+              param: JSON.stringify({ PktType: "GetAccessToken" }),
+            },
+          }
+        )
+        .then((res) => {
+          newAxios
+            .get(
+              `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,
+                  uid: userId,
+                },
+              }).then((resdata) => {});
+            });
+        });
     },
   },
 };
diff --git a/src/styles/media.scss b/src/styles/media.scss
index 4d0f7bf..17c0f79 100644
--- a/src/styles/media.scss
+++ b/src/styles/media.scss
@@ -54,7 +54,7 @@
   left: 240px;
   padding: 0;
   width: calc(100% - 240px);
-  height: calc(100% - 104px);
+  height: calc(100% - 94px);
   box-sizing: border-box;
   overflow: hidden;
   transition: all 0.5s;
diff --git a/src/views/animalHeat/animalHeat.vue b/src/views/animalHeat/animalHeat.vue
index d52b922..ca6a918 100644
--- a/src/views/animalHeat/animalHeat.vue
+++ b/src/views/animalHeat/animalHeat.vue
@@ -205,11 +205,17 @@
     methods: {
       beforeOpen(done, type) {
       },
+      //清空按钮
       searchReset() {
+        //清空搜索框中的内容
         this.query = {};
+        //清空this.$route.query
+        this.$router.push({ query: {} });
         this.onLoad(this.page);
       },
+      //搜索按钮
       searchChange(params, done) {
+        console.log(params,222);
         this.query = params;
         this.page.currentPage = 1;
         this.onLoad(this.page, params);
@@ -265,7 +271,7 @@
           let status = this.$route.query.status==undefined? '':this.$route.query.status;
           let timeDesc = this.$route.query.timeDesc==undefined? '':this.$route.query.timeDesc;
           //window.open(`/api/blade-jfpts/animalHeat/animalHeat/getAnimalHeatStatis?begTime=${begTime}&endTime=${endTime}&status=${status}&timeDesc=${timeDesc}`);
-          window.open(`http://localhost:8108/ureport/preview?_u=blade-animalHeat.statis.ureport.xml&begTime=${begTime}&endTime=${endTime}&status=${status}&timeDesc=${timeDesc}`);
+          window.open(`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-animalHeat.statis.ureport.xml&begTime=${begTime}&endTime=${endTime}&status=${status}&timeDesc=${timeDesc}`);
         });
       },
       //修改行颜色
diff --git a/src/views/healthcode/healthcode.vue b/src/views/healthcode/healthcode.vue
index e317a34..6cb2be0 100644
--- a/src/views/healthcode/healthcode.vue
+++ b/src/views/healthcode/healthcode.vue
@@ -232,7 +232,10 @@
       beforeOpen(done, type) {
       },
       searchReset() {
+        //清空搜索框中的内容
         this.query = {};
+        //清空this.$route.query
+        this.$router.push({ query: {} });
         this.onLoad(this.page);
       },
       searchChange(params, done) {
@@ -316,7 +319,7 @@
           let type = this.$route.query.type==undefined? '':this.$route.query.type;
           let timeDesc = this.$route.query.timeDesc==undefined? '':this.$route.query.timeDesc;
           //window.open(`http://localhost:8108/ureport/excel?_u=blade-healthcode.statis.xml.ureport.xml&begTime=${begTime}&endTime=${endTime}&type=${type}&timeDesc=${timeDesc}`);
-          window.open(`http://localhost:8108/ureport/preview?_u=blade-healthcode.statis.xml.ureport.xml&begTime=${begTime}&endTime=${endTime}&type=${type}&timeDesc=${timeDesc}`);
+          window.open(`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-healthcode.statis.xml.ureport.xml&begTime=${begTime}&endTime=${endTime}&type=${type}&timeDesc=${timeDesc}`);
         });
       },
       onLoad(page, params = {}) {
diff --git a/src/views/parcel/parcel.vue b/src/views/parcel/parcel.vue
index ffdcb1c..e5c0b82 100644
--- a/src/views/parcel/parcel.vue
+++ b/src/views/parcel/parcel.vue
@@ -235,7 +235,10 @@
         done();
       },
       searchReset() {
+        //清空搜索框中的内容
         this.query = {};
+        //清空this.$route.query
+        this.$router.push({ query: {} });
         this.onLoad(this.page);
       },
       searchChange(params, done) {
@@ -315,7 +318,7 @@
           let decisioDiagramResult = this.$route.query.decisioDiagramResult==undefined? '':this.$route.query.decisioDiagramResult;
           let timeDesc = this.$route.query.timeDesc==undefined? '':this.$route.query.timeDesc;
           //window.open(`http://localhost:8108/ureport/excel?_u=blade-parcel.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`);
-          window.open(`http://localhost:8108/ureport/preview?_u=blade-parcel.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`);
+          window.open(`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-parcel.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`);
         });
       },
       onLoad(page, params = {}) {
diff --git a/src/views/parcel/parcelKind.vue b/src/views/parcel/parcelKind.vue
index 7e16474..b396769 100644
--- a/src/views/parcel/parcelKind.vue
+++ b/src/views/parcel/parcelKind.vue
@@ -217,7 +217,10 @@
         done();
       },
       searchReset() {
+        //清空搜索框中的内容
         this.query = {};
+        //清空this.$route.query
+        this.$router.push({ query: {} });
         this.onLoad(this.page);
       },
       searchChange(params, done) {
@@ -291,7 +294,8 @@
           let decisioDiagramResult = this.$route.query.decisioDiagramResult==undefined? '':this.$route.query.decisioDiagramResult;
           let timeDesc = this.$route.query.timeDesc;
           //window.open(`http://localhost:8108/ureport/excel?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`);
-          window.open(`http://localhost:8108/ureport/preview?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`);
+          //window.open(`http://localhost:8108/ureport/preview?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`);
+          window.open(`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`);
         });
       },
       onLoad(page, params = {}) {
diff --git a/src/views/policeTracking/policeTracking.vue b/src/views/policeTracking/policeTracking.vue
index df39cc2..ee81226 100644
--- a/src/views/policeTracking/policeTracking.vue
+++ b/src/views/policeTracking/policeTracking.vue
@@ -2,7 +2,7 @@
   <el-row>
     <el-col :span="12">
       <div style="background: #fff; height: 100%">
-        <el-card class="trackClass">
+        <el-card class="trackClass" style="overflow-y: auto">
           <div
             style="margin-top: 20px"
             role="tab"
@@ -295,16 +295,19 @@
               class="el-collapse-item__header focusing is-active"
             >
               <div class="avue-group__header avue-group">
-                <i class="el-icon-document avue-group__icon"></i>
+                <i class="el-icon-phone avue-group__icon"></i>
                 <h1 class="avue-group__title">对讲信息</h1>
               </div>
             </div>
           </div>
 
-          <el-card class="receiving-alarm-box">
-            <div v-for="(item, index) in audios" :key="index" style="margin: 10px 0; width: 100%; height: 40px;">
-              <audio :src="item.address" style="width: 40%; height: 100%;"  controls></audio>
-            </div>
+          <el-card class="audios-box">
+            <m-audio
+              :block="false"
+              v-for="(item, index) in audios"
+              :key="index"
+              :src="item.address"
+            ></m-audio>
           </el-card>
 
           <div
@@ -362,39 +365,10 @@
             </el-row>
             <el-row>
               <el-col span="12">
-                <el-form-item label="性别">
-                  <el-input
-                    disabled="true"
-                    v-model="security.sex"
-                    autocomplete="off"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col span="12">
-                <el-form-item label="年龄">
-                  <el-input
-                    disabled="true"
-                    v-model="security.age"
-                    autocomplete="off"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-            <el-row>
-              <el-col span="12">
                 <el-form-item label="联系电话">
                   <el-input
                     disabled="true"
                     v-model="security.phone"
-                    autocomplete="off"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col span="12">
-                <el-form-item label="家庭住址">
-                  <el-input
-                    disabled="true"
-                    v-model="security.address"
                     autocomplete="off"
                   ></el-input>
                 </el-form-item>
@@ -432,7 +406,7 @@
             <el-input
               disabled="true"
               type="textarea"
-              v-model="security.snumber"
+              v-model="security.describe"
               autocomplete="off"
             ></el-input>
 
@@ -455,23 +429,16 @@
                   </div>
                 </div>
               </div>
-              <div>
+              <el-card class="scene-image-box">
                 <el-image
-                  :src="src"
+                  v-for="(item, index) in imgSrc"
+                  :key="index"
+                  :src="item"
                   :preview-src-list="srcList"
-                  style="width: 150px; margin-left: 5px"
+                  v-show="imgSrc.length > 0"
                 ></el-image>
-                <el-image
-                  :src="src"
-                  :preview-src-list="srcList"
-                  style="width: 150px; margin-left: 5px"
-                ></el-image>
-                <el-image
-                  :src="src"
-                  :preview-src-list="srcList"
-                  style="width: 150px; margin-left: 5px"
-                ></el-image>
-              </div>
+                <span v-show="imgSrc.length == 0">暂无现场图片</span>
+              </el-card>
             </div>
             <div class="block">
               <div
@@ -493,11 +460,13 @@
                 </div>
               </div>
               <div>
-                <el-image :src="src" style="width: 150px; margin-left: 5px">
-                  <div slot="placeholder" class="image-slot">
-                    加载中<span class="dot">...</span>
-                  </div>
-                </el-image>
+                <video
+                  :src="feedbackVideo"
+                  style="width: 100%; height: 100%; object-fit: fill"
+                  controls
+                  v-show="feedbackVideo != ''"
+                ></video>
+                <span v-show="feedbackVideo == ''">暂无现场视频</span>
               </div>
             </div>
           </div>
@@ -533,6 +502,7 @@
         :visible.sync="oldVideoSatart"
         :close-on-press-escape="false"
         :close-on-click-modal="false"
+        @opened="oldOpenVideo"
         @close="vaddress = ''"
         append-to-body
       >
@@ -544,7 +514,9 @@
           id="old_video"
           style="width: 100%; height: 100%; object-fit: fill"
           controls
+          v-show="vaddress != ''"
         ></video>
+        <span v-show="vaddress == ''">暂无历史视频</span>
       </el-dialog>
     </el-col>
   </el-row>
@@ -552,7 +524,7 @@
 
 <script>
 import axios from "axios";
-
+import { getclient } from "@/api/real/real";
 export default {
   inject: ["reload"],
   data() {
@@ -560,21 +532,9 @@
       flag: true,
       selectOptions: [],
       receivingList: [],
-      security: {
-        snumber: 20018,
-        sname: "金同涛",
-        sex: "男",
-        age: 23,
-        phone: 1387975426,
-        address: "江西省南昌市西湖区",
-      },
-      src:
-        "https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg",
-      srcList: [
-        "https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg",
-        "https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg",
-        "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
-      ],
+      security: {},
+      imgSrc: [],
+      srcList: [],
       form: {},
       itemOption: {
         menuBtn: false,
@@ -634,6 +594,7 @@
       oldVideoSatart: false,
       vaddress: null,
       audios: [],
+      feedbackVideo: "",
     };
   },
   created() {
@@ -645,6 +606,7 @@
   mounted() {
     this.getList();
     this.getAudios();
+    this.getImgAndVideo();
     this.$refs.mapDiv.onload = () => {
       window.frames[0].init("AlertSecurity", {
         x: this.form.jd,
@@ -889,13 +851,38 @@
         this.audios = resdata.data.data.records;
       });
     },
+
+    getImgAndVideo() {
+      axios({
+        method: "post",
+        url: "/api/blade-jfpts/feedback/feedback/selectFeedEdit",
+        params: {
+          jid: this.form.id,
+        },
+      }).then((resdata) => {
+        console.log(resdata.data.data[0], 56569);
+        this.security = resdata.data.data[0].List[0];
+        this.imgSrc = resdata.data.data[0].tp;
+        this.srcList = resdata.data.data[0].tp;
+        this.feedbackVideo = resdata.data.data[0].sp[0];
+      });
+    },
+
+    oldOpenVideo() {
+      getclient(this.form.id).then((res) => {
+        if (res.data.data.vaddress != "") {
+           this.vaddress = res.data.data.vaddress;
+        }
+      });
+    }
+
   },
 };
 </script>
 
-<style lang="scss">
+<style scoped lang="scss">
 .el-col {
-  height: 95%;
+  height: calc(100% - 5px);
 }
 
 .trackClass {
@@ -912,4 +899,27 @@
     padding: 0 10px !important;
   }
 }
+
+.audios-box,
+.scene-image-box {
+  line-height: 32px !important;
+  height: auto;
+  max-height: 200px;
+  overflow-y: auto;
+  .el-card__body {
+    display: flex;
+    padding: 0 10px !important;
+    flex-wrap: wrap;
+    justify-content: center;
+    align-items: center;
+    .x-audio-wrap.inline {
+      margin: 10px;
+    }
+    .el-image {
+      margin: 10px;
+      width: 160px;
+      height: 80px;
+    }
+  }
+}
 </style>
diff --git a/src/views/realTimePolice/real.vue b/src/views/realTimePolice/real.vue
index d493f78..543cc00 100644
--- a/src/views/realTimePolice/real.vue
+++ b/src/views/realTimePolice/real.vue
@@ -777,7 +777,10 @@
     },
     searchReset() {
       this.activeClass = 3;
+      //清空搜索框中的内容
       this.query = {};
+      //清空this.$route.query
+      this.$router.push({ query: {} });
       this.onLoad(this.page);
     },
     searchChange(params, done) {
@@ -1383,11 +1386,6 @@
         },
       });
 
-      var wavAxios = axios.create({
-        baseURL: "https://web.byisf.com",
-        withCredentials: false,
-      });
-
       var that = this;
 
       newCallAxios
@@ -1503,31 +1501,11 @@
             ? ""
             : this.$route.query.timeDesc;
         window.open(
-          `http://localhost:8108/ureport/preview?_u=blade-alarm.statis.ureport.xml&beginTime=${beginTime}&endTime=${endTime}&waringType=${waringType}&timeDesc=${timeDesc}`
+          `https://web.byisf.com/api/blade-report/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}`);
       });
-    },
-    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 "";
-    },
+    }
   },
 };
 </script>
diff --git a/src/views/report/announcementReport.vue b/src/views/report/announcementReport.vue
index e59b1e6..bb3161a 100644
--- a/src/views/report/announcementReport.vue
+++ b/src/views/report/announcementReport.vue
@@ -1,5 +1,5 @@
 <template>
-<iframe src="http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml" style="width: 100%;height: 100%" frameborder="0"></iframe>
+<iframe src="https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-notice.ureport.xml" style="width: 100%;height: 100%" frameborder="0"></iframe>
 </template>
 
 <script>
diff --git a/src/views/report/reportConfiguration.vue b/src/views/report/reportConfiguration.vue
index 87977de..df16761 100644
--- a/src/views/report/reportConfiguration.vue
+++ b/src/views/report/reportConfiguration.vue
@@ -1,5 +1,5 @@
 <template>
-<iframe src="http://localhost:8108/ureport/designer" style="width: 100%;height: 100%" frameborder="0"></iframe>
+<iframe src="https://web.byisf.com/api/blade-report/ureport/designer" style="width: 100%;height: 100%" frameborder="0"></iframe>
 </template>
 
 <script>
diff --git a/src/views/report/reportlist copy.vue b/src/views/report/reportlist copy.vue
new file mode 100644
index 0000000..b33c12b
--- /dev/null
+++ b/src/views/report/reportlist copy.vue
@@ -0,0 +1,203 @@
+<template>
+  <basic-container>
+    <avue-crud :option="option"
+               :table-loading="loading"
+               :data="data"
+               ref="crud"
+               v-model="form"
+               :page.sync="page"
+               :permission="permissionList"
+               @row-del="rowDel"
+               @search-change="searchChange"
+               @search-reset="searchReset"
+               @selection-change="selectionChange"
+               @current-change="currentChange"
+               @size-change="sizeChange"
+               @refresh-change="refreshChange"
+               @on-load="onLoad">
+      <template slot="menuLeft">
+        <el-button type="danger"
+                   size="small"
+                   icon="el-icon-delete"
+                   plain
+                   @click="handleDelete">删 除
+        </el-button>
+      </template>
+      <template slot-scope="scope" slot="menu">
+        <el-button
+          type="text"
+          icon="el-icon-edit-outline"
+          size="small"
+          @click.stop="handleDesign(scope.row.name)"
+          v-if="userInfo.role_name.includes('admin')"
+        >设计
+        </el-button>
+        <el-button
+          type="text"
+          icon="el-icon-view"
+          size="small"
+          @click.stop="handlePreview(scope.row.name)"
+          v-if="userInfo.role_name.includes('admin')"
+        >预览
+        </el-button>
+      </template>
+      <template slot-scope="{row}" slot="name">
+        <el-tag style="cursor:pointer" @click="handlePreview(row.name)">{{ row.name }}</el-tag>
+      </template>
+    </avue-crud>
+  </basic-container>
+</template>
+
+<script>
+import {getList, remove} from "@/api/report/report";
+import {mapGetters} from "vuex";
+
+export default {
+  data() {
+    return {
+      form: {},
+      selectionList: [],
+      query: {},
+      loading: true,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      option: {
+        height: 'auto',
+        calcHeight: 30,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true,
+        index: true,
+        selection: true,
+        viewBtn: true,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "文件名",
+            prop: "name",
+            search: true,
+            slot: true,
+          },
+          {
+            label: "创建时间",
+            prop: "createTime",
+          },
+          {
+            label: "更新时间",
+            prop: "updateTime",
+          }
+        ]
+      },
+      data: []
+    };
+  },
+  computed: {
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: false,
+        viewBtn: false,
+        delBtn: true,
+        editBtn: false
+      };
+    },
+    ids() {
+      let ids = [];
+      this.selectionList.forEach(ele => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    }
+  },
+  methods: {
+    handlePreview(name) {
+      this.$router.push({path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.reportUrl}/preview?_u=blade-${name}`});
+    },
+    handleDesign(name) {
+      this.$router.push({path: `/myiframe/urlPath?name=designer-${name}&src=${this.website.reportUrl}/designer?_u=blade-${name}`});
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+        });
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.crud.toggleSelection();
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.$refs.crud.toggleSelection();
+        });
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.data = data.records;
+        this.loading = false;
+        this.selectionClear();
+      });
+    }
+  }
+};
+</script>
+
+<style>
+</style>
diff --git a/src/views/report/reportlist.vue b/src/views/report/reportlist.vue
index b33c12b..e6d6756 100644
--- a/src/views/report/reportlist.vue
+++ b/src/views/report/reportlist.vue
@@ -115,10 +115,10 @@
   },
   methods: {
     handlePreview(name) {
-      this.$router.push({path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.reportUrl}/preview?_u=blade-${name}`});
+      this.$router.push({path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.reportUrl}/blade-report/preview?_u=blade-${name}`});
     },
     handleDesign(name) {
-      this.$router.push({path: `/myiframe/urlPath?name=designer-${name}&src=${this.website.reportUrl}/designer?_u=blade-${name}`});
+      this.$router.push({path: `/myiframe/urlPath?name=designer-${name}&src=${this.website.reportUrl}/blade-report/designer?_u=blade-${name}`});
     },
     rowDel(row) {
       this.$confirm("确定将选择数据删除?", {
diff --git a/src/views/security/security.vue b/src/views/security/security.vue
index 62f4cdb..b641cb7 100644
--- a/src/views/security/security.vue
+++ b/src/views/security/security.vue
@@ -251,15 +251,27 @@
       //打开地图
       handleMap(row) {
         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
-            });
+            if(row.jd==""){
+              //如果处警员无位置信息,则赋值一个默认数据,否则地图无法加载
+              window.frames[0].init("SecurityMap", {
+                              x: "115.862321",
+                              y: "28.591108",
+                              code:row.code
+                          });
+            }else{
+              window.frames[0].init("SecurityMap", {
+                            
+                              x: row.jd,
+                              y: row.wd,
+                              code:row.code
+                          });
+            }
+            
           } else {
             console.log(`没有找到到window.frames[0].init`)
           }
diff --git a/src/views/supervisoryConsole/card.vue b/src/views/supervisoryConsole/card.vue
index f4c0410..39388a6 100644
--- a/src/views/supervisoryConsole/card.vue
+++ b/src/views/supervisoryConsole/card.vue
@@ -29,8 +29,7 @@
       style="
         margin-top: 10px;
         display: flex;
-        justify-content: center;
-        align-items: center;
+        justify-content: left;
         flex-wrap: wrap;
       "
     >
@@ -53,7 +52,7 @@
             "
           >
             <div>{{ item.deviceName }}</div>
-            <div>{{ item.street }}</div>
+            <div style="width: 80%;">{{ item.street }}</div>
 
             <div class="cet">
               {{
@@ -130,9 +129,7 @@
         this.loading = false;
       }, 2000);
     },
-    siteStatus(value, e) {
-      console.log(this.radio, value);
-    },
+    
     inputSearchBtn() {
       this.getEquipmentLists();
     },
@@ -286,8 +283,7 @@
   height: 172px !important;
   box-sizing: border-box;
   margin-bottom: 20px !important;
-  min-width: 368px;
-  max-width: 370px;
+  width: 20% !important;
   a {
     width: 100%;
     height: 100%;

--
Gitblit v1.9.3