dedsudiyu %!s(int64=2) %!d(string=hai) anos
pai
achega
c10e48d75f

+ 1 - 0
package.json

@@ -61,6 +61,7 @@
     "screenfull": "5.0.2",
     "sortablejs": "1.10.2",
     "spark-md5": "^3.0.1",
+    "three": "^0.148.0",
     "vue": "2.6.12",
     "vue-count-to": "1.0.13",
     "vue-cropper": "^0.5.5",

+ 33 - 0
src/api/evacuationBigData/index.js

@@ -180,4 +180,37 @@ export function riskPlanId(query) {
     params: query
   })
 }
+//预警首页-获取传感器数据
+export function getLotStatis(query) {
+  return request({
+    url: '/laboratory/buildFloorLayout/getLotStatis',
+    method: 'get',
+    params: query
+  })
+}
+//预警首页-获取传感器数据
+export function exitHazardTotalByBuildId(query) {
+  return request({
+    url: '/laboratory/bigview/exitHazardTotalByBuildId',
+    method: 'get',
+    params: query
+  })
+}
+
+//根据楼栋获取楼层数据(用于应急疏散首页)
+export function getBuildOrFloorDetailList(query) {
+  return request({
+    url: '/laboratory/buildFloor/getBuildOrFloorDetailList',
+    method: 'get',
+    params: query
+  })
+}
+//根据楼栋获取楼栋人数
+export function getBuildOrFloorInfo(query) {
+  return request({
+    url: '/laboratory/buildFloor/getBuildOrFloorInfo',
+    method: 'get',
+    params: query
+  })
+}
 

BIN=BIN
src/assets/ZDimages/bigData3_2/home/icon_dqkz.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/icon_zhpt_rs.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/icon_znjc_bg.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_fcjc.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_hyjc.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_qtjc.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_wsd(1).png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_wsd.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_ytj.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_zcbg.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_znjk.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_znmh.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_znmj.png


BIN=BIN
src/assets/ZDimages/bigData3_2/home/img_zdmh_zntf.png


BIN=BIN
src/assets/ZDimages/bigData3_2/icon_zhpt_rs.png


+ 4 - 0
src/layout/components/AppMain.vue

@@ -176,6 +176,9 @@ export default {
     //执行按钮
     buttonClick(){
       let self = this;
+      if(this.$route.path == '/emergencyManagement/evacuation/newPerformEvacuation'){
+        return
+      }
       const h = this.$createElement;
       this.$msgbox({
         title: '',
@@ -235,6 +238,7 @@ export default {
           //没有火焰预案并且没有查看过
           for(let i=0;i<response.data.length;i++){
             if(response.data[i].riskAttribute != '1'&&response.data[i].ifCheck != '1'){
+              console.log('跳转2',self.$route.path);
               //如果就在应急预案页面责终止跳转
               if(self.$route.path == '/emergencyManagement/evacuation/newPerformEvacuation' || self.$route.path == '/newEvacuationBigData'){
                 return

+ 1 - 1
src/router/index.js

@@ -77,7 +77,7 @@ export const constantRoutes = [
   },
   {
     path: '/newEvacuationBigData',
-    component: (resolve) => require(['@/views/newEvacuationBigData'], resolve),
+    component: (resolve) => require(['@/views/newEvacuationBigPage'], resolve),
     hidden: true
   },
   {

+ 50 - 2
src/views/emergencyManagement/evacuation/emergencyEvacuation/newPerformEvacuation.vue

@@ -1,22 +1,70 @@
 <template>
     <div class="newPerformEvacuation scrollbar-box">
       <div style="position: relative">
-        <emergency-evacuation-big style="transform: scale(0.822);position: absolute;top:50%;left:50%;margin-top:-95px;margin-left:-960px;"></emergency-evacuation-big>
+        <new-evacuation-big-data-home
+          v-if="pageType == 1"
+          style="transform: scale(0.822);position: absolute;top:50%;left:50%;margin-top:-95px;margin-left:-960px;">
+        </new-evacuation-big-data-home>
+        <emergency-evacuation-big
+          v-if="pageType == 2"
+          :propsBigData="propsBigData"
+          style="transform: scale(0.822);position: absolute;top:50%;left:50%;margin-top:-95px;margin-left:-960px;">
+        </emergency-evacuation-big>
       </div>
     </div>
 </template>
 
 <script>
   import emergencyEvacuationBig from "@/views/newEvacuationBigData.vue"
+  import newEvacuationBigDataHome from "@/views/newEvacuationBigDataHome.vue"
   export default {
     name: 'newPerformEvacuation',
     components: {
+      newEvacuationBigDataHome,
       emergencyEvacuationBig,
     },
+    data() {
+      return {
+        pageType:null,
+        propsBigData:null,
+      }
+    },
+    created() {
+      if(this.$route.query.subId){
+        this.$set(this,'pageType',2);
+      }else{
+        this.$set(this,'pageType',1);
+      }
+    },
+    methods:{
+      goPage(type,data){
+        console.log('type',type)
+        console.log('data',data)
+        if(type == 1){
+          if(this.$route.query.buildId){
+            delete this.$route.query.buildId;
+          }
+          if(this.$route.query.subId){
+            delete this.$route.query.subId;
+          }
+          if(this.$route.query.floorId){
+            delete this.$route.query.floorId;
+          }
+          if(this.$route.query.groupId){
+            delete this.$route.query.groupId;
+          }
+          this.$set(this,'propsBigData',null);
+          this.$set(this,'pageType',type);
+        } else if(type == 2){
+          this.$set(this,'propsBigData',data);
+          this.$set(this,'pageType',type);
+        }
+      },
+    },
   }
 </script>
 
-<style scoped>
+<style scoped lang="scss">
   .newPerformEvacuation{
     flex:1;
     display: flex;

+ 56 - 10
src/views/newEvacuationBigData.vue

@@ -1,6 +1,10 @@
 <template>
     <div class="newEvacuationBigData">
-      <div class="evacuation-title-positon-box">风险应急处置指挥平台</div>
+      <div class="evacuation-title-position-box">风险应急处置指挥平台</div>
+      <div class="evacuation-out-button-position-box">
+        <i class="el-icon-switch-button"></i>
+        <p @click="goRoute">{{routeType?'退出全屏':'全屏'}}</p>
+      </div>
       <!--顶部标题-->
       <!--左侧 传感器/硬件/echarts-->
       <div class="left-max-big-box">
@@ -110,7 +114,7 @@
             <p class="text-p">{{subText}}  {{floorText}}</p>
           </el-tooltip>
           <p class="button-p-one" @click="evacuationButton">{{evacuationType?'结束疏散':'立即疏散'}}</p>
-          <p class="button-p-two" @click="goRoute">{{routeType?'返回':'全屏'}}</p>
+          <p class="button-p-two" @click="backButton">返回</p>
         </div>
         <div class="left-big-box-two">
           <div class="newEvacuation-map-max-big-box"
@@ -588,7 +592,18 @@
         }
         this.$set(this,'planDataType',true);
         this.initialization();
-        console.log('有参数',this.$route.query);
+        console.log('跳转传参',this.$route.query);
+      }else if(this.propsBigData.subId){
+        this.$set(this,'buildingId',parseInt(this.propsBigData.buildId));
+        this.$set(this,'floorId',parseInt(this.propsBigData.floorId));
+        this.$set(this,'subId',parseInt(this.propsBigData.subId));
+        this.$set(this,'checkSubId',parseInt(this.propsBigData.subId));
+        if(this.propsBigData.groupId){
+          this.setRiskPlanId(this.propsBigData.groupId);
+        }
+        this.$set(this,'planDataType',true);
+        this.initialization();
+        console.log('父类传参',this.propsBigData);
       }else{
         this.$set(this,'planDataType',false);
         this.initialization();
@@ -636,15 +651,29 @@
           }
         })
       },
+      //返回按钮
+      backButton(){
+        this.$parent.goPage(1);
+      },
       //全屏页面跳转
       goRoute(){
         if(this.routeType){
           this.$router.push({
-            path: "/emergencyManagement/evacuation/newPerformEvacuation"
+            path: "/emergencyManagement/evacuation/newPerformEvacuation",
+            query: {
+              buildId: this.$route.query.buildId?this.$route.query.buildId:(this.propsBigData.buildId?this.propsBigData.buildId:''),
+              floorId:this.$route.query.floorId?this.$route.query.floorId:(this.propsBigData.floorId?this.propsBigData.floorId:''),
+              subId:this.$route.query.subId?this.$route.query.subId:(this.propsBigData.subId?this.propsBigData.subId:''),
+            }
           })
         }else{
           this.$router.push({
-            path: "/newEvacuationBigData"
+            path: "/newEvacuationBigData",
+            query: {
+              buildId: this.$route.query.buildId?this.$route.query.buildId:(this.propsBigData.buildId?this.propsBigData.buildId:''),
+              floorId:this.$route.query.floorId?this.$route.query.floorId:(this.propsBigData.floorId?this.propsBigData.floorId:''),
+              subId:this.$route.query.subId?this.$route.query.subId:(this.propsBigData.subId?this.propsBigData.subId:''),
+            }
           })
         }
       },
@@ -765,11 +794,9 @@
       //实验室视频展开收起开关
       subjectVideoCheckClick(){
         if(this.subjectVideoType){
-          console.log('关闭');
           this.videoOff('subject')
         }else{
           if(this.subjectVideoIds[0]){
-            console.log('开启');
             this.startUrl('subject');
           }else{
             this.msgError('该实验室未配置摄像头')
@@ -1442,7 +1469,7 @@
               // isLive: true, //=> 是否为直播流
               // hasAudio: false, //=> 是否开启声音
               type: 'flv', //媒体类型 flv 或 mp4
-              url: videoList[i].videoUrl, //视频流地址
+              url: videoList[i].videoUrl //视频流地址
             },
             {
               enableStashBuffer: true,//启用 IO 存储缓冲区。 如果您需要实时流播放(最小延迟),请设置为 false,但如果存在网络抖动,则可能会停止。
@@ -2263,7 +2290,7 @@
       //清除定时器
       let self = this;
       self.videoOff('floor');
-      self.videoOff('subject')
+      self.videoOff('subject');
       // self.offAllMQTT();
       self.offFloorMQTT();
       self.offSubMQTT();
@@ -2287,7 +2314,7 @@
     p{
       margin:0;
     }
-    .evacuation-title-positon-box{
+    .evacuation-title-position-box{
       position: absolute;
       top:0;
       /*left:2%;*/
@@ -2304,6 +2331,25 @@
       font-weight:900;
       letter-spacing:10px
     }
+    .evacuation-out-button-position-box{
+      display: flex;
+      position: absolute;
+      top:0;
+      right:0;
+      width:110px;
+      cursor: pointer;
+      i{
+        margin:0 10px;
+        line-height:40px;
+        color:#24D1F9;
+        font-size:18px;
+      }
+      p{
+        line-height:40px;
+        color:#24D1F9;
+        font-size:14px;
+      }
+    }
     .big-title-box{
       width:181px;
       height:59px;

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1561 - 0
src/views/newEvacuationBigDataHome.vue


+ 72 - 0
src/views/newEvacuationBigPage.vue

@@ -0,0 +1,72 @@
+<template>
+    <div class="newEvacuationBigPage">
+      <new-evacuation-big-data-home
+        v-if="pageType == 1">
+      </new-evacuation-big-data-home>
+      <emergency-evacuation-big
+        :propsBigData="propsBigData"
+        v-if="pageType == 2">
+      </emergency-evacuation-big>
+    </div>
+</template>
+
+<script>
+  import emergencyEvacuationBig from "@/views/newEvacuationBigData.vue"
+  import newEvacuationBigDataHome from "@/views/newEvacuationBigDataHome.vue"
+  export default {
+    name: 'newEvacuationBigPage',
+    components: {
+      newEvacuationBigDataHome,
+      emergencyEvacuationBig,
+    },
+    data() {
+      return {
+        pageType:null,
+        propsBigData:null,
+      }
+    },
+    created() {
+      if(this.$route.query.subId){
+        this.$set(this,'pageType',2);
+      }else{
+        this.$set(this,'pageType',1);
+      }
+    },
+    methods:{
+      goPage(type,data){
+        console.log('type',type)
+        console.log('data',data)
+        if(type == 1){
+          if(this.$route.query.buildId){
+            delete this.$route.query.buildId;
+          }
+          if(this.$route.query.subId){
+            delete this.$route.query.subId;
+          }
+          if(this.$route.query.floorId){
+            delete this.$route.query.floorId;
+          }
+          if(this.$route.query.groupId){
+            delete this.$route.query.groupId;
+          }
+          this.$set(this,'propsBigData',null);
+          this.$set(this,'pageType',type);
+        } else if(type == 2){
+          this.$set(this,'propsBigData',data);
+          this.$set(this,'pageType',type);
+        }
+      },
+    },
+  }
+</script>
+
+<style scoped lang="scss">
+  .newPerformEvacuation{
+    flex:1;
+    display: flex;
+    flex-direction: column;
+    margin:5px 20px 20px 10px;
+    box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
+    border-radius:10px;
+  }
+</style>