hb_zhgd_screen/js/pages/video/fixed_video.js

204 lines
6.7 KiB
JavaScript

let layer, form, util, dtree, videoTree, flow;
let pageNum = 1, pageSize = 10; // 定义分页
let _this = null;
let scheduledTask2 = false;
layui.config({
base: "../../plugin/layui-v2.9.7/layui/dtree/", //此处路径请自行处理, 可以使用绝对路径
}).extend({
dtree: 'dtree'
}).use(['layer', 'form', 'dtree', 'util', 'flow'], function () {
form = layui.form;
layer = layui.layer;
dtree = layui.dtree;
flow = layui.flow;
dtree.on("node('video-tree')", function (obj) {
if (obj.param.level === '1') {
return parent.layer.msg('请选择球机', { icon: 7, offset: 't' });
}
let id = $(this).find('span').attr('id');
let online = $(this).find('span').attr('online');
let bZero = $(this).find('span').attr('bZero');
if (online === '0') {
return parent.layer.msg('设备离线', { icon: 7, offset: 't' });
}
clickStartRealPlay('undefined', id, bZero);
});
// 登录海康平台
setTimeout(() => {
clickLogin(1);
}, 1000);
dataFlow({
pageNum: pageNum,
pageSize: pageSize,
bidCode: parent.$('#bidPro').val()
});
$("#ID-flow-demo").niceScroll({ cursorborder: "", cursorcolor: "#c0c4cc", boxzoom: true });
$("#video-tree").niceScroll({ cursorborder: "", cursorcolor: "#c0c4cc", boxzoom: true });
timedRefresh2();
});
// 刷新数据-十分钟刷新一次
function timedRefresh2() {
if (scheduledTask2) {
$('#ID-flow-demo').empty();
layer.msg('刷新了');
dataFlow({
pageNum: 1,
pageSize: pageSize,
bidCode: parent.$('#bidPro').val()
});
} else {
scheduledTask2 = true;
}
setTimeout(timedRefresh2, 1000 * 60 * 10);
}
// 切换播放窗口数量
function changeVideoWindow(value) {
$('.toggle-btn button').each(function (index, item) {
$(this).removeClass();
if ((index + 1) === value) {
$(this).addClass('checkBtn')
} else {
$(this).addClass('nocheckBtn')
}
})
changeWndNum(value);
}
/**数据流加载*/
function dataFlow(queryParams) {
flow.load({
elem: '#ID-flow-demo', // 流加载容器
scrollElem: '#ID-flow-demo', // 滚动条所在元素,一般不用填,此处只是演示需要。
end: '数据加载完毕',
direction: 'bottom',
done: function (page, next) { // 执行下一页的回调
console.error(page);
pageNum = page;
let lis = [];
queryParams.pageNum = page;
let returnData = loadData(queryParams);
if (returnData != null) {
lis = initImgData(returnData.data)
next(lis.join(''), page < returnData.count / pageSize);
}
}
});
}
/**加载图片数据*/
function loadData(queryParams) {
let returnData = null;
let paramData = 'bidCode=' + queryParams.bidCode + '&page=' + queryParams.pageNum + '&limit=' + queryParams.pageSize;
let montageParam = aqEnnable ? encryptCBC(paramData) : ' &' + encryptCBC(paramData);
const url = commonUrl + "screen/largeScreen/constrDisplay/getCameraImage?params=" + montageParam;
ajaxRequestGet(url, "GET", false, function () {
}, function (result) {
if (result.code === 0) {
console.log(result)
returnData = result;
} else if (result.code === 500) {
layer.msg(result.msg, { icon: 2 });
}
}, function (xhr, status, error) {
error(xhr, status, error)
}, aqEnnable);
return returnData;
}
/**渲染图片*/
function initImgData(list) {
let htmlArr = [];
if (list && list.length > 0) {
$.each(list, function (index, item) {
let filePath = imgUrl + item.image + "?token=" + sessionStorage.getItem("zhgd_token");
htmlArr.push("<div class='img-info' onclick='handleData(this," + JSON.stringify(item) + ")'>" +
" <div class='imgData layout'>\n" +
" <img src='" + filePath + "'>" +
" </div>" +
" <div class='imgData2 layout'>" +
" <p>" + item.createTime + "</p>" +
" <p class='img-color" + (item.isSure) + "'>" + (item.isSure === '0' ? '未确认' : item.isSure === '1' ? '已确认' : '系统误判') + "</p>" +
" </div>" +
" <div class='imgData3 layout'>" +
" <p>今日无作业票</p>" +
" </div>" +
" <div class='imgData4 layout'>" +
" <p>现场有人员逗留,请确认!</p>" +
" </div>" +
" </div>");
})
}
return htmlArr;
}
function handleData(that, obj) {
hidPlugin();
_this = that;
let isSure = $(that).attr('isSure');
let remark = $(that).attr('remark');
if (isSure) {
obj.isSure = isSure;
}
if (remark) {
obj.remark = remark;
}
openIframeByParamObj("handleData", "无计划预警信息", "./handleWarnInfo.html", "72%", "95%", obj, 1);
}
function changeData(str) {
let obj = JSON.parse(str);
console.error(obj);
$(_this).attr('isSure', obj.isSure);
$(_this).attr('remark', obj.remark);
$(_this).find('.imgData2').find('p').eq(1).html(obj.isSure === '1' ? '已确认' : '系统误判');
$(_this).find('.imgData2').find('p').eq(1).attr('class', obj.isSure === '1' ? 'img-color1' : 'img-color2');
}
// 查看更多
function moreData() {
hidPlugin();
openIframeByParamObj("moreData", "无计划预警信息", "./moreData.html", "72%", "95%", {}, 1);
}
// 监听是否离开视频播放页面
/* window.addEventListener('pagehide', async function (event) {
if (event.persisted) {
// 页面被存入bfcache
// 页面完全卸载
await saveImportantData();
} else {
// 页面完全卸载
// 执行异步操作
await saveImportantData();
}
}); */
/* window.addEventListener('beforeunload', async function (event) {
// 阻止默认行为以延迟页面卸载
event.preventDefault();
try {
// 执行异步操作
await saveImportantData();
// 操作完成后允许页面卸载
event.returnValue = true;
} catch (error) {
console.error('保存失败:', error);
// 可以选择显示错误或阻止离开
event.returnValue = '数据保存失败,请稍后再试';
}
});
async function saveImportantData() {
// 模拟异步保存操作
return new Promise((resolve) => {
stopAllPlay();
clickLogout();
destroyPlugin();
resolve();
});
} */