200 lines
6.4 KiB
JavaScript
200 lines
6.4 KiB
JavaScript
|
|
let layer, form, util, dtree, videoTree, flow;
|
|||
|
|
let pageNum = 1, pageSize = 100; // 定义分页
|
|||
|
|
let _this = null;
|
|||
|
|
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');
|
|||
|
|
console.log($(this).find('span').attr('id'));
|
|||
|
|
console.log($(this).find('span').attr('online'));
|
|||
|
|
console.log($(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
|
|||
|
|
});
|
|||
|
|
$("#ID-flow-demo").niceScroll({ cursorborder: "", cursorcolor: "#c0c4cc", boxzoom: true });
|
|||
|
|
$("#video-tree").niceScroll({ cursorborder: "", cursorcolor: "#c0c4cc", boxzoom: true });
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 切换播放窗口数量
|
|||
|
|
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.list)
|
|||
|
|
next(lis.join(''), page < returnData.data.total / 100);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**加载图片数据*/
|
|||
|
|
function loadData(queryParams) {
|
|||
|
|
let returnData = {
|
|||
|
|
total: 60,
|
|||
|
|
data: {
|
|||
|
|
list: [
|
|||
|
|
{
|
|||
|
|
'id': '1',
|
|||
|
|
'path': '../../../img/constrDisplay/test.jpg',
|
|||
|
|
'status': '0',
|
|||
|
|
'warnTime': '2025-05-15 12:00:00',
|
|||
|
|
'content': '今日无作业票',
|
|||
|
|
'warnContent': '现场有人员逗留超过10分钟,请确认!'
|
|||
|
|
},
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return returnData;
|
|||
|
|
/* let returnData = null;
|
|||
|
|
let url = dataUrl + "/backstage/synthesisQuery/getImgList"
|
|||
|
|
let obj = queryParams;
|
|||
|
|
let params = {
|
|||
|
|
encryptedData: encryptCBC(JSON.stringify(obj))
|
|||
|
|
}
|
|||
|
|
ajaxRequest(url, "POST", params, false, function () {
|
|||
|
|
}, function (result) {
|
|||
|
|
if (result.status === 200) {
|
|||
|
|
console.log(result)
|
|||
|
|
returnData = result;
|
|||
|
|
} else {
|
|||
|
|
layer.msg(result.msg, { icon: 2 })
|
|||
|
|
}
|
|||
|
|
}, function (xhr) {
|
|||
|
|
error(xhr)
|
|||
|
|
});
|
|||
|
|
return returnData; */
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**渲染图片*/
|
|||
|
|
function initImgData(list) {
|
|||
|
|
let htmlArr = [];
|
|||
|
|
if (list && list.length > 0) {
|
|||
|
|
$.each(list, function (index, item) {
|
|||
|
|
// let filePath = imgUrl + item.compressFilePath + "?token=" + tokens;
|
|||
|
|
let filePath = item.path;
|
|||
|
|
htmlArr.push("<div class='img-info' isShow = 'true' onclick='handleData(this," + JSON.stringify(item) + ")'>" +
|
|||
|
|
" <div class='imgData layout'>\n" +
|
|||
|
|
" <img src='" + filePath + "'>" +
|
|||
|
|
" </div>" +
|
|||
|
|
" <div class='imgData2 layout'>" +
|
|||
|
|
" <p>" + item.warnTime + "</p>" +
|
|||
|
|
" <p class='img-color" + (item.status) + "'>" + (item.status === '0' ? '未确认' : '已确认') + "</p>" +
|
|||
|
|
" </div>" +
|
|||
|
|
" <div class='imgData3 layout'>" +
|
|||
|
|
" <p>" + item.content + "</p>" +
|
|||
|
|
" </div>" +
|
|||
|
|
" <div class='imgData4 layout'>" +
|
|||
|
|
" <p>" + item.warnContent + "</p>" +
|
|||
|
|
" </div>" +
|
|||
|
|
" </div>");
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
return htmlArr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function handleData(that, obj) {
|
|||
|
|
let isShow = $(that).attr('isShow');
|
|||
|
|
if (isShow === 'true') {
|
|||
|
|
hidPlugin();
|
|||
|
|
_this = that;
|
|||
|
|
openIframeByParamObj("handleData", "无计划预警信息", "./handleWarnInfo.html", "72%", "95%", obj, 1);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function changeData() {
|
|||
|
|
$(_this).attr('isShow', 'false');
|
|||
|
|
$(_this).find('.imgData2').find('p').eq(1).html('已确认');
|
|||
|
|
$(_this).find('.imgData2').find('p').eq(1).attr('class', 'img-color1');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 查看更多
|
|||
|
|
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();
|
|||
|
|
});
|
|||
|
|
} */
|