火箭军大屏html静态页面
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

562 lines
19 KiB

// var ajaxUrl = 'http://192.168.99.107:7070'
// var ajaxUrl = 'http://192.168.99.67:7070'
var ajaxUrl = 'http://192.168.1.100:7070'
//获取当前时间
var timer = null
timer = setInterval(() => {
var nowDate = getCurrentTime()
$('.current-date').html(nowDate)
}, 1000)
var echartsTimer = null
// 定时请求第三方数据,更新页面数据
echartsTimer = setInterval(() => {
FetchThisDayYearBorrowNum()
FetchArchivesNum()
FetchFileAnjuanNum()
FetchDevice()
FetchInitDisplayconfig()
}, 1000 * 30)
FetchArchivesNum()
FetchFileAnjuanNum()
FetchDevice()
FetchThisDayYearBorrowNum()
FetchInitSecurityDoorLog()
FetchAlarmInfo()
var allDisplayConfigData;
var allDeviceIds = [];
var allDeviceIds = [];
var displayConfigData;
var url;
var topDisplayData = {
DAK_DIV_TOP_001: {
show: false,
curValue: '',
unit: '',
curstatus: 0
},
DAK_DIV_TOP_002: {
show: false,
curValue: '',
unit: '',
curstatus: 0
},
DAK_DIV_TOP_003: {
show: false,
curValue: '',
unit: '',
curstatus: 0
},
DAK_DIV_TOP_004: {
show: false,
curValue: '',
unit: '',
curstatus: 0
},
DAK_DIV_TOP_005: {
show: false,
curValue: '',
unit: '',
curstatus: 0
},
DAK_DIV_TOP_006: {
show: false,
curValue: '',
unit: '',
curstatus: 0
}
}
var waterLeakage = {
waterLeakageStatus1: false,
waterLeakageStatus2: false,
waterLeakageStatus3: false,
waterLeakageStatus4: false,
waterLeakageText4: ''
}
FetchInitDisplayconfig()
function FetchInitDisplayconfig() {
$.ajax({
url: ajaxUrl + '/api/displayconfig/list',
type: 'GET',
data: {
storeroomId: 'D6490DA3D4261E8C26D0E3'
},
success: function (res) {
if (res.code === 200) {
allDisplayConfigData = res.data
allDisplayConfigData.forEach(item => {
if (item.isDisplay && item.bindState && item.deviceInfo && (item.divPosition.includes('OAO') || item.divPosition.includes('TOP') || item.divPosition.includes('LS'))) {
allDeviceIds.push(item.deviceInfo.deviceId)
if (!url) {
url = 'http://' + item.deviceInfo.deviceIp + ':' + item.deviceInfo.devicePort
}
}
})
displayConfigData = allDisplayConfigData.filter((item) => { return item.isDisplay && item.bindState && item.deviceInfo && (item.divPosition.includes('OAO') || item.divPosition.includes('TOP') || item.divPosition.includes('LS')) })
getRealTimeData()
}
},
error: function (err) {
console.log(err);
}
});
}
function getRealTimeData() {
if (allDeviceIds.length > 0) {
$.ajax({
url: ajaxUrl + '/api/thirdapi/getrealtimedata',
type: 'POST',
traditional: true,
data: JSON.stringify({
"ids": allDeviceIds,
"url": url
}),
dataType: 'json',
contentType: 'application/json',
success: function (res) {
if (res.code === 200) {
displayConfigData.forEach(element => {
if (element.divPosition.includes('TOP') && element.deviceSpecParams[0]) {
// 获取页面div显示的数据
var result = res.data.find((item) => {
return item.property_id === element.deviceSpecParams[0].paramId && item.device_id === element.deviceInfo.deviceId
})
if (result) {
topDisplayData[element.divPosition] = {
show: true,
curValue: result.curvalue,
unit: result.unit,
curstatus: result.curstatus
};
var str = '<li class="top003">'
+'<i class="env-svg-item env-svg1"></i>'
+' <div class="msg-txt">'
+'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_003.curValue+'</span>'
+'<p class="msg-list-unit">CO2 '+topDisplayData.DAK_DIV_TOP_003.unit +'</p>'
+'</div>'
+'</li>'
+'<li class="top004">'
+'<i class="env-svg-item env-svg2"></i>'
+'<div class="msg-txt">'
+'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_004.curValue+'</span>'
+'<p class="msg-list-unit">VOC '+topDisplayData.DAK_DIV_TOP_004.unit+'</p>'
+'</div>'
+'</li>'
+'<li class="msg-pm top005">'
+' <i class="env-svg-item env-svg3"></i>'
+'<div class="msg-txt">'
+'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_005.curValue+'</span>'
+'<p class="msg-list-unit">PM2.5 '+topDisplayData.DAK_DIV_TOP_005.unit+'</p>'
+'</div>'
+' </li>'
+'<li class="msg-pm top006">'
+'<i class="env-svg-item env-svg4"></i>'
+' <div class="msg-txt">'
+'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_006.curValue+'</span>'
+'<p class="msg-list-unit">PM10 '+topDisplayData.DAK_DIV_TOP_006.unit+'</p>'
+'</div>'
+'</li>'
$('.left-top-env').html(str)
if(topDisplayData.DAK_DIV_TOP_003.curstatus > 0){
$('.top003').addClass('li-warn');
}
if(topDisplayData.DAK_DIV_TOP_004.curstatus > 0){
$('.top004').addClass('li-warn');
}
if(topDisplayData.DAK_DIV_TOP_005.curstatus > 0){
$('.top005').addClass('li-warn');
}
if(topDisplayData.DAK_DIV_TOP_006.curstatus > 0){
$('.top006').addClass('li-warn');
}
var strMiddle = '<li class="top001">'
+'<i class="env-svg-item env-svg5"></i>'
+'<div class="msg-txt">'
+'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_001.curValue+'</span>'
+'<p class="msg-list-unit">温度 '+topDisplayData.DAK_DIV_TOP_001.unit+'</p>'
+'</div>'
+'</li>'
+'<li class="top002">'
+'<i class="env-svg-item env-svg6"></i>'
+'<div class="msg-txt">'
+'<span class="msg-list-num">'+topDisplayData.DAK_DIV_TOP_002.curValue+'</span>'
+'<p class="msg-list-unit">湿度 '+topDisplayData.DAK_DIV_TOP_002.unit+'</p>'
+'</div>'
+'</li>'
$('.middle-env').html(strMiddle)
if(topDisplayData.DAK_DIV_TOP_001.curstatus > 0){
$('.top001').addClass('li-warn');
}
if(topDisplayData.DAK_DIV_TOP_002.curstatus > 0){
$('.top002').addClass('li-warn');
}
} else {
this.$set(this.topDisplayData, element.divPosition, {
show: false
})
}
} else if (element.divPosition.includes('OAO')) {
// 获取3D弹窗显示的数据
// var wenduParamId = element.deviceSpecParams.find((item) => { return item.paramName === '温度' })?.paramId
// var siduParamId = element.deviceSpecParams.find((item) => { return item.paramName === '湿度' })?.paramId
// var wendu = {}
// var sidu = {}
// if (wenduParamId) {
// wendu = res.data.find((item) => {
// return item.property_id === wenduParamId && item.device_id === element.deviceInfo.deviceId
// })
// }
// if (siduParamId) {
// sidu = res.data.find((item) => {
// return item.property_id === siduParamId && item.device_id === element.deviceInfo.deviceId
// })
// }
} else {
var waterLeakageParamId1 = null;
for (var i = 0; i < element.deviceSpecParams.length; i++) {
if (element.deviceSpecParams[i].paramName === '维护报警') {
waterLeakageParamId1 = element.deviceSpecParams[i].paramId;
break;
}
}
var waterLeakageParamId2 = null;
for (var i = 0; i < element.deviceSpecParams.length; i++) {
if (element.deviceSpecParams[i].paramName === '漏水报警') {
waterLeakageParamId2 = element.deviceSpecParams[i].paramId;
break;
}
}
var waterLeakageParamId3 = null;
for (var i = 0; i < element.deviceSpecParams.length; i++) {
if (element.deviceSpecParams[i].paramName === '感应线断裂') {
waterLeakageParamId3 = element.deviceSpecParams[i].paramId;
break;
}
}
var waterLeakage4;
for (var i = 0; i < element.deviceSpecParams.length; i++) {
if (element.deviceSpecParams[i].paramName === '漏水位置') {
waterLeakage4 = element.deviceSpecParams[i];
break;
}
}
if (waterLeakage4) {
waterLeakage.waterLeakageText4 = waterLeakage4.unit
}
var waterLeakageParamId4;
if(waterLeakage4 !== null && typeof waterLeakage4 !== 'undefined'){
waterLeakageParamId4 = waterLeakage4.paramId;
}
if (waterLeakageParamId1) {
var waterLeakageStatus1 = null;
for (var i = 0; i < res.data.length; i++) {
if (res.data[i].property_id === waterLeakageParamId1 && res.data[i].device_id === element.deviceInfo.deviceId) {
waterLeakageStatus1 = res.data[i].curstatus > 0;
break;
}
}
waterLeakage.waterLeakageStatus1 = waterLeakageStatus1;
}
if (waterLeakageParamId2) {
var foundItem = res.data.find((item) => {
return item.property_id === waterLeakageParamId2 && item.device_id === element.deviceInfo.deviceId;
});
if (foundItem) {
var waterLeakageStatus2 = foundItem.curstatus > 0;
waterLeakage.waterLeakageStatus2 = waterLeakageStatus2;
}
}
if (waterLeakageParamId3) {
var foundItem = res.data.find((item) => {
return item.property_id === waterLeakageParamId3 && item.device_id === element.deviceInfo.deviceId;
});
if (foundItem) {
var waterLeakageStatus3 = foundItem.curstatus > 0;
waterLeakage.waterLeakageStatus3 = waterLeakageStatus3;
}
}
if (waterLeakageParamId4) {
var waterLeakageValue4 = res.data.find((item) => {
return item.property_id === waterLeakageParamId4 && item.device_id === element.deviceInfo.deviceId
})
waterLeakage['waterLeakageStatus4'] = waterLeakageValue4 && waterLeakageValue4.curstatus > 0;
if (waterLeakageValue4 && waterLeakageValue4.curvalue) {
waterLeakage.waterLeakageText4 = waterLeakageValue4.curvalue + ' ' + waterLeakage.waterLeakageText4;
} else {
waterLeakage.waterLeakageText4 = '';
}
}
if(waterLeakage.waterLeakageStatus1){
$('.leakage-item001').addClass('leakage-warn');
}
if(waterLeakage.waterLeakageStatus2){
$('.leakage-item002').addClass('leakage-warn');
}
if(waterLeakage.waterLeakageStatus3){
$('.leakage-item003').addClass('leakage-warn');
}
if(waterLeakage.waterLeakageStatus4){
$('.leakage-item004').addClass('leakage-warn');
}
$('.lsLocation').html(waterLeakage.waterLeakageText4)
}
})
}
},
error: function (err) {
console.log(err);
}
});
}
}
var tableData = []
var tableData2 = []
var displayNum;
var scrollTimer = null
// table滚动
function tableRefScroll () {
clearInterval(scrollTimer) // 清除定时器
const table = document.getElementById('scrollTable') // 获取DOM元素
const table2 = document.getElementById('scrollTable2') // 获取DOM元素
var wrapperHeight = table.offsetHeight
var wrapperHeight2 = table2.offsetHeight
// 组件一页能完整展示的数据条数
displayNum = Math.floor(wrapperHeight / 40)
displayNum2 = Math.floor(wrapperHeight2 / 40)
if (tableData.length > displayNum) {
const bodyWrapper = table // 获取表格中承载数据的div元素
addTableRefScroll(bodyWrapper, table, displayNum)
// 鼠标移入
bodyWrapper.onmouseover = () => {
clearInterval(scrollTimer)
}
// 鼠标移出
bodyWrapper.onmouseout = () => {
addTableRefScroll(bodyWrapper, table, displayNum)
}
} else if (tableData2.length > displayNum2) {
const bodyWrapper2 = table2 // 获取表格中承载数据的div元素
addTableRefScroll(bodyWrapper2, table2, displayNum2)
// 鼠标移入
bodyWrapper2.onmouseover = () => {
clearInterval(scrollTimer)
}
// 鼠标移出
bodyWrapper2.onmouseout = () => {
addTableRefScroll(bodyWrapper2, table2, displayNum2)
}
} else {
scrollTimer = setInterval(() => {
FetchInitSecurityDoorLog()
FetchAlarmInfo()
}, 1000 * 3 * tableData.length)
}
}
function addTableRefScroll (bodyWrapper, table, displayNum) {
if (displayNum && displayNum > 0) {
scrollTimer = setInterval(() => {
if (bodyWrapper.scrollTop + table.offsetHeight >= tableData.length * 40) {
bodyWrapper.scrollTop = 0
FetchInitSecurityDoorLog()
FetchAlarmInfo()
} else {
bodyWrapper.scrollTop += displayNum * 40
}
}, 1000 * 3 * displayNum)
}
}
function FetchInitSecurityDoorLog () {
$.ajax({
url: ajaxUrl + '/api/securitydoor/initSecurityDoorLog',
type: 'GET',
data: {
page: 0,
size: 30
},
success: function (res) {
if (res.code === 200) {
var result = res.data.content
if (result && result.length > 0) {
tableData.splice(0, result.length, ...result)
for (var i = 0; i < result.length; i++) {
var tempHtml;
tempHtml += "<tr><td>" + parseTime(result[i].createTime) + "</td><td>" + result[i].roomName + "</td><td>" + result[i].alarmMsg + "</td></tr>";
$("#fTbody").append(tempHtml);
}
tableRefScroll()
}
}
},
error: function (err) {
console.log(err);
}
});
}
function FetchAlarmInfo () {
$.ajax({
url: ajaxUrl + '/api/alarm/info',
type: 'GET',
data: {
storeroomId: null
},
success: function (res) {
if (res.code === 200) {
var result = res.data.content
if (result && result.length > 0) {
tableData2.splice(0, result.length, ...result)
for (var i = 0; i < result.length; i++) {
var tempHtml;
tempHtml += "<tr><td>" + parseTime(result[i].createTime) + "</td><td>" + result[i].roomName + "</td><td>" + result[i].alarmMsg + "</td></tr>";
$("#fTbody2").append(tempHtml);
}
tableRefScroll()
}
}
},
error: function (err) {
console.log(err);
}
});
}
function FetchArchivesNum () {
// 获取档案总数
$.ajax({
url: ajaxUrl + '/api/archives/getArchivesNum',
type: 'GET',
data: {},
success: function (res) {
if (res.code === 200) {
$('#archivesNum .timer').countTo({ from: 0, to: res.data });
}
},
error: function (err) {
console.log(err);
}
});
}
function FetchFileAnjuanNum () {
// 档案类别数量统计 文件总数,案卷总数
$.ajax({
url: ajaxUrl + '/api/archives/initArchivesTypeNum',
type: 'GET',
data: {},
success: function (res) {
if (res.code === 200) {
$('#filesNum .timer').countTo({ from: 0, to: res.data.filesNum });
$('#anjuanNum .timer').countTo({ from: 0, to: res.data.archivesNum });
}
},
error: function (err) {
console.log(err);
}
});
}
function FetchDevice () {
var devNumAll;
var lineNum;
// 设备总数,在线设备数,离线设备数
$.ajax({
url: ajaxUrl + '/api/device/list',
type: 'GET',
data: {
page: 0,
size: 10
},
success: function (res) {
if (res.code === 200) {
$('#deviceTotal .timer').countTo({ from: 0, to: res.data.totalElements });
devNumAll = res.data.totalElements
}
},
error: function (err) {
console.log(err);
}
});
// 在线设备数
$.ajax({
url: ajaxUrl + '/api/device/num',
type: 'GET',
data: {},
success: function (res) {
if (res.code === 200) {
$('#lineDevNum .timer').countTo({ from: 0, to: res.data });
lineNum = res.data
offlineDeviceNum = devNumAll - lineNum
$('#offlineDevice .timer').countTo({ from: 0, to: offlineDeviceNum });
}
},
error: function (err) {
console.log(err);
}
});
}
function FetchThisDayYearBorrowNum () {
$.ajax({
url: ajaxUrl + '/api/borrow/thisDayYearBorrowNum',
type: 'GET',
data: {},
success: function (res) {
if (res.code === 200) {
var mynroll1 = res.data.dayBorrow;
var r1 = new DigitRoll({
container: '#tnum1',
width: 7
});
r1.roll(mynroll1);
var mynroll2 = res.data.dayReturn;
var r2 = new DigitRoll({
container: '#tnum2',
width: 7
});
r2.roll(mynroll2);
var mynroll3 = res.data.monthBorrow;
var r3 = new DigitRoll({
container: '#tnum3',
width: 7
});
r3.roll(mynroll3);
var mynroll4 = res.data.monthReturn;
var r4 = new DigitRoll({
container: '#tnum4',
width: 7
});
r4.roll(mynroll4);
}
},
error: function (err) {
console.log(err);
}
});
}