From 7e15609aed74ae871d3d12a1b2d7b0d9b7a8e939 Mon Sep 17 00:00:00 2001 From: shiyj1101 <1098226878@qq.com> Date: Sun, 17 Oct 2021 01:05:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=A7=86=E9=A2=91=E7=9B=91?= =?UTF-8?q?=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cameraControlInfo/cameraControlInfo.html | 34 ++++ .../cameraControlInfo/cameraControlInfo.js | 40 +++++ .../cameraControlVideo.html | 30 ++++ .../cameraControlVideo/cameraControlVideo.js | 155 ++++++++++++++++++ .../parkingAreaControlVideo.html | 4 +- public/img/init.jpg | Bin 0 -> 8729 bytes .../property/videoControl/videoControl.html | 9 + .../property/videoControl/videoControl.js | 140 ++++++++++++++++ 8 files changed, 410 insertions(+), 2 deletions(-) create mode 100644 public/components/property/cameraControlInfo/cameraControlInfo.html create mode 100644 public/components/property/cameraControlInfo/cameraControlInfo.js create mode 100644 public/components/property/cameraControlVideo/cameraControlVideo.html create mode 100644 public/components/property/cameraControlVideo/cameraControlVideo.js create mode 100644 public/img/init.jpg create mode 100644 public/pages/property/videoControl/videoControl.html create mode 100644 public/pages/property/videoControl/videoControl.js diff --git a/public/components/property/cameraControlInfo/cameraControlInfo.html b/public/components/property/cameraControlInfo/cameraControlInfo.html new file mode 100644 index 000000000..2dec30afc --- /dev/null +++ b/public/components/property/cameraControlInfo/cameraControlInfo.html @@ -0,0 +1,34 @@ +
+
+
+
+
+
+

摄像头信息

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
\ No newline at end of file diff --git a/public/components/property/cameraControlInfo/cameraControlInfo.js b/public/components/property/cameraControlInfo/cameraControlInfo.js new file mode 100644 index 000000000..8f6503047 --- /dev/null +++ b/public/components/property/cameraControlInfo/cameraControlInfo.js @@ -0,0 +1,40 @@ +/** + 入驻小区 + **/ +(function (vc) { + vc.extends({ + data: { + cameraControlInfo: { + machineCode: '', + machineVersion: '', + machineName: '', + machineTypeCd: '', + machineIp: '', + machineMac: '', + machineId: '' + } + }, + _initMethod: function () { + }, + _initEvent: function () { + vc.on('cameraControlInfo', 'notify', function (_data) { + $that.refreshCameraControlInfo(); + vc.copyObject(_data._machine, $that.cameraControlInfo); + }); + + }, + methods: { + refreshCameraControlInfo: function () { + vc.component.cameraControlInfo = { + machineCode: '', + machineVersion: '', + machineName: '', + machineTypeCd: '', + machineIp: '', + machineMac: '', + machineId: '' + } + } + } + }); +})(window.vc); \ No newline at end of file diff --git a/public/components/property/cameraControlVideo/cameraControlVideo.html b/public/components/property/cameraControlVideo/cameraControlVideo.html new file mode 100644 index 000000000..09bb7ed91 --- /dev/null +++ b/public/components/property/cameraControlVideo/cameraControlVideo.html @@ -0,0 +1,30 @@ +
+
+ +
+ +
+
+
+ +
+
+
+ +
+ +
+
+ +
+ + +
\ No newline at end of file diff --git a/public/components/property/cameraControlVideo/cameraControlVideo.js b/public/components/property/cameraControlVideo/cameraControlVideo.js new file mode 100644 index 000000000..80802805e --- /dev/null +++ b/public/components/property/cameraControlVideo/cameraControlVideo.js @@ -0,0 +1,155 @@ +/** + 入驻小区 + **/ +(function (vc) { + var DEFAULT_PAGE = 1; + var DEFAULT_ROWS = 1; + vc.extends({ + data: { + cameraControlVideoInfo: { + paId: '', + inMachineId: '', + outMachineId: '', + machines: [], + showType:'606', + outMachines: [] + + } + }, + _initMethod: function () { + $that._initShowType($that.cameraControlVideoInfo.showType); + + }, + _initEvent: function () { + vc.on('cameraControlVideo', 'notify', function (param) { + }) + vc.on('pagination', 'page_event', function (_currentPage) { + vc.component._listMachines(_currentPage, DEFAULT_ROWS); + }); + vc.on('cameraControlInfo', 'page_event', function (_currentPage) { + vc.component._listMachines(_currentPage, DEFAULT_ROWS); + }); + }, + methods: { + _listMachines: function (_page, _rows) { + let param = { + params: { + page: _page, + row: _rows, + machineTypeCd: '9998', + communityId: vc.getCurrentCommunity().communityId + } + } + //发送get请求 + vc.http.get('machineManage', + 'list', + param, + function (json, res) { + let _machineManageInfo = JSON.parse(json); + $that.cameraControlVideoInfo.machines = _machineManageInfo.machines; + let _machine = $that.cameraControlVideoInfo.machines[0]; + vc.emit('pagination', 'init', { + total: _machineManageInfo.records, + currentPage: _page + }); + vc.emit('cameraControlInfo', 'notify', { + _machine + }); + }, function (errInfo, error) { + console.log('请求失败处理'); + } + ); + }, + _swatchVedio: function () { + //创建一个socket实例 + let wsUrl = ""; + let _enterMachineId = $that.cameraControlVideoInfo.inMachineId; + vc.emit('parkingAreaControl', 'notify', { + inMachineId: _enterMachineId + }); + $that.cameraControlVideoInfo.inMachines.forEach((item) => { + if (item.machineId == _enterMachineId) { + wsUrl = item.machineIp; + if (item.machineVersion.indexOf('300') > -1) { + wsUrl += "/ws.flv" + } else { + wsUrl += "/ws" + } + } + }); + + wsUrl = wsUrl.replace(':8131', ':9080'); + let _protocol = window.location.protocol; + if (_protocol.startsWith('https')) { + wsUrl = + "wss://" + wsUrl; + } else { + wsUrl = + "ws://" + wsUrl; + } + let image = document.getElementById("receiver1"); + if (wsUrl.endsWith(".flv")) { + image = document.getElementById("receiver1Div"); + let jessibuca = new Jessibuca({ + container: image, + videoBuffer: 0.2, + isResize: false, + }); + jessibuca.onLoad = function () { + this.play(wsUrl); + }; + return; + } + let receiver_socket = new WebSocket(wsUrl); + // 监听消息 + receiver_socket.onmessage = function (data) { + let reader = new FileReader(); + reader.onload = function (evt) { + if (evt.target.readyState == FileReader.DONE) { + let url = evt.target.result; + image.src = "data:image/png;" + url; + } + }; + reader.readAsDataURL(data.data); + }; + }, + openFullscreen: function (e) { + var parents = $(e.target).parent().parent(); + + // $('#' + parents[0].id).height(650); + // $('#' + parents[0].id).width(400); + // $('#'+ parents[0].id).toggle(function () { + // $('#' + parents[0].id).height($('#' + parents[0].id).height() + 600); + // }, function () { + // $('#' + parents[0].id).height($('#' + parents[0].id).height() - 100); + // }) + }, + _openCameraControlInfoVideo: function (_machine) { + vc.emit('cameraControlInfo', 'notify', { + _machine + }); + }, + _initShowType: function(_typeCd){ + if(_typeCd == '606'){ + DEFAULT_ROWS=1; + $("div[name='showName']").attr('class','col-md-12'); + } + if(_typeCd == '607'){ + DEFAULT_ROWS=4; + $("div[name='showName']").attr('class','col-md-6'); + } + if(_typeCd == '608'){ + DEFAULT_ROWS=9; + $("div[name='showName']").attr('class','col-md-4'); + } + if(_typeCd == '609'){ + DEFAULT_ROWS=16; + $("div[name='showName']").attr('class','col-md-3'); + } + $that._listMachines(DEFAULT_PAGE, DEFAULT_ROWS); + + } + + } + }); +})(window.vc); \ No newline at end of file diff --git a/public/components/property/parkingAreaControlVideo/parkingAreaControlVideo.html b/public/components/property/parkingAreaControlVideo/parkingAreaControlVideo.html index 63ea99752..dc5b8601b 100644 --- a/public/components/property/parkingAreaControlVideo/parkingAreaControlVideo.html +++ b/public/components/property/parkingAreaControlVideo/parkingAreaControlVideo.html @@ -66,12 +66,12 @@
- +
- +
diff --git a/public/img/init.jpg b/public/img/init.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e9788ea58b39e82d2dab480783bd67788197a852 GIT binary patch literal 8729 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 literal 0 HcmV?d00001 diff --git a/public/pages/property/videoControl/videoControl.html b/public/pages/property/videoControl/videoControl.html new file mode 100644 index 000000000..8da639438 --- /dev/null +++ b/public/pages/property/videoControl/videoControl.html @@ -0,0 +1,9 @@ +
+
+
+ +
+
+ +
+
\ No newline at end of file diff --git a/public/pages/property/videoControl/videoControl.js b/public/pages/property/videoControl/videoControl.js new file mode 100644 index 000000000..ae2eb9086 --- /dev/null +++ b/public/pages/property/videoControl/videoControl.js @@ -0,0 +1,140 @@ +/** + 入驻小区 + **/ +(function (vc) { + vc.extends({ + data: { + parkingAreaControlInfo: { + _currentTab: 'parkingAreaControlCarInout', + paId: '', + inMachineId: '', + outMachineId: '', + + } + }, + _initMethod: function () { + $that.parkingAreaControlInfo.paId = vc.getParam('paId'); + $that._initParkingAreaWs(); + vc.emit('parkingAreaControlVideo', 'notify', { + paId: $that.parkingAreaControlInfo.paId + }); + }, + _initEvent: function () { + vc.on('parkingAreaControl', 'notify', function (_param) { + vc.copyObject(_param, $that.parkingAreaControlInfo); + }) + }, + methods: { + changeTab: function (_tab) { + $that.parkingAreaControlInfo._currentTab = _tab; + vc.emit(_tab, 'switch', { + paId: $that.parkingAreaControlInfo.paId + }) + }, + _initParkingAreaWs: function () { + let clientId = vc.uuid(); + let heartCheck = { + timeout: 30000, // 9分钟发一次心跳,比server端设置的连接时间稍微小一点,在接近断开的情况下以通信的方式去重置连接时间。 + serverTimeoutObj: null, + pingTime: new Date().getTime(), + reset: function () { + clearTimeout(this.serverTimeoutObj); + return this; + }, + start: function () { + let self = this; + this.serverTimeoutObj = setInterval(function () { + if (websocket.readyState == 1) { + console.log("连接状态,发送消息保持连接"); + let _pingTime = new Date().getTime(); + //保护,以防 异常 + if (_pingTime - self.pingTime < 15 * 1000) { + return; + } + websocket.send("{'cmd':'ping'}"); + self.pingTime = _pingTime; + + heartCheck.reset().start(); // 如果获取到消息,说明连接是正常的,重置心跳检测 + } else { + console.log("断开状态,尝试重连"); + $that._initParkingAreaWs(); + } + }, this.timeout) + } + } + + let _protocol = window.location.protocol; + let url = ''; + if (_protocol.startsWith('https')) { + url = + "wss://" + window.location.host + "/ws/parkingArea/" + + $that.parkingAreaControlInfo.paId + "/" + clientId; + } else { + // url = + // "ws://" + window.location.host + "/ws/parkingArea/" + + // $that.parkingAreaControlInfo.paId + "/" + clientId; + url = + "ws://demo.homecommunity.cn:9011/ws/parkingArea/" + + $that.parkingAreaControlInfo.paId + "/" + clientId; + } + + + if ("WebSocket" in window) { + websocket = new WebSocket(url); + } else if ("MozWebSocket" in window) { + websocket = new MozWebSocket(url); + } else { + websocket = new SockJS(url); + } + + //连接发生错误的回调方法 + websocket.onerror = function (_err) { + console.log("初始化失败", _err); + this.$notify.error({ + title: "错误", + message: "连接失败,请检查网络" + }); + }; + + //连接成功建立的回调方法 + websocket.onopen = function () { + heartCheck.reset().start(); + console.log("ws初始化成功"); + }; + + //接收到消息的回调方法 + websocket.onmessage = function (event) { + heartCheck.reset().start(); + console.log("event", event); + let _data = event.data; + try { + _data = JSON.parse(_data); + } catch (err) { + return; + } + + vc.emit('parkingAreaControlCarInout', 'notify', { + data: _data, + parkingAreaControl: $that.parkingAreaControlInfo + }); + vc.emit('parkingAreaControlFee', 'notify', _data); + }; + + //连接关闭的回调方法 + websocket.onclose = function () { + console.log("初始化失败"); + //$that._initParkingAreaWs(); + this.$notify.error({ + title: "错误", + message: "连接关闭,请刷新浏览器" + }); + }; + + //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。 + window.onbeforeunload = function () { + websocket.close(); + }; + } + } + }); +})(window.vc); \ No newline at end of file