dedsudiyu 1 天之前
父節點
當前提交
3ede2e878a
共有 3 個文件被更改,包括 2397 次插入11 次删除
  1. 303 0
      src/api/screen.js
  2. 2067 0
      src/components/planAlarm/emergency.vue
  3. 27 11
      src/components/planAlarm/planAlarm.vue

+ 303 - 0
src/api/screen.js

@@ -0,0 +1,303 @@
+import request from '@/utils/request'
+
+/**
+ * 1. 实验室基本情况统计 & 安全分级统计
+ * GET /laboratory/labScreen/labBasicStatistics
+ */
+export function getLabBasicStatistics() {
+  return request({
+    url: '/laboratory/labScreen/labBasicStatistics',
+    method: 'get'
+  })
+}
+
+/**
+ * 2. 实验室进入人数统计及走势(24小时)
+ * GET /laboratory/labScreen/passOutTrend
+ */
+export function getPassOutTrend() {
+  return request({
+    url: '/laboratory/labScreen/passOutTrend',
+    method: 'get'
+  })
+}
+
+/**
+ * 3. 实验环境安全实时监测(分页)
+ * GET /laboratory/labScreen/envMonitor
+ */
+export function getEnvMonitor(params = { page: 1, pageSize: 10 }) {
+  return request({
+    url: '/laboratory/labScreen/envMonitor',
+    method: 'get',
+    params
+  })
+}
+
+/**
+ * 4. 实验室实时风险预警
+ * GET /laboratory/labScreen/riskWarning
+ */
+export function getRiskWarning() {
+  return request({
+    url: '/laboratory/labScreen/riskWarning',
+    method: 'get'
+  })
+}
+
+/**
+ * 5. 智能环境感知应用设备统计
+ * GET /laboratory/labScreen/iotDeviceStatistics
+ */
+export function getIotDeviceStatistics() {
+  return request({
+    url: '/laboratory/labScreen/iotDeviceStatistics',
+    method: 'get'
+  })
+}
+
+/**
+ * 6. 实验室设备分类及使用统计
+ * GET /laboratory/labScreen/deviceCategoryStat
+ */
+export function getDeviceCategoryStat() {
+  return request({
+    url: '/laboratory/labScreen/deviceCategoryStat',
+    method: 'get'
+  })
+}
+
+/**
+ * 7. 风险预警 - 触发预案信息查询
+ * GET /laboratory/labScreen/selectTriggerInfo
+ */
+export function selectTriggerInfo() {
+  return request({
+    url: '/laboratory/labScreen/selectTriggerInfo',
+    method: 'get'
+  })
+}
+
+/**
+ * 11. 耗材相关二级学院下拉列表
+ * POST /laboratory/labScreen/deptDropList
+ */
+export function getDeptDropList(data = {}) {
+  return request({
+    url: '/laboratory/labScreen/deptDropList',
+    method: 'post',
+    data
+  })
+}
+
+/**
+ * 12. 根据条件查询楼道实验室信息
+ * POST /laboratory/labScreen/rooms
+ */
+export function getRooms(data = {}) {
+  return request({
+    url: '/laboratory/labScreen/rooms',
+    method: 'post',
+    data
+  })
+}
+
+/**
+ * 13. 实验室分级配置列表
+ * POST /laboratory/labScreen/getLevelTitleList
+ */
+export function getLevelTitleList() {
+  return request({
+    url: '/laboratory/labScreen/getLevelTitleList',
+    method: 'post',
+    data: {}
+  })
+}
+
+/**
+ * 14. 获取摄像头播放地址
+ * GET /laboratory/labScreen/getPreviewURLs
+ */
+export function getPreviewURLs(params) {
+  return request({
+    url: '/laboratory/labScreen/getPreviewURLs',
+    method: 'get',
+    params
+  })
+}
+
+/**
+ * 8. 实时监控 - 楼栋楼层树
+ * POST /laboratory/labScreen/monitorTree
+ */
+export function getMonitorTree(data = {}) {
+  return request({
+    url: '/laboratory/labScreen/monitorTree',
+    method: 'post',
+    data
+  })
+}
+
+/**
+ * 9. 实时监控 - 摄像头流地址
+ * POST /iot/camera/large/findByCondition
+ */
+export function getCameraStream(data) {
+  return request({
+    url: '/iot/camera/large/findByCondition',
+    method: 'post',
+    data
+  })
+}
+
+/**
+ * getCameraList - 兼容 SecurityMonitor 组件,获取摄像头列表名称
+ * 复用 cameraStream,返回设备名列表
+ */
+export function getCameraList(data = {}) {
+  return request({
+    url: '/iot/camera/large/findByCondition',
+    method: 'post',
+    data
+  })
+}
+
+/**
+ * 10. 大屏天气及服务器时间
+ * GET /laboratory/labScreen/weather
+ */
+export function getWeather() {
+  return request({
+    url: '/laboratory/labScreen/weather',
+    method: 'get'
+  })
+}
+
+/**
+ * 11. 根据设备ID查询视频流
+ * GET /iot/camera/getPreviewURLs
+ */
+export function iotCameraGetPreviewURLs(params) {
+  return request({
+    url: '/iot/camera/getPreviewURLs',
+    method: 'get',
+    params
+  })
+}
+
+//应急处置-获取楼层布局数据
+export function laboratoryBigViewGetFloorByBigView(params) {
+  return request({
+    url: '/laboratory/bigView/getFloorByBigView',
+    method: 'get',
+    params
+  })
+}
+//应急处置-查询当前正在发生的预案
+export function laboratoryBigViewSelectTriggerInfo(params) {
+  return request({
+    url: '/laboratory/bigView/selectTriggerInfo',
+    method: 'get',
+    params
+  })
+}
+//应急处置-获取当前楼栋-楼层下的疏散数据
+export function laboratoryExitLineGetRedisEvacuation(data = {}) {
+  return request({
+    url: '/laboratory/exitLine/getRedisEvacuation',
+    method: 'post',
+    data
+  })
+}
+
+//获取摄像头流地址
+export function iotCameraFindByCondition(data = {}) {
+  return request({
+    url: '/iot/camera/findByCondition',
+    method: 'post',
+    data
+  })
+}
+//应急处置-查询实验室传感器列表
+export function iotBigViewDeviceFindBySubId(params) {
+  return request({
+    url: '/iot/bigView/device/findBySubId',
+    method: 'get',
+    params
+  })
+}
+
+//应急处置-查询实验室喇叭列表
+export function iotBigViewDeviceFindByType(data = {}) {
+  return request({
+    url: '/iot/bigView/device/findByType',
+    method: 'post',
+    data
+  })
+}
+//应急处置-结束预案
+export function laboratoryPlanCloseRiskPlan(params) {
+  return request({
+    url: '/laboratory/plan/closeRiskPlan',
+    method: 'get',
+    params
+  })
+}
+//应急处置-结束疏散
+export function laboratoryExitLineEndEvacuation(data = {}) {
+  return request({
+    url: '/laboratory/exitLine/endEvacuation',
+    method: 'post',
+    data
+  })
+}
+//应急处置-开灯
+export function laboratoryExitRelayOpenLight(data = {}) {
+  return request({
+    url: '/laboratory/exitRelay/openLight',
+    method: 'post',
+    data
+  })
+}
+//应急处置-关灯
+export function laboratoryExitRelayCloseLight(data = {}) {
+  return request({
+    url: '/laboratory/exitRelay/closeLight',
+    method: 'post',
+    data
+  })
+}
+//应急处置-执行疏散
+export function laboratoryExitLineExecuteEvacuation(data = {}) {
+  return request({
+    url: '/laboratory/exitLine/executeEvacuation',
+    method: 'post',
+    data
+  })
+}
+//应急处置-喇叭播放文本
+export function iotBigViewSpeakerPlayText(params) {
+  return request({
+    url: '/iot/bigView/speaker/playText',
+    method: 'get',
+    params
+  })
+}
+
+// 化学品库存动态统计
+export function getChemicalStockSummary() {
+  return request({
+    url: '/chemical/stock/stockSummary',
+    method: 'get'
+  })
+}
+
+//查询视频配置
+export function laboratoryLabScreenScreenConfigGet(params) {
+  return request({
+    url: '/laboratory/labScreen/screenConfig/get',
+    method: 'get',
+    params
+  })
+}
+

File diff suppressed because it is too large
+ 2067 - 0
src/components/planAlarm/emergency.vue


+ 27 - 11
src/components/planAlarm/planAlarm.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="planAlarm">
     <div class="planAlarmBlack" v-if="showType">
-      <div class="planAlarm-max-big-box">
+      <div class="planAlarm-max-big-box" v-if="pageType == 1">
         <div class="planAlarm-title-box">
           <div class="top-img-box">
             <img class="top-img-one vibrate" src="@/assets/ZDimages/icon_bt_yso@1x.png">
@@ -114,15 +114,15 @@
                 <p>{{item.deviceName}}</p>
               </div>
             </div>
-            <div class="planAlarm-img-box">
-              <p class="img-title-p">报警抓拍</p>
-              <!--<div class="for-max-box" v-if="imgList[0]">-->
-              <div class="for-max-box">
-                <img :src="item" @click="lookImgButton(true,item)"
-                     v-for="(item,index) in photographList" :key="index">
-              </div>
-              <p class="img-null-p" v-if="!photographList[0]">无抓拍照片</p>
-            </div>
+            <!--<div class="planAlarm-img-box">-->
+              <!--<p class="img-title-p">报警抓拍</p>-->
+              <!--&lt;!&ndash;<div class="for-max-box" v-if="imgList[0]">&ndash;&gt;-->
+              <!--<div class="for-max-box">-->
+                <!--<img :src="item" @click="lookImgButton(true,item)"-->
+                     <!--v-for="(item,index) in photographList" :key="index">-->
+              <!--</div>-->
+              <!--<p class="img-null-p" v-if="!photographList[0]">无抓拍照片</p>-->
+            <!--</div>-->
           </div>
         </div>
         <div v-if="lookImgType" class="planAlarm-big-box">
@@ -132,9 +132,14 @@
           <p class="null-p"></p>
           <p class="button-out-p" @click="outPlan">关闭</p>
           <p class="button-finish-p" v-if="!lookImgType" @click="overPlan">结束预案</p>
+          <p class="button-finish-p" v-if="!lookImgType" @click="checkPageType(2)">应急疏散</p>
           <p class="null-p"></p>
         </div>
       </div>
+      <emergency
+        v-if="pageType == 2"
+        :alarmData="alarmData"
+      />
     </div>
     <fullH5PlayerVideo v-if="fullVideoType" :fullVideoProps="fullVideoProps"></fullH5PlayerVideo>
   </div>
@@ -154,13 +159,15 @@
   import mpegtsVideo from '@/components/mpegtsVideo/mpegtsVideo.vue'
   import H5PlayerVideo from '@/components/H5PlayerVideo/H5PlayerVideo.vue';
   import fullH5PlayerVideo from '@/components/fullH5PlayerVideo/fullH5PlayerVideo.vue'
+  import emergency from './emergency.vue'
 
   export default {
     name: 'planAlarm',
     components: {
       mpegtsVideo,
       H5PlayerVideo,
-      fullH5PlayerVideo
+      fullH5PlayerVideo,
+      emergency
     },
     data () {
       return {
@@ -205,6 +212,8 @@
         //全屏视频参数
         fullVideoProps:{},
         fullVideoType:false,
+        pageType:1,
+        alarmData:{},
       }
     },
     created(){
@@ -221,6 +230,12 @@
       },500)
     },
     methods:{
+      //切换页面
+      checkPageType(val){
+        if (this.pageType != val){
+          this.$set(this,'pageType',val);
+        }
+      },
       //选中喇叭
       clickLoudspeaker(item){
         if(this.checkLoudspeaker != item.deviceNo){
@@ -400,6 +415,7 @@
         clearInterval(this.timer);
         laboratoryBigViewSelectTriggerInfo().then(response => {
           if(response.data[0]){
+            this.$set(this,'alarmData',response.data[0]);
             let planData = {
               buildId:response.data[response.data.length-1].buildId,
               floorId:response.data[response.data.length-1].floorId,