ming 3 лет назад
Родитель
Сommit
8f6ba1b584
1 измененных файлов с 151 добавлено и 20 удалено
  1. 151 20
      src/views/siteManage/camera/index.vue

+ 151 - 20
src/views/siteManage/camera/index.vue

@@ -35,6 +35,9 @@
     <!-- 筛选end -->
 
     <!-- 表格start -->
+
+    <view v-if="loadingStatus" class="loadingMask">Loading...</view>
+
     <el-table :data="deviceData" border stripe :header-cell-style="headClass">
       <el-table-column prop="status" align="center" label="状态" width="50">
         <template #default="scope">
@@ -123,7 +126,7 @@
 
       <el-table-column fixed="right" label="视频画面" width="100">
         <template #default="scope">
-          <a @click="checkVideo(scope.row)">查看</a>
+          <a @click="open_video(scope.row)">查看</a>
         </template>
       </el-table-column>
     </el-table>
@@ -204,6 +207,9 @@ export default defineComponent({
 
     const onLineVideoList = ref([])
     const openId = ref('')
+    const reCount = ref(0)
+    const count = ref(0)
+    const loadingStatus = ref(false)
 
     // 表头样式设置
     const headClass = () => {
@@ -272,21 +278,22 @@ export default defineComponent({
     }
 
     // 查看视频
-    const checkVideo = () => {
-      tableItem.value = {
-        id: '',
-        stationName: '',
-        watchName: '',
-        watchCode: '',
-        siteList: [],
-        done: '',
-        guaZai: '',
-        checked: true,
-        resource: '',
-      }
-      dialogTitle.value = '查看视频'
-      showDialog2.value = true
-    }
+    // const open_video = (params) => {
+    //   params
+    //   tableItem.value = {
+    //     id: '',
+    //     stationName: '',
+    //     watchName: '',
+    //     watchCode: '',
+    //     siteList: [],
+    //     done: '',
+    //     guaZai: '',
+    //     checked: true,
+    //     resource: '',
+    //   }
+    //   dialogTitle.value = '查看视频'
+    //   showDialog2.value = true
+    // }
 
     // 关闭操作
     const closeDialog = () => {
@@ -381,7 +388,46 @@ export default defineComponent({
           onLineVideoList.value = response.data.RESULT.LIST
 
           if (openId.value.length > 0) {
-            alert(1)
+            // start
+            console.log('doododododododo')
+            for (var n = 0; n < onLineVideoList.value.length; n++) {
+              if (openId.value == onLineVideoList.value[n].DEVICE) {
+               
+                reCount.value++
+                if (onLineVideoList.value[n].ONAIR) {
+                  if (count.value > 2) {
+                    // var mask = document.getElementById('videomask');
+                    // if (mask != undefined) {
+                    // 	removeDIV('videomask');
+                    // }
+                    loadingStatus.value = false
+                    alert('可以打开视频详情并传参')
+                    // uni.navigateTo({
+                    // 	url: '/pages/videoDetail/videoDetail?deviceType=2&companyCode=' +
+                    // 		this.companyCode + '&deviceCode=' +
+                    // 		onLineVideoList.value[n].DEVICE +
+                    // 		'',
+                    // });
+                  } else {
+                    setTimeout(chk_video(), 5000)
+                  }
+                } else {
+                  if (reCount.value > 7) {
+                    // var mask = document.getElementById('videomask');
+                    // if (mask != undefined) {
+                    // 	removeDIV('videomask');
+                    // }
+                    loadingStatus.value = false
+                    alert('远程摄像头链接超时,请稍后再试')
+
+                    // $("#myPopup").popup("open");
+                    break
+                  }
+                  setTimeout(chk_video(), 5000)
+                }
+              }
+            }
+            // end
           } else {
             for (var i = 0; i < onLineVideoList.value.length; i++) {
               for (var j = 0; j < deviceData.value.length; j++) {
@@ -394,8 +440,8 @@ export default defineComponent({
                 }
               }
             }
-            console.log('处理后的,deviceData.value')
-            console.log(deviceData.value)
+            // console.log('处理后的,deviceData.value')
+            // console.log(deviceData.value)
           }
         })
         .catch((error) => {
@@ -403,6 +449,82 @@ export default defineComponent({
         })
     }
 
+    // 查看视频
+    const open_video = (item) => {
+      console.log(item)
+      // start
+
+      if (openId.value != item.deviceCode) {
+        openId.value = item.deviceCode
+      }
+      console.log(onLineVideoList.value)
+      for (var n = 0; n < onLineVideoList.value.length; n++) {
+      
+        if (onLineVideoList.value[n].DEVICE == openId.value) {
+          if (onLineVideoList.value[n].ONAIR) {
+            // uni.navigateTo({
+            //   url:
+            //     '/pages/videoDetail/videoDetail?deviceType=2&companyCode=' +
+            //     this.companyCode +
+            //     '&deviceCode=' +
+            //     item.DEVICE +
+            //     '',
+            // })
+            alert('打开详情页并传参')
+            tableItem.value = {
+              id: '',
+              stationName: '',
+              watchName: '',
+              watchCode: '',
+              siteList: [],
+              done: '',
+              guaZai: '',
+              checked: true,
+              resource: '',
+            }
+            dialogTitle.value = '查看视频'
+            showDialog2.value = true
+            return
+          }
+        }
+      }
+      count.value = 0
+      reCount.value = 0
+      loadingStatus.value = true
+      // alert('一些loading操作')
+      alert('操作打开')
+
+      axios
+        .post(
+          'https://fire.usky.cn:8443/YtIoT/cgi-bin/demo2.cgi',
+          'queryJson:' +
+            JSON.stringify({
+              CMD: 3,
+              BODY: {
+                DEVICE: item.DEVICE,
+                ACTION: 1,
+                IDX: 7,
+              },
+            }),
+          {
+            headers: {
+              'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
+            },
+          }
+        )
+        .then((response) => {
+          response
+         
+          setTimeout(function () {
+             alert('再次打开摄像头')
+            chk_video()
+            // console.log('打印')
+          }, 5000)
+        })
+
+      // end
+    }
+
     // window.setInterval(() => {
     //   setTimeout(() => {
     //     chk_video()
@@ -418,6 +540,9 @@ export default defineComponent({
         labelCom.value = store.state.siteManageLabelCom
         if (props.activeName == 'five') {
           videoMonitoringDeviceList()
+          // setTimeout(function () {
+            
+          // }, 100)
           chk_video()
         }
       }
@@ -427,6 +552,9 @@ export default defineComponent({
       (newVal) => {
         if (newVal == 'five') {
           videoMonitoringDeviceList()
+          // setTimeout(function () {
+            
+          // }, 100)
           chk_video()
         }
       }
@@ -456,7 +584,6 @@ export default defineComponent({
       headClass,
       addItem,
 
-      checkVideo,
       editRow,
       closeDialog,
       handleDelete,
@@ -476,6 +603,10 @@ export default defineComponent({
 
       openId,
       onLineVideoList,
+      reCount,
+      count,
+      loadingStatus,
+      open_video,
     }
   },
 })