345 lines
9.5 KiB
Plaintext
345 lines
9.5 KiB
Plaintext
let dataUrl = "http://sgwpdm.ah.sgcc.com.cn/basfs/";
|
||
let puId = new GetRequest().puid
|
||
let type;
|
||
let connparam={};
|
||
let _cf ={
|
||
ver:'debug',
|
||
q2http_url: '',
|
||
websocket_url:'',
|
||
// - 配置登录参数
|
||
connParams : {
|
||
// - 登录平台IP
|
||
address : "",
|
||
port : "",
|
||
// - 登录平台用户名
|
||
user : "",
|
||
// - 登录平台密码
|
||
password :"",
|
||
// - 登录平台企业ID
|
||
epid : "",
|
||
// - 登录平台是否通过网闸模式
|
||
bfix :1
|
||
}
|
||
}
|
||
$(function () {
|
||
|
||
if (isNumber(puId)) {
|
||
let num = puId.indexOf("15");
|
||
type = num === 0 ? '1' : '2'
|
||
} else {
|
||
alert("puId错误!!!")
|
||
}
|
||
$.ajax({
|
||
url: dataUrl + "proteam/api/ballrisk/getDeviceState",
|
||
type: "POST",
|
||
data: {
|
||
puid: encrypt(puId),
|
||
type: encrypt(type)
|
||
},
|
||
success: function (data) {
|
||
var configData=data.config;
|
||
if(typeof(configData)!='undefined'){
|
||
_cf.q2http_url=configData.q2httpUrl;
|
||
_cf.websocket_url=configData.websocketUrl;
|
||
_cf.connParams.address=configData.videoIp;
|
||
_cf.connParams.port=configData.videoPort;
|
||
_cf.connParams.user=configData.videoUser;
|
||
_cf.connParams.password=configData.videoPassword;
|
||
_cf.connParams.epid=configData.epid;
|
||
_cf.connParams.bfix=configData.bfix*1;
|
||
}else{
|
||
_cf.q2http_url='http://220.248.250.31:29605/icvs2/';
|
||
_cf.websocket_url='ws://220.248.250.31:29605/wss';
|
||
_cf.connParams.address="10.138.219.3";
|
||
_cf.connParams.port="29988";
|
||
_cf.connParams.user="bns4";
|
||
_cf.connParams.password="Bns@2023**";
|
||
_cf.connParams.epid="system";
|
||
_cf.connParams.bfix=1;
|
||
}
|
||
console.log(_cf);
|
||
introduce("videoQX.js")
|
||
console.log(data);
|
||
if (data.code === "1") {
|
||
if (data.status !== "1") {
|
||
layer.msg("球机不在线", {
|
||
icon: 2,
|
||
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
||
});
|
||
} else {
|
||
}
|
||
} else {
|
||
layer.msg("服务链接异常", {
|
||
icon: 2,
|
||
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
||
});
|
||
}
|
||
},
|
||
error: function (error) {
|
||
|
||
introduce("videoQX.js");
|
||
_cf.q2http_url='http://220.248.250.31:29605/icvs2/';
|
||
_cf.websocket_url='ws://220.248.250.31:29605/wss';
|
||
_cf.connParams.address="10.138.219.3";
|
||
_cf.connParams.port="29988";
|
||
_cf.connParams.user="bns4";
|
||
_cf.connParams.password="Bns@2023**";
|
||
_cf.connParams.epid="system";
|
||
_cf.connParams.bfix=1;
|
||
layer.msg('服务链接异常', {
|
||
icon: 2,
|
||
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
||
});
|
||
}
|
||
});
|
||
$('#return').on('click', function () {
|
||
window.close();
|
||
window.history.back(-1);
|
||
});
|
||
$('.div').height($('.div').width())
|
||
});
|
||
|
||
|
||
/***引入 js / css 文件
|
||
@param {string} url js/css文件路径
|
||
@example: aui.import('js/aui.picker.js')
|
||
@example: aui.import(['js/aui.picker.js', 'css/aui.picker.css'])
|
||
*/
|
||
function introduce(url) {
|
||
switch (url.constructor) {
|
||
case Array:
|
||
for (const [index, item] of url.entries()) {
|
||
creat(item);
|
||
}
|
||
break;
|
||
case String:
|
||
creat(url);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
function creat(file) {
|
||
if (/^.+?\.js$/.test(file)) { //JS文件引入
|
||
let script = document.createElement("script");
|
||
script.setAttribute("type", "text/javascript");
|
||
script.setAttribute("src", file);
|
||
document.querySelector('head').appendChild(script);
|
||
}
|
||
if (/^.+?\.css$/.test(file)) { //CSS文件引入
|
||
let css = document.createElement('link');
|
||
css.rel = 'stylesheet';
|
||
css.type = 'text/css';
|
||
css.href = file;
|
||
document.querySelector('head').appendChild(css);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 获取链接中的参数
|
||
* @returns {Object}
|
||
* @constructor
|
||
*/
|
||
function GetRequest() {
|
||
let url = filterJS(location.search); //获取url中"?"符后的字串
|
||
let theRequest = {};
|
||
if (url.indexOf("?") !== -1 && url.indexOf("puid") !== -1) {
|
||
let str = url.substr(1);
|
||
let parameter = str.split("&");
|
||
for (let i = 0; i < parameter.length; i++) {
|
||
theRequest[parameter[i].split("=")[0]] = (parameter[i].split("=")[1]);
|
||
}
|
||
} else {
|
||
alert("puid错误!!!");
|
||
}
|
||
return theRequest;
|
||
}
|
||
|
||
/**
|
||
* 判断字符是否为空的方法
|
||
* @param obj
|
||
* @returns {boolean}
|
||
*/
|
||
function isEmpty(obj) {
|
||
if (typeof obj == "undefined" || obj == null || obj == "") {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
|
||
function isNumber(val) {
|
||
let regPos = /^\d+(\.\d+)?$/;
|
||
if (regPos.test(val)) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
function screenshot(videos) {
|
||
let image = new Image();
|
||
let video = videos[0];
|
||
let canvas = $('#canvas')[0];
|
||
let ctx = canvas.getContext('2d');
|
||
let H = window.innerHeight;
|
||
let W = window.innerWidth;
|
||
const pixelRatio = window.devicePixelRatio || 1;
|
||
const backingStoreRatio = ctx.webkitBackingStorePixelRatio ||
|
||
ctx.mozBackingStorePixelRatio ||
|
||
ctx.msBackingStorePixelRatio ||
|
||
ctx.oBackingStorePixelRatio ||
|
||
ctx.backingStorePixelRatio || 1;
|
||
const ratio = pixelRatio / backingStoreRatio;
|
||
canvas.width = videos.width() * ratio;
|
||
canvas.height = videos.height() * ratio;
|
||
canvas.style.width = W + 'px';
|
||
canvas.style.height = H + 'px';
|
||
ctx.scale(ratio, ratio);
|
||
ctx.drawImage(video, 0, 0, videos.width(), videos.height()); // 将video中的数据绘制到canvas里
|
||
image.src = canvas.toDataURL('image/jpg')/*.replace('image/jpg', 'image/octet-stream')*/;
|
||
popUps(image)
|
||
|
||
}
|
||
/**
|
||
* @param {Object} param
|
||
*/
|
||
function filterJS(param){
|
||
if(param==null ||param==""){
|
||
return null;
|
||
}
|
||
var filteArr = 'script,alert,console';
|
||
var splitArr = filteArr.split(',');
|
||
for(var i=0;i<splitArr.length;i++){
|
||
console.log(splitArr[i]);
|
||
if(param.indexOf(splitArr[i])== -1){
|
||
return param
|
||
}else{
|
||
return '*****';
|
||
}
|
||
}
|
||
}
|
||
function popUps(image) {
|
||
let height = '30%';
|
||
let width = '90%';
|
||
layer.open({
|
||
title: ['截屏(长按保存图片)', 'font-size:18px;align-items: center;'],
|
||
type: 1,
|
||
content: '<img src="' + image.src + '" width="100%" height="100%" alt="' + '" />',
|
||
area: [width, height]
|
||
});
|
||
|
||
}
|
||
|
||
function videoFullscreen() {
|
||
window.open('video.html?puid=' + puId, '_self');
|
||
}
|
||
|
||
$(document).ready(function(){
|
||
let up = $('#up');
|
||
let time;
|
||
up.mousedown(function () {
|
||
control(1);
|
||
time = setInterval(function () {//启动内层定时器每隔30毫秒重复执行事件函数
|
||
control(1);
|
||
}, 1000);
|
||
});
|
||
up.mouseup(function () {
|
||
clearInterval(time);
|
||
setTimeout("control(0)", 1000);
|
||
});
|
||
let down = $('#down');
|
||
down.mousedown(function () {
|
||
control(2);
|
||
time = setInterval(function () {//启动内层定时器每隔30毫秒重复执行事件函数
|
||
control(2);
|
||
}, 1000);
|
||
});
|
||
down.mouseup(function () {
|
||
clearInterval(time);
|
||
setTimeout("control(0)", 1000);
|
||
});
|
||
let left = $('#left');
|
||
left.mousedown(function () {
|
||
control(3);
|
||
time = setInterval(function () {//启动内层定时器每隔30毫秒重复执行事件函数
|
||
control(3);
|
||
}, 1000);
|
||
});
|
||
left.mouseup(function () {
|
||
clearInterval(time);
|
||
setTimeout("control(0)", 1000);
|
||
|
||
});
|
||
let right = $('#right');
|
||
right.mousedown(function () {
|
||
control(4);
|
||
time = setInterval(function () {//启动内层定时器每隔30毫秒重复执行事件函数
|
||
control(4);
|
||
}, 1000);
|
||
});
|
||
right.mouseup(function () {
|
||
clearInterval(time);
|
||
setTimeout("control(0)", 1000);
|
||
});
|
||
let zoomin = $('#zoomin');
|
||
zoomin.mousedown(function () {
|
||
control(5);
|
||
time = setInterval(function () {//启动内层定时器每隔30毫秒重复执行事件函数
|
||
control(5);
|
||
}, 1000);
|
||
});
|
||
zoomin.mouseup(function () {
|
||
clearInterval(time);
|
||
setTimeout("control(9)", 1000);
|
||
});
|
||
let zoominout = $('#zoominout');
|
||
zoominout.mousedown(function () {
|
||
control(6);
|
||
time = setInterval(function () {//启动内层定时器每隔30毫秒重复执行事件函数
|
||
control(6);
|
||
}, 1000);
|
||
});
|
||
zoominout.mouseup(function () {
|
||
clearInterval(time);
|
||
setTimeout("control(9)", 1000);
|
||
});
|
||
let near = $('#near');
|
||
near.mousedown(function () {
|
||
control(7);
|
||
time = setInterval(function () {//启动内层定时器每隔30毫秒重复执行事件函数
|
||
control(7);
|
||
}, 1000);
|
||
});
|
||
near.mouseup(function () {
|
||
clearInterval(time);
|
||
setTimeout("control(10)", 1000);
|
||
});
|
||
let faraway = $('#faraway');
|
||
faraway.mousedown(function () {
|
||
control(8);
|
||
time = setInterval(function () {//启动内层定时器每隔30毫秒重复执行事件函数
|
||
control(8);
|
||
}, 1000);
|
||
});
|
||
faraway.mouseup(function () {
|
||
clearInterval(time);
|
||
setTimeout("control(10)", 1000);
|
||
});
|
||
});
|
||
|
||
function hintPopUps(str) {
|
||
let height = '30%';
|
||
let width = '90%';
|
||
layer.open({
|
||
title: ['提示', 'font-size:18px;align-items: center;'],
|
||
type: 1,
|
||
content: str,
|
||
area: [width, height]
|
||
});
|
||
|
||
}
|
||
|