Bläddra i källkod

websocket bug修复

王通 1 år sedan
förälder
incheckning
58af6fc315
4 ändrade filer med 185 tillägg och 117 borttagningar
  1. 127 93
      src/components/TVWall.vue
  2. 35 18
      src/dahua/TVWalllib/DHWs.js
  3. 1 1
      src/dahua/TVWalllib/main.ts
  4. 22 5
      src/dahua/lib/DHWs.js

+ 127 - 93
src/components/TVWall.vue

@@ -38,7 +38,7 @@ import { tvCameraList } from '@/api/haikang/haikang'
 import DHWs from '@/dahua/lib/DHWs'
 import { rotation } from '@/api/monitor'
 import Cookies from "js-cookie"
-
+import {selectConfigKey} from "@/api/system/config";
 /** ----------------------------------摄像头预览结束------------------------------------- */
 export default {
   dicts: ['event_source'],
@@ -286,79 +286,96 @@ export default {
     },
     //火点联动电视墙调用
     showTVWall1(longitude,latitude,tvListJson) {
-
-      // let that=this;
-      /** ----------------------------------大华摄像头预览开始------------------------------------- */
-      this.ws.addEventListener('connectStateChange', data => {
-        if (data) {
-          console.log('连接成功')
-        } else {
-          console.log('连接失败,下载客户端')
-          this.alertReinstall()
-        }
-      })
-      getDahuaVideoServer().then(newResponse => {
-        this.ws.detectConnectQt().then(res => {
-          if (res) { // 连接客户端成功
-            this.alertLogin()
-            this.ws.login({
-              loginIp: newResponse.loginIp,
-              loginPort: newResponse.loginPort,
-              userName: newResponse.userName,
-              userPwd: newResponse.userPwd,
-              // loginIp: '192.168.100.100',
-              // loginPort: 8314,
-              // userName: 'system',
-              // userPwd: 'Admin@123',
-              token: '',
-              https: 1
-            })
-            this.ws.on('loginState', (res) => {
-              this.isLogin = res
-              console.log('---res-----', res)
-              if (res) {
-                this.alertLoginSuccess()
-                this.activePanel = 'key2'
-                console.log(tvListJson)
-                const array=[]
-                const array1=[]
-                if (tvListJson!=null)
-                {
-                  tvListJson[0].treeLabels.forEach((item,index)=>
-                  {
-                    if (index!=0)
+      selectConfigKey("DssVersion").then(res => {
+        if(this.ws.getLocalDssVersion()!=res.data){
+          this.$modal.confirm('系统检测到新客户端版本,请更新后使用', '系统提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning'
+            }
+          ).then(() => {
+            window.open("https://pan.baidu.com/s/1MlWyhFw6pEYiaLvzsje-BA?pwd=3jps");
+          }).catch(() => {
+            return
+          });
+          return
+        }else{
+// let that=this;
+          /** ----------------------------------大华摄像头预览开始------------------------------------- */
+          this.ws.addEventListener('connectStateChange', data => {
+            if (data) {
+              console.log('连接成功')
+            } else {
+              console.log('连接失败,下载客户端')
+              this.alertReinstall()
+            }
+          })
+          getDahuaVideoServer().then(newResponse => {
+            this.ws.detectConnectQt().then(res => {
+              if (res) { // 连接客户端成功
+                this.alertLogin()
+                this.ws.login({
+                  loginIp: newResponse.loginIp,
+                  loginPort: newResponse.loginPort,
+                  userName: newResponse.userName,
+                  userPwd: newResponse.userPwd,
+                  // loginIp: '192.168.100.100',
+                  // loginPort: 8314,
+                  // userName: 'system',
+                  // userPwd: 'Admin@123',
+                  token: '',
+                  https: 1
+                })
+                this.ws.on('loginState', (res) => {
+                  this.isLogin = res
+                  console.log('---res-----', res)
+                  if (res) {
+                    this.alertLoginSuccess()
+                    this.activePanel = 'key2'
+                    console.log(tvListJson)
+                    const array=[]
+                    const array1=[]
+                    if (tvListJson!=null)
                     {
-                      const param =Object.assign({})
-                      param.channelId=item.labelCode
-                      array.push(param)
-                      array1.push(item.labelCode)
+                      tvListJson[0].treeLabels.forEach((item,index)=>
+                      {
+                        if (index!=0)
+                        {
+                          const param =Object.assign({})
+                          param.channelId=item.labelCode
+                          array.push(param)
+                          array1.push(item.labelCode)
+                        }
+
+                      })
                     }
-
-                  })
-                }
-                this.create1(longitude,latitude,tvListJson,array,array1)
-                // var obj=JSON.parse(tvListJson)
-              } else {
-                this.alertLoginFailed()
+                    this.create1(longitude,latitude,tvListJson,array,array1)
+                    // var obj=JSON.parse(tvListJson)
+                  } else {
+                    this.alertLoginFailed()
+                  }
+                })
+              } else { // 连接客户端失败
+                this.alertReinstall()
               }
             })
-          } else { // 连接客户端失败
-            this.alertReinstall()
-          }
-        })
 
+          })
+          /** ----------------------------------大华摄像头预览结束------------------------------------- */
+          /** ----------------------------------海康摄像头预览开始------------------------------------- */
+          // tvCameraList().then(response => {
+          //   this.cameraList=response.data
+          // })
+          // that.initPlugin()
+          // setTimeout(function() {
+          //   that.playhk();
+          // }, 5000)
+          // /** ----------------------------------海康摄像头预览结束------------------------------------- */
+          this.TVWallVisible = true
+        }
       })
-      /** ----------------------------------大华摄像头预览结束------------------------------------- */
-      /** ----------------------------------海康摄像头预览开始------------------------------------- */
-      // tvCameraList().then(response => {
-      //   this.cameraList=response.data
-      // })
-      // that.initPlugin()
-      // setTimeout(function() {
-      //   that.playhk();
-      // }, 5000)
-      // /** ----------------------------------海康摄像头预览结束------------------------------------- */
-      this.TVWallVisible = true
+
+
 
     },
     create1(longitude,latitude,tvListJson,array,array1) { // 调用创建控件接口
@@ -408,33 +425,50 @@ export default {
       })
     },
     showTVWall(tvListJson,bfArray) {
-      if(tvListJson){
-        this.preview(tvListJson,bfArray);
-        this.TVWallVisible = true;
-        return;
-      }
-      // let that=this;
-      /** ----------------------------------大华摄像头预览开始------------------------------------- */
-      this.ws.addEventListener('connectStateChange', data => {
-        if (data) {
-          console.log('连接成功')
-        } else {
-          console.log('连接失败,下载客户端')
-          this.alertReinstall()
+      selectConfigKey("DssVersion").then(res => {
+        if(this.ws.getLocalDssVersion()!=res.data){
+          this.$modal.confirm('系统检测到新客户端版本,请更新后使用', '系统提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning'
+            }
+          ).then(() => {
+            window.open("https://pan.baidu.com/s/1MlWyhFw6pEYiaLvzsje-BA?pwd=3jps");
+          }).catch(() => {
+            return
+          });
+          return
+        }else{
+          if(tvListJson){
+            this.preview(tvListJson,bfArray);
+            this.TVWallVisible = true;
+            return;
+          }
+          // let that=this;
+          /** ----------------------------------大华摄像头预览开始------------------------------------- */
+          this.ws.addEventListener('connectStateChange', data => {
+            if (data) {
+              console.log('连接成功')
+            } else {
+              console.log('连接失败,下载客户端')
+              this.alertReinstall()
+            }
+          })
+          this.preview()
+          /** ----------------------------------大华摄像头预览结束------------------------------------- */
+          /** ----------------------------------海康摄像头预览开始------------------------------------- */
+          // tvCameraList().then(response => {
+          //   this.cameraList=response.data
+          // })
+          // that.initPlugin()
+          // setTimeout(function() {
+          //   that.playhk();
+          // }, 5000)
+          // /** ----------------------------------海康摄像头预览结束------------------------------------- */
+          this.TVWallVisible = true
         }
       })
-      this.preview()
-      /** ----------------------------------大华摄像头预览结束------------------------------------- */
-      /** ----------------------------------海康摄像头预览开始------------------------------------- */
-      // tvCameraList().then(response => {
-      //   this.cameraList=response.data
-      // })
-      // that.initPlugin()
-      // setTimeout(function() {
-      //   that.playhk();
-      // }, 5000)
-      // /** ----------------------------------海康摄像头预览结束------------------------------------- */
-      this.TVWallVisible = true
+
     },
     /** ----------------------------------大华摄像头预览开始------------------------------------- */
     alertLogin: function() {

+ 35 - 18
src/dahua/TVWalllib/DHWs.js

@@ -7381,24 +7381,41 @@
 	        let _this = this;
 	        this.getVersion();
 	        console.log(`ws-getLocalDssVersion-getVersionEnd-${this.getVersionEnd}`);
-	        return new Promise((resolve, reject) => {
-	            if (!this.getVersionEnd) { // 连接中或者获取中
-	                // let now = Date.now();
-	                // if((now - _this.getVersionStartTime) > _this.getVersionTimeOut) {
-	                // 	console.log(`ws-this.getVersionEndTime-${now}`);
-	                // 	reject('get version timeout');
-	                // }
-	                let _interval = setInterval(() => {
-	                    if (_this.getVersionEnd) {
-	                        clearInterval(_interval);
-	                        resolve(_this.currentDssVersion);
-	                    }
-	                }, 50);
-	            }
-	            else {
-	                resolve(_this.currentDssVersion);
-	            }
-	        });
+        if (!this.getVersionEnd) { // 连接中或者获取中
+          // let now = Date.now();
+          // if((now - _this.getVersionStartTime) > _this.getVersionTimeOut) {
+          // 	console.log(`ws-this.getVersionEndTime-${now}`);
+          // 	reject('get version timeout');
+          // }
+          let _interval = setInterval(() => {
+            if (_this.getVersionEnd) {
+              clearInterval(_interval);
+              return _this.currentDssVersion;
+            }
+          }, 50);
+        }
+        else {
+          return _this.currentDssVersion;
+        }
+
+        // return new Promise((resolve, reject) => {
+        //   if (!this.getVersionEnd) { // 连接中或者获取中
+        //     // let now = Date.now();
+        //     // if((now - _this.getVersionStartTime) > _this.getVersionTimeOut) {
+        //     // 	console.log(`ws-this.getVersionEndTime-${now}`);
+        //     // 	reject('get version timeout');
+        //     // }
+        //     let _interval = setInterval(() => {
+        //       if (_this.getVersionEnd) {
+        //         clearInterval(_interval);
+        //         resolve(_this.currentDssVersion);
+        //       }
+        //     }, 50);
+        //   }
+        //   else {
+        //     resolve(_this.currentDssVersion);
+        //   }
+        // });
 	    }
 	    /**
 	     * @description 比较客户端版本

+ 1 - 1
src/dahua/TVWalllib/main.ts

@@ -530,4 +530,4 @@ function getScrollbarWidth() {
 	document.body.removeChild(scrollDiv);
 
 	return scrollbarWidth;
-}
+}

+ 22 - 5
src/dahua/lib/DHWs.js

@@ -7367,7 +7367,6 @@
 	        let _this = this;
 	        this.getVersion();
 	        console.log(`ws-getLocalDssVersion-getVersionEnd-${this.getVersionEnd}`);
-	        return new Promise((resolve, reject) => {
 	            if (!this.getVersionEnd) { // 连接中或者获取中
 	                // let now = Date.now();
 	                // if((now - _this.getVersionStartTime) > _this.getVersionTimeOut) {
@@ -7377,14 +7376,32 @@
 	                let _interval = setInterval(() => {
 	                    if (_this.getVersionEnd) {
 	                        clearInterval(_interval);
-	                        resolve(_this.currentDssVersion);
+	                        return _this.currentDssVersion;
 	                    }
 	                }, 50);
 	            }
 	            else {
-	                resolve(_this.currentDssVersion);
-	            }
-	        });
+                return _this.currentDssVersion;
+	            }
+
+        // return new Promise((resolve, reject) => {
+        //   if (!this.getVersionEnd) { // 连接中或者获取中
+        //     // let now = Date.now();
+        //     // if((now - _this.getVersionStartTime) > _this.getVersionTimeOut) {
+        //     // 	console.log(`ws-this.getVersionEndTime-${now}`);
+        //     // 	reject('get version timeout');
+        //     // }
+        //     let _interval = setInterval(() => {
+        //       if (_this.getVersionEnd) {
+        //         clearInterval(_interval);
+        //         resolve(_this.currentDssVersion);
+        //       }
+        //     }, 50);
+        //   }
+        //   else {
+        //     resolve(_this.currentDssVersion);
+        //   }
+        // });
 	    }
 	    /**
 	     * @description 比较客户端版本