131 lines
3.9 KiB
JavaScript
131 lines
3.9 KiB
JavaScript
|
import { loginUser } from "../../../public/js/url.js";
|
|||
|
import { currentEventData } from "./orgApi/getAlarmEventList.js";
|
|||
|
import { mqttUrl } from "../../../public/js/url.js";
|
|||
|
import { deviceHash } from "../api/moveDeviceWebsocket.js";
|
|||
|
var currentVideoPage={};//保存当前页面打开的视频
|
|||
|
var currentStation="";
|
|||
|
function openMoveDeviceVideo(deviceArr){
|
|||
|
var deviceidArr=[];
|
|||
|
for(let i=0;i<deviceArr.length;i++){
|
|||
|
var deviceid=deviceArr[i]["deviceid"];
|
|||
|
if(deviceid in deviceHash){
|
|||
|
var status=deviceHash[deviceid]["status"];
|
|||
|
if(status=="online"){
|
|||
|
deviceidArr.push(deviceid);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
currentStation=currentEventData["station"];
|
|||
|
createVideoOpenData(deviceidArr);
|
|||
|
currentPageOpenVideo(deviceidArr);
|
|||
|
}
|
|||
|
|
|||
|
function createVideoOpenData(deviceidArr){
|
|||
|
var videoCallObj={
|
|||
|
"rtmpflag":0,
|
|||
|
"camera":1,
|
|||
|
"rotation":0
|
|||
|
}
|
|||
|
var rtmObj=getRtmData("videocall",JSON.stringify(videoCallObj),deviceidArr);
|
|||
|
//发送开启视频的指令
|
|||
|
sendMqttData(rtmObj);
|
|||
|
}
|
|||
|
|
|||
|
//发送mqqt接口数据
|
|||
|
function sendMqttData(obj){
|
|||
|
|
|||
|
var mqttObj={
|
|||
|
"topic":`${currentStation}/ter_cmd`,
|
|||
|
"message":JSON.stringify(obj)
|
|||
|
}
|
|||
|
return axios({
|
|||
|
method: 'post',
|
|||
|
url:mqttUrl,
|
|||
|
data: mqttObj
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
function getRtmData(title,data,receiver){
|
|||
|
return {
|
|||
|
"title":title,
|
|||
|
"sender":loginUser,
|
|||
|
"department":"",
|
|||
|
"scope":"",
|
|||
|
"receiver":receiver,
|
|||
|
"video":"",
|
|||
|
"rtm":(new Date().getTime()).toString(),
|
|||
|
"data":data,
|
|||
|
"userScope":"",
|
|||
|
"userBragide":"",
|
|||
|
"userDetachchment":"",
|
|||
|
"userBorough":"",
|
|||
|
"name":"web",
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//当前页面打开视频
|
|||
|
function currentPageOpenVideo(deviceArr){
|
|||
|
setTimeout(()=>{
|
|||
|
var urlArr=[];
|
|||
|
for(let i=0;i<deviceArr.length;i++){
|
|||
|
var deviceid=deviceArr[i];
|
|||
|
if(deviceid in deviceHash){
|
|||
|
let showname=deviceHash[deviceid]["showname"];
|
|||
|
let station=deviceHash[deviceid]["station"];
|
|||
|
let power=0;
|
|||
|
let url=`./rtc/deviceAlarmVideo.html?id=${deviceid}&power=${power}&mdDeviceName=${encodeURI(encodeURI(showname))}&station=${encodeURI(encodeURI(station))}&username=${loginUser}`;
|
|||
|
urlArr.push(url);
|
|||
|
$(`.videoMonitor>div:nth-child(${i+1})`).attr("deviceid",deviceid)
|
|||
|
}
|
|||
|
}
|
|||
|
urlArr.forEach((item,index)=>{
|
|||
|
$(`.videoMonitor>div:nth-child(${index+1})`).html(`<iframe src='${item}'></iframe>`);
|
|||
|
|
|||
|
})
|
|||
|
},1500)
|
|||
|
}
|
|||
|
|
|||
|
//单独打开视频
|
|||
|
function aloneOpenVideo(obj){
|
|||
|
let deviceid=obj["deviceid"];
|
|||
|
let showname=obj["showname"];
|
|||
|
let station=obj["station"];
|
|||
|
currentStation=station;
|
|||
|
let power=0;
|
|||
|
let url=`./rtc/moveDeviceVideoOne.html?id=${deviceid}&power=${power}&mdDeviceName=${encodeURI(encodeURI(showname))}&station=${encodeURI(encodeURI(station))}&username=${loginUser}`;
|
|||
|
createVideoOpenData([obj["deviceid"]])
|
|||
|
window.open(url,'',"width=1280,height=720,top=0,left=0,status='no',location='no',resizable='no',toolbar='no'");
|
|||
|
}
|
|||
|
|
|||
|
//监听iframe过来的数据,改变页面
|
|||
|
window.addEventListener('message', function(e) {
|
|||
|
var data=e.data
|
|||
|
var cmd=data["cmd"];
|
|||
|
var deviceid=data["deviceid"];
|
|||
|
if(cmd=="closePage"){
|
|||
|
var mdiv= $(`.videoMonitor>div`);
|
|||
|
for(var i=0;i<mdiv.length;i++){
|
|||
|
var tmdev=mdiv[i];
|
|||
|
if($(tmdev).attr("deviceid")==deviceid){
|
|||
|
$(tmdev).html(`<div><img src="./pages/cmddispatch/image/play.png" alt=""></div>`)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
|
|||
|
function sendCloseVideo(deviceid){
|
|||
|
var videoCallObj={
|
|||
|
"rtmpflag":0,
|
|||
|
"camera":1,
|
|||
|
"rotation":0
|
|||
|
}
|
|||
|
var rtmObj=getRtmData("videoclose",JSON.stringify(videoCallObj),[deviceid]);
|
|||
|
//发送开启视频的指令
|
|||
|
sendMqttData(rtmObj);
|
|||
|
}
|
|||
|
|
|||
|
export {
|
|||
|
openMoveDeviceVideo,
|
|||
|
aloneOpenVideo
|
|||
|
}
|