@ -14,6 +14,12 @@
< table border = 0 borderColorLight = "#99ccff" borderColorDark = "#FFFFFF" cellpadding = 4 cellspacing = 0 width = "100%" style = "position: sticky; z-index: 10000;" >
< tr style = "background-color: aqua;" >
< td >
< select id = "mntn-status" >
< option value = "0" > 全部 < / option >
< option value = "1" > 在线 < / option >
< option value = "2" > 离线 < / option >
< / select >
< select id = "lines" >
< option value = "0" > 全部线路 < / option >
< / select >
@ -53,7 +59,6 @@
< option value = "stop-frpc" > 停止frpc< / option >
< option value = "stop-aging-test" > 停止老化测试< / option >
< / select >
< input type = "checkbox" id = "mntn-mode" value = "1" > 运维模式 < input type = "checkbox" id = "quick-hb-mode" value = "1" > 快心跳模式
< input type = "button" id = "btn-send" value = " 下发命令 " / >
@ -141,6 +146,7 @@
< th colspan = "2" align = "center" > 重启次数< / th >
< th rowspan = "2" align = "center" > CMA服务器< / th >
< th rowspan = "2" align = "center" > SIM卡< / th >
< th rowspan = "2" align = "center" > 出厂Id< / th >
< th rowspan = "2" align = "center" > 版本< / th >
< / tr >
@ -197,12 +203,21 @@
$.getJSON(urlTarget, params, function(result) {
$('#term-cnt').text("装置数量:" + result.data.length);
var tableResult = $('#tbody-result')[0];
var dt = new Date();
var ts = dt.getTime() / 1000;
var mntn_status = $('#mntn-status').val();
var terminalCnt = 0;
for (var idx = 0; idx < result.data.length ; idx + + )
{
var item = result.data[idx];
var status_online = (ts - item.last_heartbeat_ts < = 720);
if (((mntn_status == 2) & & status_online) || ((mntn_status == 1) & & !status_online))
{
continue;
}
terminalCnt++;
var msgsObj = {};
if ('msgs' in item.raw_report)
{
@ -228,12 +243,12 @@
}
var td3 = '< span id = "cmdid-' + item.id + '" class = "cmdid" title = "' + text + '" > ' + item.cmdid + '< / span > ';
var td4 = (item.in_maintain == 0) ? '否' : '是 ';
var td5 = (item.quick_hb == 0) ? '否' : '是 ';
var td4 = '< input type = "checkbox" onclick = "javascript:UpdateMaintainMode(this, ' + item.id + ');" ' + ( ( item . in_maintain = = 0 ) ? ' ' : ' CHECKED ' ) + ' > ';
var td5 = '< input type = "checkbox" onclick = "javascript:UpdateQuickHbMode(this, ' + item.id + ');" ' + ( ( item . quick_hb = = 0 ) ? ' ' : ' CHECKED ' ) + ' > ';
var td6 = ConvertProtocolName(item.protocol);
// var hbDetailUrl = "hb.html?term_id=" + item.id + "& cmdid=" + item.cmdid + "& st=" + startTime + "& et=" + endTime;
var td7 = item.last_heartbeat_time;
var td7 = '< span class = "' + (status_online ? 'online-hb' : 'offline-hb') + '" > ' + item.last_heartbeat_time + '< / span > ' ;
var td8 = (('numberOfHb' in msgsObj) ? msgsObj.numberOfHb : '');
var td9 = (('heartbeatDuration' in msgsObj) ? msgsObj.heartbeatDuration : '');
var td10 = ('recv' in msgsObj) ? msgsObj.recv : '';
@ -254,6 +269,8 @@
var td20 = ('cma' in msgsObj) ? msgsObj.cma : '';
var td21 = (('simcard1' in msgsObj) ? ('< span title = "卡1" > ' + msgsObj.simcard1 + '< / span > ') : '') + '< br > ' + (('simcard2' in msgsObj) ? ('< span title = "卡2" > ' + msgsObj.simcard2 + '< / span > ') : '');
var td22 = ('oid' in item.raw_report) ? item.raw_report.oid : '';
var version = '';
if ('i1Version' in msgsObj)
{
@ -276,18 +293,29 @@
{
version += ' < b > MCU< / b > :' + msgsObj.mcu;
}
var td22 = version;
var td23 = version;
// "安徽欣影ds2-2x/4x,yw:0829_4.2.502, i1:ahxy_0829_4.2.502, cam:4.2.1, ai:1.1.0_1, i1服务器:47.96.238.157:6891 ,心跳间隔:1 ,
// 电池:6.3V\/0.2V\/87% ,系统重启:1 ,i1重启:13 ,收:10:52 ,拍:48\/44 ,成:44 ,败:0 ,传:44 ,
// 心跳累计:142 ,网络异常:139 ,信号1:4\/99 ,信号2:4\/99 ,卡1:898604F5122380159566,卡2: ,mcu:MTK_MCU_V3.2.5 Aug 9 2023"
var tr = AppendTable(tableResult, td1, td2, td3, td4, td5, td6, td7, td8, td9, td10, td11, td12, td13, td14, td15, td16, td17, td18, td19, td20, td21, td22);
if (( item.in_maintain != 0) || (item.quick_hb != 0))
var tr = AppendTable(tableResult, td1, td2, td3, td4, td5, td6, td7, td8, td9, td10, td11, td12, td13, td14, td15, td16, td17, td18, td19, td20, td21, td22, td23 );
if (item.in_maintain != 0)
{
tr.classList.add("in_maintain");
tr.cells[3].c lassList.add("in_maintain");
}
if (item.quick_hb != 0)
{
tr.cells[4].classList.add("in_maintain");
}
}
$('#term-cnt').text("装置数量:" + terminalCnt);
});
}
@ -332,6 +360,54 @@
}
}
function UpdateMaintainMode(src, termId) {
var params = {'act': 'mntn'};
params['mntn'] = $(src).prop('checked') ? 1 : 0;
var urlTarget = 'api/doAction.php';
params['termId'] = termId;
$.getJSON(urlTarget, params, function(result) {
for (var idx = 0; idx < result.data.length ; idx + + )
{
if (result.data[idx] == termId)
{
if (params['mntn'] == 1) {
src.parentNode.classList.add("in_maintain");
} else {
src.parentNode.classList.remove("in_maintain");
}
}
// $("#cmdid-" + result.data[idx]).addClass("sent");
}
});
}
function UpdateQuickHbMode(src, termId) {
var params = {'act': 'quickhb'};
params['quickhb'] = $(src).prop('checked') ? 1 : 0;
var urlTarget = 'api/doAction.php';
params['termId'] = termId;
$.getJSON(urlTarget, params, function(result) {
for (var idx = 0; idx < result.data.length ; idx + + )
{
if (result.data[idx] == termId)
{
if (params['quickhb'] == 1) {
src.parentNode.classList.add("in_maintain");
} else {
src.parentNode.classList.remove("in_maintain");
}
}
// $("#cmdid-" + result.data[idx]).addClass("sent");
}
});
}
$('#btn-send').click(function() {
var act = $('#act').val();
if ((act == null || act == '') & & !$('#mntn-mode').prop('checked') & & !$('#quick-hb-mode').prop('checked')) {
@ -419,7 +495,7 @@
params['remote_port'] = $('#frpc-remote-port').val();
if (params['remote_port'] == null || params['remote_port'] == '') {
alert('请输入Remote Port。');
$('#frpc-local-ip ').focus();
$('#frpc-remote-port ').focus();
return;
}
params['frpc_type'] = $('#frpc-type').val();