南昌市物联网技防平台-前端
liuyg
2021-04-09 9c67dc3526d8ad356e1dcd0cc80e4382866ea6a7
Merge branch 'master' of http://192.168.0.105:10010/r/jfpt-Vue
12 files modified
2 files added
738 ■■■■ changed files
public/map/images/dx-jingbao.png patch | view | raw | blame | history
public/map/images/zx-jingbao.png patch | view | raw | blame | history
public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js 146 ●●●● patch | view | raw | blame | history
public/map/widgets/supervisoryMap/SupervisoryMap.js 2 ●●● patch | view | raw | blame | history
src/api/supervisory/card.js 4 ●●●● patch | view | raw | blame | history
src/page/index/logo.vue 28 ●●●● patch | view | raw | blame | history
src/styles/alarmAnalysis/alarmAnalysis.scss 80 ●●●●● patch | view | raw | blame | history
src/views/alarmManagement/alarmAnalysis.vue 373 ●●●● patch | view | raw | blame | history
src/views/animalHeat/animalHeat.vue 9 ●●●●● patch | view | raw | blame | history
src/views/healthcode/healthcode.vue 12 ●●●● patch | view | raw | blame | history
src/views/parcel/parcelKind.vue 8 ●●●●● patch | view | raw | blame | history
src/views/realTimePolice/real.vue 24 ●●●●● patch | view | raw | blame | history
src/views/supervisoryConsole/card.vue 36 ●●●● patch | view | raw | blame | history
src/views/supervisoryConsole/data.vue 16 ●●●●● patch | view | raw | blame | history
public/map/images/dx-jingbao.png
public/map/images/zx-jingbao.png
public/map/widgets/supervisoryMap/FlareClusterLayer_v3.js
@@ -58,7 +58,9 @@
            //set options from constructor parameter or set defaults
            options = options || {};
            this.spatialRef = options.spatialReference || new SpatialReference({"wkid": 102100});
      this.spatialRef = options.spatialReference || new SpatialReference({
        "wkid": 102100
      });
            this.preClustered = options.preClustered === true;
            this.clusterRatio = options.clusterRatio || 75;
@@ -204,7 +206,10 @@
                this.map.infoWindow.setFeatures([graphic]);
                //when getting screen point make sure we use the location of the flare on screen, by converting the map point on the object.
                var sp = this.map.toScreen({x: flareObject.mapPoint.x, y: flareObject.mapPoint.y});
        var sp = this.map.toScreen({
          x: flareObject.mapPoint.x,
          y: flareObject.mapPoint.y
        });
                //Could do something with the anchor of the info window here if wanted. The offsets can be a bit wacky as well.
                //var anchor = this._getInfoWindowAnchor(flareObject.degree);
@@ -243,7 +248,9 @@
            }
            //get an extent that is in web mercator to make sure it's flat for extent checking
            var webExtent = webMercatorUtils.project(map.extent, new SpatialReference({"wkid": 102100}));
      var webExtent = webMercatorUtils.project(map.extent, new SpatialReference({
        "wkid": 102100
      }));
            if (!this.gridClusters || this.gridClusters.length === 0) {
                this._createClusterGrid();
            }
@@ -298,7 +305,10 @@
                    }
                }
                if (!subTypeExists) {
                    cl.subTypeCounts.push({name: obj[this.subTypeFlareProperty], count: 1});
          cl.subTypeCounts.push({
            name: obj[this.subTypeFlareProperty],
            count: 1
          });
                }
                cl.singles.push(obj);
@@ -517,7 +527,9 @@
            //The webextent will need to be normalized since panning over the international dateline will cause
            //cause the extent to shift outside the -180 to 180 degree window.  If we don't normalize then the
            //clusters will not be drawn if the map pans over the international dateline.
            var webExtent = !this.map.extent.spatialReference.isWebMercator() ? webMercatorUtils.project(this.map.extent, new SpatialReference({"wkid": 102100})) : this.map.extent;
      var webExtent = !this.map.extent.spatialReference.isWebMercator() ? webMercatorUtils.project(this.map.extent, new SpatialReference({
        "wkid": 102100
      })) : this.map.extent;
            var normalizedWebExtent = webExtent.normalize();
            webExtent = normalizedWebExtent[0];
@@ -577,7 +589,10 @@
                        }
                    }
                    if (!subTypeExists) {
                        cl.subTypeCounts.push({name: obj[this.subTypeFlareProperty], count: 1});
            cl.subTypeCounts.push({
              name: obj[this.subTypeFlareProperty],
              count: 1
            });
                    }
                    cl.singles.push(obj);
@@ -618,8 +633,15 @@
                for (var j = 0; j < yCount; j++) {
                    gsymin = webExtent.ymin + (yh * j);
                    gsymax = gsymin + yh;
                    var ext = new Extent({xmin: gsxmin, xmax: gsxmax, ymin: gsymin, ymax: gsymax});
                    ext.setSpatialReference(new SpatialReference({"wkid": 102100}));
          var ext = new Extent({
            xmin: gsxmin,
            xmax: gsxmax,
            ymin: gsymin,
            ymax: gsymax
          });
          ext.setSpatialReference(new SpatialReference({
            "wkid": 102100
          }));
                    this.gridClusters.push({
                        extent: ext,
                        clusterCount: 0,
@@ -634,9 +656,16 @@
        _createSingle: function (single) {
            this.singles.push(single);
            delete single.graphic;
      var symbol;
      console.log(single.onlineStatus, 898989);
      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, null, attributes, null);
      var graphic = new Graphic(point, symbol, attributes, null);
            single.graphic = graphic;
            this.add(graphic);
        },
@@ -747,13 +776,11 @@
            var create = fx.animateTransform({
                duration: 200,
                shape: groupShape,
                transform: [
                    {
        transform: [{
                        name: "scaleAt",
                        start: [0, 0, shapeCenter.x, shapeCenter.y],
                        end: [1, 1, shapeCenter.x, shapeCenter.y]
                    }
                ],
        }],
                onEnd: dojo.partial(this._animationEnd, this)
            });
            anims.push(create);
@@ -764,13 +791,11 @@
                var areaCreate = fx.animateTransform({
                    duration: 200,
                    shape: areaShape,
                    transform: [
                        {
          transform: [{
                            name: "scaleAt",
                            start: [0, 0, areaCenter.x, areaCenter.y],
                            end: [1, 1, areaCenter.x, areaCenter.y]
                        }
                    ],
          }],
                    onEnd: dojo.partial(this._animationEnd, this)
                });
                anims.push(areaCreate);
@@ -808,9 +833,11 @@
                var areaDisplay = fx.animateTransform({
                    duration: 300,
                    shape: cluster.areaGraphic.getShape(),
                    transform: [
                        {name: "scaleAt", start: [0, 0, center.x, center.y], end: [1, 1, center.x, center.y]}
                    ],
          transform: [{
            name: "scaleAt",
            start: [0, 0, center.x, center.y],
            end: [1, 1, center.x, center.y]
          }],
                    onEnd: dojo.partial(this._animationEnd, this)
                });
                scaleAnims.push(areaDisplay);
@@ -819,9 +846,11 @@
            var scaleUp = fx.animateTransform({
                duration: 400,
                shape: groupShape,
                transform: [
                    {name: "scaleAt", start: [1, 1, center.x, center.y], end: [1.3, 1.3, center.x, center.y]}
                ],
        transform: [{
          name: "scaleAt",
          start: [1, 1, center.x, center.y],
          end: [1.3, 1.3, center.x, center.y]
        }],
                onEnd: dojo.partial(this._animationEnd, this)
            });
@@ -853,7 +882,11 @@
            //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})
      var containerCircle = groupShape.createCircle({
          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");
@@ -973,13 +1006,19 @@
                if (fo.flareText) {
                    //if displaying text in the flare, 
                    flareGroup.flareText = {
                        location: {x: fo.center.x, y: fo.center.y + (radius / 2 - 1)},
            location: {
              x: fo.center.x,
              y: fo.center.y + (radius / 2 - 1)
            },
                        text: !isSummaryFlare ? fo.flareText : "...",
                        textSize: !isSummaryFlare ? 7 : 10
                    };
                }
                flareGroup.setTransform({xx: 0, yy: 0});//scale to 0 to start with
        flareGroup.setTransform({
          xx: 0,
          yy: 0
        }); //scale to 0 to start with
                flareGroup.rawNode.setAttribute("class", "flare-object cluster-object");
                flareCircle.rawNode.setAttribute("class", "flare-graphic cluster-object");
                flareGroup.rawNode.setAttribute("data-tooltip", tooltipText);
@@ -988,13 +1027,11 @@
                var anim = fx.animateTransform({
                    duration: 50,
                    shape: flareGroup,
                    transform: [
                        {
          transform: [{
                            name: "scaleAt",
                            start: [0, 0, fo.center.x, fo.center.y],
                            end: [1, 1, fo.center.x, fo.center.y]
                        }
                    ],
          }],
                    onEnd: dojo.partial(this._animationEnd, this)
                });
@@ -1081,9 +1118,11 @@
                var areaHide = fx.animateTransform({
                    duration: 600,
                    shape: cluster.areaGraphic.getShape(),
                    transform: [
                        {name: "scaleAt", start: [1, 1, center.x, center.y], end: [0, 0, center.x, center.y]}
                    ],
          transform: [{
            name: "scaleAt",
            start: [1, 1, center.x, center.y],
            end: [0, 0, center.x, center.y]
          }],
                    onEnd: dojo.partial(this._animationEnd, this)
                });
@@ -1093,9 +1132,11 @@
            var scaleDown = fx.animateTransform({
                duration: 400,
                shape: groupShape,
                transform: [
                    {name: "scaleAt", start: [1.3, 1.3, center.x, center.y], end: [1, 1, center.x, center.y]}
                ],
        transform: [{
          name: "scaleAt",
          start: [1.3, 1.3, center.x, center.y],
          end: [1, 1, center.x, center.y]
        }],
                onEnd: dojo.partial(this._animationEnd, this)
            });
@@ -1137,14 +1178,26 @@
            var yPos = parseInt(shape.rawNode.getAttribute("data-center-y")) + 18; //align underneath, could be changed to be wherever
            //create a group to hold the tooltip elements
            var tooltipGroup = shape.createGroup({x: xPos, y: yPos});
      var tooltipGroup = shape.createGroup({
        x: xPos,
        y: yPos
      });
            tooltipGroup.rawNode.setAttribute("class", "tooltip-text");
            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'})
        var textShape = tooltipGroup.createText({
            x: xPos,
            y: yPos + (i * 10),
            text: lines[i],
            align: 'middle'
          })
                    .setFill("#000")
                    .setFont({size: 8, family: this.textSymbol.font.family, weight: this.textSymbol.font.weight});
          .setFont({
            size: 8,
            family: this.textSymbol.font.family,
            weight: this.textSymbol.font.weight
          });
                textShapes.push(textShape);
                textShape.rawNode.setAttribute("pointer-events", "none");
            }
@@ -1159,7 +1212,10 @@
                r: 0
            })
                .setFill(new Color([255, 255, 255, 0.9]))
                .setStroke({color: "#000", width: 0.5});
        .setStroke({
          color: "#000",
          width: 0.5
        });
            rectShape.rawNode.setAttribute("pointer-events", "none");
            shape.moveToFront();
@@ -1241,7 +1297,10 @@
            var bbox = shape.getBoundingBox();
            x = bbox.x + bbox.width / 2;
            y = bbox.y + bbox.height / 2
            return {x: x, y: y};
      return {
        x: x,
        y: y
      };
        },
        _getSurfaceTranslate: function () {
@@ -1275,7 +1334,10 @@
                //put this in a slight timeout, otherwise the display can get a tiny bit jittery.
                setTimeout(function () {
                    if (elem.__gfxObject__) {
                        elem.__gfxObject__.setTransform({xx: 1, yy: 1});
            elem.__gfxObject__.setTransform({
              xx: 1,
              yy: 1
            });
                    }
                }, 50);
            });
public/map/widgets/supervisoryMap/SupervisoryMap.js
@@ -59,7 +59,7 @@
  "esri/layers/ImageParameters",
  "esri/geometry/geometryEngine",
  "esri/dijit/PopupTemplate",
  "widgets/clientManagement/FlareClusterLayer_v3",
  "widgets/supervisoryMap/FlareClusterLayer_v3",
  "dojo/domReady!"
], function (
  dojo,
src/api/supervisory/card.js
@@ -1,9 +1,9 @@
import request from '@/router/axios';
export const getList = () => {
export const getList = (res) => {
  return request({
    url: '/api/blade-jfpts/equipment/equipment/listAll',
    method: 'get',
    params: {}
    params: {...res}
  })
}
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",
src/styles/alarmAnalysis/alarmAnalysis.scss
@@ -25,7 +25,7 @@
.timeSearchBtn .timeSearch {
    position: relative;
    left: 1.2%;
    top: 40.6%;
    top: 42.6%;
}
//预警总数统计
@@ -104,6 +104,10 @@
    font-size: 14px;
}
.avue-data-cardText .item-footer span:nth-child(2) {
    color: red;
}
//预警类型占比
.alarmTypePro {
    background-color: #ffffff;
@@ -121,6 +125,37 @@
    left: 1%;
}
.alarmTypeTotal {
    //background-color: antiquewhite;
    width: 10%;
    height: 100px;
    position: relative;
    left: 9.37%;
    top: -58%;
}
.numAlarmType {
    text-align: center;
    position: relative;
    top: 15%;
}
.numAlarmType span {
    font-size: 28px;
    color: #4B4B4B;
}
.textAlarmType {
    text-align: center;
    position: relative;
    top: 20%;
}
.textAlarmType span {
    font-size: 14px;
    color: #757575;
}
.alarmTypeProStatis {
    //background-color: aqua;
    width: 50%;
@@ -132,7 +167,7 @@
.alarmTypeProStatis .el-row {
    position: relative;
    top: 120px;
    top: 24px;
}
//预警设备类型占比
@@ -187,6 +222,37 @@
    left: 1%;
}
.confirmTimeTotal {
    //background-color: antiquewhite;
    width: 12%;
    height: 100px;
    position: relative;
    left: 12.87%;
    top: -58%;
}
.numConfirmTime {
    text-align: center;
    position: relative;
    top: 15%;
}
.numConfirmTime span {
    font-size: 28px;
    color: #4B4B4B;
}
.textConfirmTime {
    text-align: center;
    position: relative;
    top: 20%;
}
.textConfirmTime span {
    font-size: 14px;
    color: #757575;
}
.confirmTimeProStatis {
    //background-color: aqua;
    width: 60%;
@@ -198,10 +264,10 @@
.confirmTimeProStatis .el-row {
    position: relative;
    top: 120px;
    top: 24px;
}
//预警平均速度排行
//预警平均确认速度排行
.confirmAverageSpeed {
    background-color: #ffffff;
    width: 35%;
@@ -211,6 +277,12 @@
    left: 64.4%;
}
.confirmAverageSpeedTitle span {
    position: relative;
    left: 5%;
    top: 20px;
}
.confirmAverageSpeed .avue-crud {
    width: 90%;
    position: relative;
src/views/alarmManagement/alarmAnalysis.vue
@@ -7,28 +7,28 @@
      <el-button-group class="timeBtn">
        <el-button
         v-bind:class="activeClass == 1 ? 'btn-color' : ''" 
         size="mini"
         size="small"
         @click="getData(1)">
         本周
         </el-button>
 
        <el-button 
        v-bind:class="activeClass == 2 ? 'btn-color' : ''"
        size="mini"
        size="small"
        @click="getData(2)">
        月初至今
        </el-button>
 
        <el-button 
        v-bind:class="activeClass == 3 ? 'btn-color' : ''"
        size="mini"
        size="small"
        @click="getData(3)">
        季度至今
        </el-button>
      </el-button-group>
      <el-date-picker 
      class="timeSearch" 
      size="mini"
      size="small"
      v-model="dateTime" 
      type="daterange" 
      @change="timeChange"
@@ -50,6 +50,10 @@
    <!-- 预警类型占比 -->
    <div class="alarmTypePro">
      <div id="alarmTypeProEcharts"></div>
      <div class="alarmTypeTotal">
        <div class="numAlarmType"><span>{{alarmTypeTotal}}</span></div>
        <div class="textAlarmType"><span>总预警数</span></div>
      </div>
      <div class="alarmTypeProStatis">
        <avue-data-cardtext :option="alarmTypeProStatis"></avue-data-cardtext>
      </div>
@@ -64,12 +68,17 @@
    <!-- 确认时间占比 -->
    <div class="confirmTimePro">
        <div id="confirmTimeProEcharts"></div>
        <div class="confirmTimeTotal">
          <div class="numConfirmTime"><span>{{confirmTimeTotal}}</span></div>
          <div class="textConfirmTime"><span>确认预警数</span></div>
        </div>
        <div class="confirmTimeProStatis">
          <avue-data-cardtext :option="confirmTimeProStatis"></avue-data-cardtext>
        </div>
    </div>
    <!-- 预警平均确认速度排行 -->
    <div class="confirmAverageSpeed">
      <div class="confirmAverageSpeedTitle"><span>预警平均确认速度排行</span></div>
      <avue-crud :data="confirmAverageSpeedData" :option="confirmAverageSpeedOption"></avue-crud>
    </div>
    <!-- 预警时间分布 -->
@@ -91,6 +100,8 @@
    data(){
      return {
        activeClass:2,
        alarmTypeTotal:0,
        confirmTimeTotal:0,
        statisToTalData: {
          span:6,
          data: []
@@ -125,6 +136,8 @@
      window.handleStartParcelKind=this.handleStartParcelKind;
      window.handleStartEquipment=this.handleStartEquipment;
      window.handleStartSuser=this.handleStartSuser;
      window.handleStartAnimalHeat=this.handleStartAnimalHeat;
      window.handleStartHealthcode=this.handleStartHealthcode;
    },
 
    methods: {
@@ -132,11 +145,22 @@
      timeChange(){
        //清空选项按钮标记
        var that = this;
        var time = this.dateTime;
        var startTime = time[0]+"";
        if(startTime.indexOf("-")==-1){
            //修改时间格式
            time[0]=this.timeFormat(time[0]);
            time[1]=this.timeFormat(time[1]);
        }
        //如果开始时间和结束时间相同,则修改结束时间
        if(time[0]==time[1]){
          time[1]= time[0].substring(0,10)+" 23:59:59";
        }
        that.activeClass = 0;
        var data = {};
        data ={
          startTime:this.timeFormat(this.dateTime[0]),
          endTime:this.timeFormat(this.dateTime[1])
          startTime:time[0],
          endTime:time[1]
        }
        this.getStatisData(data);
      },
@@ -162,13 +186,25 @@
      getStatisTotalData(data){
        selectIndexCount(data).then(res => {
        var that = this;
        var time = this.dateTime;
        var startTime = time[0]+"";
        if(startTime.indexOf("-")==-1){
            //修改时间格式
            time[0]=this.timeFormat(time[0]);
            time[1]=this.timeFormat(time[1]);
        }
        //如果开始时间和结束时间相同,则修改结束时间
        if(time[0]==time[1]){
          time[1]= time[0].substring(0,10)+" 23:59:59";
        }
        that.statisToTalData.data = [
            {
              click: function (item) {
                  var data =[];
                  data.push({
                    startTime:time[0],
                    endTime:time[1],
                    waringType:'紧急求救',
                    status:0
                  })
                  window.parent.handleStartAlarm(data);
              },
@@ -180,18 +216,18 @@
            {
              click: function (item) {
                var data =[];
                // 当前时间
                var date = new Date();
                //年
                var Y = date.getFullYear();
                //月
                var M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
                //日
                var D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
                // // 当前时间
                // var date = new Date();
                // //年
                // var Y = date.getFullYear();
                // //月
                // var M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
                // //日
                // var D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
                console.log(this.dateTime,111);
                data.push({
                startTime:Y + "-" + M + "-" + D + " 00:00:00",
                endTime: Y +"-" +M +"-" + D +  " 23:59:59",
                  startTime:time[0],
                  endTime: time[1],
                decisioDiagramResult:"contraband"
                  });
                window.parent.handleStartParcel(data);
@@ -205,17 +241,17 @@
              click: function (item) {
                var data = [];
                // 当前时间
                var date = new Date();
                //年
                var Y = date.getFullYear();
                //月
                var M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
                //日
                var D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
                // var date = new Date();
                // //年
                // var Y = date.getFullYear();
                // //月
                // var M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
                // //日
                // var D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
 
                data.push({
                startTime:Y + "-" + M + "-" + D + " 00:00:00",
                endTime: Y +"-" +M +"-" + D +  " 23:59:59",
                  startTime:time[0],
                  endTime: time[1],
                decisioDiagramResult:"contraband"
                  });
                window.parent.handleStartParcelKind(data);
@@ -262,7 +298,6 @@
 
      //包裹分页数据
      handleStartParcel(data) {
        debugger;
        this.$router.push({
          path: `/parcel/index`,
          query: data[0],
@@ -289,6 +324,22 @@
      handleStartSuser() {
        this.$router.push({
          path: `/suser/index`,
        });
      },
       //体温监测分页数据
      handleStartAnimalHeat(data) {
        this.$router.push({
          path: `/animalHeat/animalHeatPage`,
          query: data[0],
        });
      },
      //健康码分页数据
      handleStartHealthcode(data) {
        this.$router.push({
          path: `/healthcode/healthcodePage`,
          query: data[0],
        });
      },
 
@@ -334,6 +385,45 @@
          })
          let echarts = require('echarts');
          let myChart = echarts.init(document.getElementById('alarmNumberStatis'));
          myChart.on('click', function (params) {
            var data = [];
            if(params.seriesName=='一键求助'){
              data.push({
                startTime:params.name+" 00:00:00",
                endTime:params.name+" 23:59:59",
                waringType:'紧急求救',
              })
              window.parent.handleStartAlarm(data);
            }
            if(params.seriesName=='违禁品'){
              data.push({
                startTime:params.name+" 00:00:00",
                endTime:params.name+" 23:59:59",
                  decisioDiagramResult:"contraband"
                });
              window.parent.handleStartParcelKind(data);
            }
            if(params.seriesName=='红色健康码'){
              data.push({
                startTime:params.name+" 00:00:00",
                endTime:params.name+" 23:59:59",
                  type:3
                });
              window.parent.handleStartHealthcode(data);
            }
            if(params.seriesName=='体温异常'){
              data.push({
                startTime:params.name+" 00:00:00",
                endTime:params.name+" 23:59:59",
                  status:1
                });
              window.parent.handleStartAnimalHeat(data);
            }
          })
          var colors = ['#FF9836', '#1E90FF', '#F34A4A', '#8058A5'];
          let option = {
              color:colors,
@@ -391,6 +481,13 @@
          that.alarmClassifyStatis.data = [
            {
                click: function (item) {
                  var data = [];
                  data.push({
                    startTime:time[0],
                    endTime:time[1],
                    waringType:'紧急求救',
                  })
                  window.parent.handleStartAlarm(data);
                },
                title:'一键求助',
                color:'#FF9836',
@@ -400,6 +497,13 @@
            },
            {
                click: function (item) {
                  var data = [];
                  data.push({
                    startTime:time[0],
                    endTime:time[1],
                    decisioDiagramResult:"contraband"
                  });
                  window.parent.handleStartParcelKind(data);
                },
                title:'违禁品',
                color:'#1E90FF',
@@ -408,6 +512,13 @@
            },
            {
                click: function (item) {
                  var data = [];
                  data.push({
                    startTime:time[0],
                    endTime:time[1],
                    type:3
                  });
                  window.parent.handleStartHealthcode(data);
                },
                title:'红色健康码',
                color:'#F34A4A',
@@ -416,6 +527,13 @@
            },
            {
                click: function (item) {
                  var data = [];
                  data.push({
                    startTime:time[0],
                    endTime:time[1],
                    status:1
                  });
                  window.parent.handleStartAnimalHeat(data);
                },
                title:'体温异常',
                color:'#8058A5',
@@ -430,7 +548,12 @@
      //预警类型占比统计
      getAlarmTypeProEcharts(data){
        selAlarmDayAveragePro(data).then(res =>{
          var that = this;
          //计算总和
          that.alarmTypeTotal = res.data.data[0]+res.data.data[1]+res.data.data[2]+res.data.data[3];
          var data = [];
          var startDate = this.dateTime[0];
          var endDate = this.dateTime[1];
          data.push(
              {value: res.data.data[0], name: '一键求助'},
              {value: res.data.data[1], name: '违禁品'},
@@ -439,6 +562,46 @@
          )
          let echarts = require('echarts');
          let myChart = echarts.init(document.getElementById('alarmTypeProEcharts'));
          myChart.on('click', function (params) {
              var data = [];
              if(params.name=='一键求助'){
                data.push({
                  startTime:startDate,
                  endTime:endDate,
                  waringType:'紧急求救',
                })
                window.parent.handleStartAlarm(data);
              }
              if(params.name=='违禁品'){
                data.push({
                  startTime:startDate,
                  endTime:endDate,
                  decisioDiagramResult:"contraband"
                });
                window.parent.handleStartParcelKind(data);
              }
              if(params.name=='红色健康码'){
                data.push({
                  startTime:startDate,
                  endTime:endDate,
                  type:3
                });
                window.parent.handleStartHealthcode(data);
              }
              if(params.name=='体温异常'){
                data.push({
                  startTime:startDate,
                  endTime:endDate,
                  status:1
                });
                window.parent.handleStartAnimalHeat(data);
              }
          })
          var colors = ['#FF9836', '#3fa1ff', '#F34A4A', '#8058A5'];
          let option = {
              color:colors,
@@ -473,13 +636,6 @@
                          show: false,
                          position: 'center'
                      },
                      emphasis: {
                          label: {
                              show: true,
                              fontSize: '18',
                              fontWeight: 'bold'
                          }
                      },
                      labelLine: {
                          show: false
                      },
@@ -500,10 +656,18 @@
      getAlarmTypeProStatis(data){
        selAlarmDayAveragePro(data).then(res =>{
          var that = this;
          var time  = this.dateTime;
          var count = res.data.data[0]+res.data.data[1]+res.data.data[2]+res.data.data[3];
          that.alarmTypeProStatis.data = [
            {
                click: function (item) {
                  var data = [];
                  data.push({
                    startTime:time[0],
                    endTime:time[1],
                    waringType:'紧急求救',
                  })
                  window.parent.handleStartAlarm(data);
                },
                title:'一键求助',
                color:'#FF9836',
@@ -513,6 +677,13 @@
            },
            {
                click: function (item) {
                  var data = [];
                  data.push({
                    startTime:time[0],
                    endTime:time[1],
                    decisioDiagramResult:"contraband"
                  });
                  window.parent.handleStartParcelKind(data);
                },
                title:'违禁品',
                color:'#3fa1ff',
@@ -521,6 +692,13 @@
            },
            {
                click: function (item) {
                  var data = [];
                  data.push({
                    startTime:time[0],
                    endTime:time[1],
                    type:3
                  });
                  window.parent.handleStartHealthcode(data);
                },
                title:'红色健康码',
                color:'#F34A4A',
@@ -529,6 +707,13 @@
            },
            {
                click: function (item) {
                  var data = [];
                  data.push({
                    startTime:time[0],
                    endTime:time[1],
                    status:1
                  });
                  window.parent.handleStartAnimalHeat(data);
                },
                title:'体温异常',
                color:'#8058A5',
@@ -574,13 +759,6 @@
                      label: {
                          show: false,
                          position: 'center'
                      },
                      emphasis: {
                          label: {
                              show: true,
                              fontSize: '18',
                              fontWeight: 'bold'
                          }
                      },
                      labelLine: {
                          show: false
@@ -640,8 +818,23 @@
      getConfirmTimeProEcharts(data){
        selConfirmTimePro(data).then(res =>{
          var data = res.data.data;
          var that =this;
          //计算总数
          that.confirmTimeTotal = data[0]+data[1]+data[2]+data[3];
          var time = this.dateTime;
          let echarts = require('echarts');
          let myChart = echarts.init(document.getElementById('confirmTimeProEcharts'));
          //饼图点击事件
          myChart.on('click',function(params){
              var data = [];
              data.push({
                    startTime:time[0],
                    endTime:time[1],
                    waringType:'紧急求救',
                    timeDesc: params.name
              })
              window.parent.handleStartAlarm(data);
          })
          var colors = ['green','#3fa1ff','yellow','#F34A4A']
          let option = {
              color:colors,
@@ -676,13 +869,6 @@
                          show: false,
                          position: 'center'
                      },
                      emphasis: {
                          label: {
                              show: true,
                              fontSize: '18',
                              fontWeight: 'bold'
                          }
                      },
                      labelLine: {
                          show: false
                      },
@@ -705,10 +891,19 @@
      getConfirmTimeProStatis(data){
        selConfirmTimePro(data).then(res =>{
          var data = res.data.data;
          var time = this.dateTime;
          var that = this;
          that.confirmTimeProStatis.data = [
              {
                  click: function (item) {
                    var data = [];
                    data.push({
                          startTime:time[0],
                          endTime:time[1],
                          waringType:'紧急求救',
                          timeDesc: '小于5分钟'
                    })
                    window.parent.handleStartAlarm(data);
                  },
                  title:'小于5分钟',
                  color:'green',
@@ -717,6 +912,14 @@
              },
              {
                  click: function (item) {
                    var data = [];
                    data.push({
                          startTime:time[0],
                          endTime:time[1],
                          waringType:'紧急求救',
                          timeDesc: '5-10分钟'
                    })
                    window.parent.handleStartAlarm(data);
                  },
                  title:'5-10分钟',
                  color:'#3fa1ff',
@@ -724,6 +927,14 @@
              },
              {
                  click: function (item) {
                    var data = [];
                    data.push({
                          startTime:time[0],
                          endTime:time[1],
                          waringType:'紧急求救',
                          timeDesc: '10-30分钟'
                    })
                    window.parent.handleStartAlarm(data);
                  },
                  title:'10-30分钟',
                  color:'yellow',
@@ -731,6 +942,14 @@
              },
              {
                  click: function (item) {
                    var data = [];
                    data.push({
                          startTime:time[0],
                          endTime:time[1],
                          waringType:'紧急求救',
                          timeDesc: '30分钟以上'
                    })
                    window.parent.handleStartAlarm(data);
                  },
                  title:'30分钟以上',
                  color:'#F34A4A',
@@ -740,7 +959,7 @@
        })
      },
 
      //预警平均速度排行(table)
      //预警平均确认速度排行(table)
      confirmAverageSpeedStatis(data){
          var that = this;
          that.confirmAverageSpeedData=[
@@ -750,7 +969,7 @@
              }
          ];
          that.confirmAverageSpeedOption={
              title:'表格的标题',
              title:'预警平均确认速度排行',
              titleSize:'h3',
              titleStyle:{
                color:'red'
@@ -776,8 +995,53 @@
      getAlarmTimeDisEchars(data){
        selAlarmTimeDis(data).then(res =>{
          var data = res.data;
          var time = this.dateTime;
          let echarts = require('echarts');
          let myChart = echarts.init(document.getElementById('alarmTimeDisEchars'));
          //图表数据点击事件
          myChart.on('click', function (params) {
            var data = [];
            if(params.seriesName=='一键求助'){
              window.parent.handleStartAlarm(data);
              data.push({
                    startTime:time[0],
                    endTime:time[1],
                    waringType:'紧急求救',
                    timeDesc: params.name
              })
              window.parent.handleStartAlarm(data);
            }
            if(params.seriesName=='违禁品'){
              data.push({
                startTime:time[0],
                endTime:time[1],
                decisioDiagramResult:"contraband",
                timeDesc: params.name
              });
              window.parent.handleStartParcelKind(data);
            }
            if(params.seriesName=='红色健康码'){
              data.push({
                startTime:time[0],
                endTime:time[1],
                type:3,
                timeDesc: params.name
              });
              window.parent.handleStartHealthcode(data);
            }
            if(params.seriesName=='体温异常'){
              data.push({
                startTime:time[0],
                endTime:time[1],
                status:1,
                timeDesc: params.name
              });
              window.parent.handleStartAnimalHeat(data);
            }
          })
          var colors = ['#FF9836', '#1E90FF', '#F34A4A', '#8058A5'];
          let option = {
              color: colors,
@@ -833,25 +1097,21 @@
                  {
                      name: '一键求助',
                      type: 'line',
                      stack: '总量',
                      data: data.data.alarmTimeDis
                  },
                  {
                      name: '违禁品',
                      type: 'line',
                      stack: '总量',
                      data: data.data.parcelTimeDis
                  },
                  {
                      name: '红色健康码',
                      type: 'line',
                      stack: '总量',
                      data: data.data.healthcodeTimeDis
                  },
                  {
                      name: '体温异常',
                      type: 'line',
                      stack: '总量',
                      data: data.data.animalTimeDis
                  }
              ]
@@ -871,6 +1131,7 @@
          this.getStatisData(data);
      },
 
      //调用方法,获取统计数据
      getStatisData(data){
          //统计预警总数
          this.getStatisTotalData(data);
@@ -907,7 +1168,7 @@
          return  days;
      },
 
      //计算时间
      getDate(date){
        var that = this;
          var today = new Date();
src/views/animalHeat/animalHeat.vue
@@ -274,6 +274,15 @@
            ...this.query,
          };
        }
        if (this.$route.query.timeDesc) {
          values = {
            ...params,
            timeDesc: this.$route.query.timeDesc,
            ...this.query,
          };
        }
        this.loading = true;
        getList(page.currentPage, page.pageSize, values).then(res => {
          const data = res.data.data;
src/views/healthcode/healthcode.vue
@@ -191,7 +191,7 @@
        recorder: null,
      };
    },
    mounted:{
    mounted(){
    },
    computed: {
@@ -251,7 +251,7 @@
      getHealthcodeType(){
          if (this.$route.query.type != undefined) {
              var type = this.$route.query.type+"";
              this.$route.query = {};
              //this.$route.query = {};
              return type;
          }
      },
@@ -316,6 +316,14 @@
          };
        }
        if (this.$route.query.timeDesc) {
          values = {
            ...params,
            timeDesc: this.$route.query.timeDesc,
            ...this.query,
          };
        }
        this.loading = true;
        getList(page.currentPage, page.pageSize,values).then(res => {
          const data = res.data.data;
src/views/parcel/parcelKind.vue
@@ -283,6 +283,14 @@
          };
        }
        if (this.$route.query.timeDesc) {
          values = {
            ...params,
            timeDesc: this.$route.query.timeDesc,
            ...this.query,
          };
        }
        this.loading = true;
        getKindList(page.currentPage, page.pageSize,values).then(res => {
          const data = res.data.data;
src/views/realTimePolice/real.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-03-17 15:21:33
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-04-07 17:36:33
 * @Last Modified time: 2021-04-09 09:59:32
 */
<template>
  <basic-container>
@@ -894,6 +894,14 @@
        };
      }
      if (this.$route.query.timeDesc) {
        values = {
          ...params,
          timeDesc: this.$route.query.timeDesc,
          ...this.query,
        };
      }
      this.loading = true;
      getList(page.currentPage, page.pageSize, values).then((res) => {
        const data = res.data.data;
@@ -1137,13 +1145,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.onLoad(that.page, that.query);
          that.$router.push({
src/views/supervisoryConsole/card.vue
@@ -7,12 +7,17 @@
          v-model="inputSearchValue"
          class="input-with-select"
        >
          <el-button slot="append" icon="el-icon-search"></el-button>
          <el-button
            slot="append"
            icon="el-icon-search"
            @click.stop="inputSearchBtn"
          ></el-button>
        </el-input>
      </div>
      <div class="radio">
        <el-radio-group v-model="radio" @change="siteStatus">
          <el-radio label="仅显示设备在线">仅显示设备在线</el-radio>
          <el-radio label="全部">全部</el-radio>
          <el-radio label="仅显示预警设备">仅显示预警设备</el-radio>
          <el-radio label="仅显示设备掉线">仅显示设备掉线</el-radio>
          <el-radio label="仅显示设备故障">仅显示设备故障</el-radio>
        </el-radio-group>
@@ -85,7 +90,7 @@
      option: [],
      count: [],
      loading: false,
      radio: "仅显示设备在线",
      radio: "全部",
      inputSearchValue: "",
    };
  },
@@ -98,30 +103,7 @@
    },
  },
  created() {
    getList().then((res) => {
      var a = [],
        b = [],
        c = [];
      res.data.data.forEach((item) => {
        if (item.state != "") a.push(item);
        if (item.state == "" && item.onlineStatus != 1) b.push(item);
        if (item.state == "" && item.onlineStatus == 1) c.push(item);
      });
      var d = a.concat(c.concat(b));
      d.forEach((item) => {
        this.count.push(item);
      });
      this.option = [];
      for (var i = 0; i <= 24; i++) {
        if (this.count.length > 0) {
          this.option.push(this.count[0]);
          this.count.shift();
        }
      }
    });
    this.getEquipmentLists();
  },
  methods: {
src/views/supervisoryConsole/data.vue
@@ -168,6 +168,7 @@
    var that = this;
    getList().then((res) => {
      res.data.data.forEach((item) => {
        if (item.waringType == "紧急求救") {
        that.tableData.push({
          waringType:
            item.waringType == "紧急求救" ? "一键求助" : item.waringType,
@@ -176,9 +177,14 @@
          onePhone: item.onePhone,
          galarmPeople: item.galarmPeople,
          jtype:
            item.jtype == 0 ? "未处理" : item.jtype == 1 ? "处理中" : "已处理",
              item.jtype == 0
                ? "未处理"
                : item.jtype == 1
                ? "处理中"
                : "已处理",
          alarmPeople: item.alarmPeople,
        });
        }
      });
    });
@@ -531,7 +537,7 @@
            background-color: #29c093;
          }
          &:nth-child(3)::before {
            background-color: #F48F57;
            background-color: #f48f57;
          }
          &:nth-child(4)::before {
            background-color: #dfdfdf;
@@ -592,8 +598,8 @@
            color: #29c194;
          }
          .active-list:nth-child(2) > div:nth-child(1) span {
            border: 1px solid #F48F57;
            color: #F48F57;
            border: 1px solid #f48f57;
            color: #f48f57;
          }
          .active-list:nth-child(1) > div:nth-child(1) span:hover {
            background: rgba(41, 192, 147, 0.15);
@@ -605,7 +611,7 @@
            color: #29c194;
          }
          .active-list:nth-child(2) > div:nth-child(2) span {
            color: #F48F57;
            color: #f48f57;
          }
        }
        .info-active-top,