This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
k18-ntcs-web-ntc/src/main/webapp/static/global/scripts/pzLog.js
leijun 639ebb6be0 优化top.$.jBox日志趋势多条滚动条
点击顶部导航菜单后关闭top.$.jBox日志趋势弹框
2019-01-16 11:03:27 +08:00

674 lines
21 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 处理配置日志总量以及跳转日志界面
*/
$(function(){
//获取配置日志总数
getTotalLog();
});
/*function setTime(){
var chooseDate=new Date($('#beginDate').val());
chooseDate=chooseDate.setDate(chooseDate.getDate()+7);
var modifyTime=new Date(chooseDate);
$('#endDate').val(modifyTime.getFullYear()+"-"+((modifyTime.getMonth()+1)>=10?(modifyTime.getMonth()+1):"0"+(modifyTime.getMonth()+1))+"-"+(modifyTime.getDate()>=10?modifyTime.getDate():'0'+modifyTime.getDate())+' '+(modifyTime.getHours()>=10?modifyTime.getHours():'0'+modifyTime.getHours())+':'+(modifyTime.getMinutes()>=10?modifyTime.getMinutes():'0'+modifyTime.getMinutes())+':'+(modifyTime.getSeconds()>=10?modifyTime.getSeconds():'0'+modifyTime.getSeconds()));
}*/
function setTime(dayData){
var useTime=$('#beginDate').val();
if(useTime==''){
return;
}
var chooseDate=new Date(useTime);
chooseDate=chooseDate.setDate(chooseDate.getDate()+dayData);
var now =new Date();
if(now.getTime()<new Date(chooseDate).getTime()){
chooseDate=now;
}
var modifyTime=new Date(chooseDate);
$('#endDate').val(modifyTime.getFullYear()+"-"+((modifyTime.getMonth()+1)>=10?(modifyTime.getMonth()+1):"0"+(modifyTime.getMonth()+1))+"-"+(modifyTime.getDate()>=10?modifyTime.getDate():'0'+modifyTime.getDate())+' '+(modifyTime.getHours()>=10?modifyTime.getHours():'0'+modifyTime.getHours())+':'+(modifyTime.getMinutes()>=10?modifyTime.getMinutes():'0'+modifyTime.getMinutes())+':'+(modifyTime.getSeconds()>=10?modifyTime.getSeconds():'0'+modifyTime.getSeconds()));
}
function setTimee(){
var chooseDate=new Date($('#searchFoundStartTime').val());
chooseDate=chooseDate.setDate(chooseDate.getDate()+1);
var modifyTime=new Date(chooseDate);
$('#searchFoundEndTime').val(modifyTime.getFullYear()+"-"+((modifyTime.getMonth()+1)>=10?(modifyTime.getMonth()+1):"0"+(modifyTime.getMonth()+1))+"-"+(modifyTime.getDate()>=10?modifyTime.getDate():'0'+modifyTime.getDate())+' '+(modifyTime.getHours()>=10?modifyTime.getHours():'0'+modifyTime.getHours())+':'+(modifyTime.getMinutes()>=10?modifyTime.getMinutes():'0'+modifyTime.getMinutes())+':'+(modifyTime.getSeconds()>=10?modifyTime.getSeconds():'0'+modifyTime.getSeconds()));
}
function currentTime() {
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth() + 1;
var day = now.getDate();
var hh = now.getHours();
var mm = now.getMinutes();
var ss = now.getSeconds();
var clock = year + "-";
if (month < 10) clock += "0";
clock += month + "-";
if (day < 10) clock += "0";
clock += day + " ";
if (hh < 10) clock += "0";
clock += hh + ":";
if (mm < 10) clock += '0';
clock += mm + ":";
if (ss < 10) clock += '0';
clock += ss;
return (clock);
}
function getMaxDate(day){
var clock=currentTime();
var test=new Date();
var dt;
var times=0;
dt=$("#beginDate").val();
if(dt!=''){
times =Date.parse(dt.replace(/-/g,'/'))+day*24*60*60*1000;//时间间隔为10天
if(times-Date.parse(clock.replace(/-/g,'/'))<0){
var d1 = new Date(times);
var year = d1.getFullYear();
var month = d1.getMonth() + 1; //月份以0开头
var day = d1.getDate();
var hh = d1.getHours();
var mm = d1.getMinutes();
var ss = d1.getSeconds();
var clock = year + "-";
if (month < 10) clock += "0";
clock += month + "-";
if (day < 10) clock += "0";
clock += day + " ";
if (hh < 10) clock += "0";
clock += hh + ":";
if (mm < 10) clock += '0';
clock += mm + ":";
if (ss < 10) clock += '0';
clock += ss;
}
}
return clock;
}
var getTotalLog=function(){
/*
td需要配置属性有audit,functionIdcompileIdaction
*/
var data={};
//data.date=new Date();
data.compileIds=[];
data.serviceIds=[];
data.objs=[];
// data.url=null;
$("td[compileId]").each(function(){
var audit=$(this).attr("audit");
var compileId=$(this).attr("compileId");
var serviceId=$(this).attr("serviceId");
var functionId=$(this).attr("functionId");
/* if(data.url==null){
data.url=$(this).attr("url");
}*/
if(audit&&compileId&&functionId&&serviceId){
if(audit != 0){
var has=false;
for(var i=0;i<data.serviceIds.length;i++){
if(data.serviceIds[i]==$(this).attr("serviceId")){
has=true;
}
}
if(!has){
data.serviceIds.push($(this).attr("serviceId"));
}
//$(this).attr("date",data.date.getTime());
data.compileIds.push($(this).attr("compileId"));
data.functionId=$(this).attr("functionId");
data.objs.push($(this));
}else{
$(this).html("0");
}
}else{
$(this).html("0");
}
});
if(data.compileIds.length>0){
GetLogTotal(data);
}
}
var GetLogTotal=function(_data){
var pathName=window.document.location.pathname.substring(0,window.document.location.pathname.indexOf("/nis")+4);
var timeStamp;
if(_data.date){
timeStamp=_data.date.valueOf();
}/*else{
timeStamp=(new Date()).valueOf();
}*/
var totalTrs=$(_data.objs);
var timeout=$.validator.messages.timeout;
var failed=$.validator.messages.failed;
var request=$.ajax({
type:'post',
timeout:10000,//超时时间设置,查询接口时间过长超时
url:pathName+'/report/ajaxGetLogTotal',
data:{"endTime":timeStamp,"serviceIds":_data.serviceIds.join(','),"functionId":_data.functionId,"compileIds":_data.compileIds.join(',')},
dataType:'json',
async:true,
success:function(data,textStatus){//处理返回结果
if(textStatus=="success"){
totalTrs.each(function(){
var hasLog=false;
for(var i=0;i<data.length;i++){
if($(this).attr("compileId")==data[i].compileId){
var serviceId= $(this).attr("serviceId");
$(this).attr("id",i+"logTotal");
//$(this).html(data[i].sum);
$(this).html("<a href='javascript:;' onclick='logSearch(\""+data[i].compileId+"\",\""+serviceId+"\")'>"+data[i].sum+"<a>");
$(this).parent("tr").find("td:eq(1)").html("<a href='javascript:;' onclick='toLogSearch("+i+")'>"+data[i].compileId+"<a>");
hasLog=true;
}
}
if(!hasLog){
$(this).html("0");
}
})
}
},
complete:function(XMLHttpRequest,status){//超时设置
if(status=="timeout"){
totalTrs.each(function(){
$(this).html(timeout);
})
}else if(status !="success"){
totalTrs.each(function(){
$(this).html(failed);
})
}
}
});
}
var toLogSearch = function(index){
// 保存配置界面URL
$("#searchForm").each(function(){
var cfgUrl = $(this).attr("action");
sessionStorage.removeItem('cfg_url');
sessionStorage.setItem('cfg_url',cfgUrl);
});
var td = document.getElementById(index+"logTotal");
$("td[compileId]").each(function(){
if($(this).attr("id") == index+"logTotal"){
// 获取检索日志参数
var serviceId=$(this).attr("serviceId");
var compileId=$(this).attr("compileId");
var functionId=$(this).attr("functionId");
var date=$(this).attr("date");
var pathName=window.document.location.pathname.substring(0,window.document.location.pathname.indexOf("/nis")+4);
switchMenu("152",functionId);
window.location.href = pathName+"/toLogSearch?service="+serviceId+"&functionId="+functionId+"&cfgId="+compileId+"&date="+date+"&isLogTotalSearch=yes";
}
});
}
var switchMenu = function(topMenuId,functionId,oldMenuName){
// 顶部菜单切换 menuId Policies/86 Logs/152
$(".hor-menu ul li",parent.document).each(function(){
var id = $(this).children("a").attr("id");
if(id == topMenuId){
$(this).addClass("active");
}else{
$(this).removeClass("active");
}
});
// 保留左侧菜单特征
var menusObj = $(".page-sidebar ul[class!='hide'] .active",parent.document);
var firstMenuName = menusObj.attr("menu-name");
var lastMenuName = $(menusObj,parent.document).last("li[class='nav-item active']").attr("menu-name");
var middleMenu = new Array();
$(menusObj,parent.document).find("li").each(function(){
if($(this).hasClass("active")){
middleMenu.push($(this).attr("menu-name"));
}
});
if(topMenuId == 152){
if(functionId == 8 || functionId == 35){// HTTP or Mail
lastMenuName = middleMenu[0];
}
sessionStorage.removeItem('old_memu_name');
sessionStorage.setItem('old_memu_name',middleMenu[middleMenu.length-1]);
}else{
lastMenuName = oldMenuName;
}
// 左侧菜单切换
$(".page-sidebar",parent.document).find("ul[id]").each(function(){
var id = $(this).attr("id")
if(id.indexOf(topMenuId) != -1){
$(this).removeClass("hide");
// 收回原展开的菜单
$(this).find("li").each(function(index){
$(this).children("a").children("span").next().removeClass("open");
$(this).children("ul").hide();
});
var count = 0;
// 选中左侧菜单
$(this).find("li").each(function(index){
if($(this).attr("menu-name") == lastMenuName){
count++;
$(this).children("a").trigger("click");// 选中底层菜单
$(this).parents("li").each(function(){
$(this).addClass("active open");
$(this).children("a").children("span").next().addClass("open");
$(this).children("ul").show();
});
if(topMenuId == 86){
if(functionId == 35 && count == 1){// HTTP/Mail(Advanced)
return true;
}
return false;
}
}
});
}else{
$(this).addClass("hide");
}
});
//loading('onloading');
}
/*======================时间验证方法start===========================*/
//startTimeSelector:输入框开始时间选择器;
//endTimeSelector:输入框结束时间选择器;
//granule:时间粒度(数字);
//unit:时间粒度单位(h-小时,d-天,w-周,m-月);
//formate时间格式;默认格式yyyy-MM-dd hh:mm:ss
//future:选择的时间是否可以为未来时间 true or false 默认false(不能为未来时间)
function setEndTime(startTimeSelector,endTimeSelector,granule,unit,formate,future){
if(strIsBlank(granule)||strIsBlank(unit)){
console.log("时间粒度或时间单位为空");
return;
}
if(strIsBlank(startTimeSelector)||strIsBlank(endTimeSelector)){
console.log("时间输入框选择器为空");
return;
}
if(strIsBlank(formate)){
formate="yyyy-MM-dd hh:mm:ss"
}
if(future==null || future==undefined){
future=false;
}
var startTimeVal=$(startTimeSelector).val();
var endTimeVal=$(endTimeSelector).val();
var startTime;
var endTime;
var diff=getTimeDiff(granule,unit);//得到时间粒度差值
if(!strIsBlank(endTimeVal)){
endTime=new Date(endTimeVal);
var currentTime=new Date().getTime();
if(!future&&endTime.getTime()>currentTime){ //endTime不能是未来时间
endTime=new Date();
}
if(strIsBlank(startTimeVal)){
startTime=new Date(endTime.getTime()-diff);
}else{//startTime和endTime都不为空
startTime=new Date(startTimeVal);
if(endTime.getTime()-startTime.getTime()>diff||endTime.getTime()-startTime.getTime()<=0){//startTime不在时间粒度之内
startTime=new Date(endTime.getTime()-diff);
}
}
}else{
if(strIsBlank(startTimeVal)){//startTime and endTime 都为空
endTime=new Date();
startTime=new Date(endTime.getTime()-diff);
}else{//startTime 不为空endTime为空
setStartTime(startTimeSelector,endTimeSelector,granule,unit,formate,future);
return;
}
}
$(startTimeSelector).val(dateFtt(formate,startTime));
$(endTimeSelector).val(dateFtt(formate,endTime));
}
//startTimeSelector:输入框开始时间选择器;
//endTimeSelector:输入框结束时间选择器;
//granule:时间粒度(数字);
//unit:时间粒度单位(h-小时,d-天,w-周,m-月);
//formate时间格式;默认格式yyyy-MM-dd hh:mm:ss
//future:选择的时间是否可以为未来时间 true or false 默认false(不能为未来时间)
function setStartTime(startTimeSelector,endTimeSelector,granule,unit,formate,future){
if(strIsBlank(granule)||strIsBlank(unit)){
//console.log("时间粒度或时间单位为空");
return;
}
if(strIsBlank(startTimeSelector)||strIsBlank(endTimeSelector)){
//console.log("时间输入框选择器为空");
return;
}
if(strIsBlank(formate)){
formate="yyyy-MM-dd hh:mm:ss"
}
if(future==null || future==undefined){
future=false;
}
var startTimeVal=$(startTimeSelector).val();
var endTimeVal=$(endTimeSelector).val();
var startTime;
var endTime;
var diff=getTimeDiff(granule,unit);//得到时间粒度差值
if(!strIsBlank(startTimeVal)){
startTime=new Date(startTimeVal);
var currentTime=new Date().getTime();
if(!future&&startTime.getTime()>currentTime){//startTime是一个超过当前时间值
startTime=new Date(currentTime-diff);
}
if(strIsBlank(endTimeVal)){
if(startTime.getTime()+diff>currentTime){
endTime=new Date();
}else{
endTime=new Date(startTime.getTime()+diff);
}
}else{//startTime和endTime都不为空
endTime=new Date(endTimeVal);
if(endTime.getTime()-startTime.getTime()>diff||endTime.getTime()-startTime.getTime()<=0){//endTime不在时间粒度之内
if(startTime.getTime()+diff>currentTime){
endTime=new Date();
startTime=new Date(endTime.getTime()-5*60*1000);
}else{
endTime=new Date(startTime.getTime()+diff);
}
}
}
}else{
if(strIsBlank(endTimeVal)){//startTime和endTime 都为空
endTime=new Date();
startTime=new Date(endTime.getTime()-diff);
}else{
setEndTime(startTimeSelector,endTimeSelector,granule,unit,formate,future);
return;
}
}
$(startTimeSelector).val(dateFtt(formate,startTime));
$(endTimeSelector).val(dateFtt(formate,endTime));
}
function strIsBlank(obj){
if(obj==null || obj==undefined|| obj==''){
return true;
}else{
return false;
}
}
/*得到时间差值 单位毫秒*/
function getTimeDiff(granule,unit){
var diff=0;
switch(unit){
case 'h'://小时为单位
diff=granule*60*60*1000;
break;
case 'd'://天为单位
diff=granule*24*60*60*1000;
break;
case 'w'://周为单位
diff=granule*7*24*60*60*1000;
break;
case 'm'://月为单位
diff=granule*30*24*60*60*1000;
break;
default:
diff=granule*60*60*1000;
}
return diff;
}
function dateFtt(fmt,date){
var o = {
"M+" : date.getMonth()+1, //月份
"d+" : date.getDate(), //日
"h+" : date.getHours(), //小时
"m+" : date.getMinutes(), //分
"s+" : date.getSeconds(), //秒
"q+" : Math.floor((date.getMonth()+3)/3), //季度
"S" : date.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt))
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
return fmt;
}
/*======================时间验证方法end===========================*/
/*======================新增按照需求指定时间范围如取到天、小时等start=====================================*/
//startTimeSelector:输入框开始时间选择器;
//endTimeSelector:输入框结束时间选择器;
//granule:时间粒度(数字);
//unit:时间粒度单位(h-小时,d-天,w-周,m-月);
//formate时间格式;默认格式yyyy-MM-dd hh:mm:ss
//future:选择的时间是否可以为未来时间 true or false 默认false(不能为未来时间)
//formatParm有效时间范围参数yyyy-MM-dd HH例如时间范围限制到小时yyyy-MM-dd HH:00:00yyyy-MM-dd例如时间范围限制到天yyyy-MM-dd 00:00:00
function setEndTimeByFormat(startTimeSelector,endTimeSelector,granule,unit,formate,future,formatParm){
if(strIsBlank(granule)||strIsBlank(unit)){
console.log("时间粒度或时间单位为空");
return;
}
if(strIsBlank(startTimeSelector)||strIsBlank(endTimeSelector)){
console.log("时间输入框选择器为空");
return;
}
if(strIsBlank(formate)){
formate="yyyy-MM-dd hh:mm:ss"
}
var endStr="";
if(strIsBlank(formatParm)){
formatParm = formate;
}else{
if((formate.length-formatParm.length) == 3){
endStr="00";
}else if((formate.length-formatParm.length) == 6){
endStr=":00:00";
}else if((formate.length-formatParm.length) == 9){
endStr=" 00:00:00";
}else{
endStr="";
}
}
if(future==null || future==undefined){
future=false;
}
var startTimeVal=$(startTimeSelector).val();
var endTimeVal=$(endTimeSelector).val();
//alert(startTimeVal);
//alert(endTimeVal);
//alert(startTimeVal.substr(0,formatParm.length-1);
var startTime;
var endTime;
var diff=getTimeDiff(granule,unit);//得到时间粒度差值
if(!strIsBlank(endTimeVal)){
endTime=new Date(endTimeVal);
var currentTime=new Date().getTime();
if(!future&&endTime.getTime()>currentTime){ //endTime不能是未来时间
endTime=new Date();
}
if(strIsBlank(startTimeVal)){
startTime=new Date(endTime.getTime()-diff);
}else{//startTime和endTime都不为空
startTime=new Date(startTimeVal);
if(endTime.getTime()-startTime.getTime()>diff||endTime.getTime()-startTime.getTime()<=0){//startTime不在时间粒度之内
startTime=new Date(endTime.getTime()-diff);
}
}
}else{
if(strIsBlank(startTimeVal)){//startTime and endTime 都为空
endTime=new Date();
startTime=new Date(endTime.getTime()-diff);
}else{//startTime 不为空endTime为空
setStartTimeByFormat(startTimeSelector,endTimeSelector,granule,unit,formate,future);
return;
}
}
//$(startTimeSelector).val(dateFtt(formate,startTime));
//$(endTimeSelector).val(dateFtt(formate,endTime));
$(startTimeSelector).val(dateFtt(formatParm,startTime)+endStr);
$(endTimeSelector).val(dateFtt(formatParm,endTime)+endStr);
}
//startTimeSelector:输入框开始时间选择器;
//endTimeSelector:输入框结束时间选择器;
//granule:时间粒度(数字);
//unit:时间粒度单位(h-小时,d-天,w-周,m-月);
//formate时间格式;默认格式yyyy-MM-dd hh:mm:ss
//future:选择的时间是否可以为未来时间 true or false 默认false(不能为未来时间)
function setStartTimeByFormat(startTimeSelector,endTimeSelector,granule,unit,formate,future,formatParm){
if(strIsBlank(granule)||strIsBlank(unit)){
//console.log("时间粒度或时间单位为空");
return;
}
if(strIsBlank(startTimeSelector)||strIsBlank(endTimeSelector)){
//console.log("时间输入框选择器为空");
return;
}
if(strIsBlank(formate)){
formate="yyyy-MM-dd hh:mm:ss"
}
var endStr="";
if(strIsBlank(formatParm)){
formatParm = formate;
}else{
if((formate.length-formatParm.length) == 3){
endStr="00";
}else if((formate.length-formatParm.length) == 6){
endStr=":00:00";
}else if((formate.length-formatParm.length) == 9){
endStr=" 00:00:00";
}else{
endStr="";
}
}
if(future==null || future==undefined){
future=false;
}
var startTimeVal=$(startTimeSelector).val();
var endTimeVal=$(endTimeSelector).val();
var startTime;
var endTime;
var diff=getTimeDiff(granule,unit);//得到时间粒度差值
if(!strIsBlank(startTimeVal)){
startTime=new Date(startTimeVal);
var currentTime=new Date().getTime();
if(!future&&startTime.getTime()>currentTime){//startTime是一个超过当前时间值
startTime=new Date(currentTime-diff);
}
if(strIsBlank(endTimeVal)){
if(startTime.getTime()+diff>currentTime){
endTime=new Date();
}else{
endTime=new Date(startTime.getTime()+diff);
}
}else{//startTime和endTime都不为空
endTime=new Date(endTimeVal);
if(endTime.getTime()-startTime.getTime()>diff||endTime.getTime()-startTime.getTime()<=0){//endTime不在时间粒度之内
if(startTime.getTime()+diff>currentTime){
endTime=new Date();
startTime=new Date(endTime.getTime()-5*60*1000);
}else{
endTime=new Date(startTime.getTime()+diff);
}
}
}
}else{
if(strIsBlank(endTimeVal)){//startTime和endTime 都为空
endTime=new Date();
startTime=new Date(endTime.getTime()-diff);
}else{
setEndTimeByFormat(startTimeSelector,endTimeSelector,granule,unit,formate,future);
return;
}
}
//$(startTimeSelector).val(dateFtt(formate,startTime));
//$(endTimeSelector).val(dateFtt(formate,endTime));
$(startTimeSelector).val(dateFtt(formatParm,startTime)+endStr);
$(endTimeSelector).val(dateFtt(formatParm,endTime)+endStr);
}
function logSearch(cfgId,serviceId){
var title=$.validator.messages.log_trend;
var url=$("#jbox_cfg_url",parent.document).val();
url=url+"?cfgId="+cfgId+"&serviceId="+serviceId;
top.$.jBox("iframe:"+url, {
title: title,
width: $(document).width()*0.8,
height: $(document).height()*0.8,
buttons: { close : true },
loaded : function(h) { //隐藏滚动条
$(".jbox-content", top.document).css( "overflow-y", "hidden");
}
});
//alert(cfgId+'======'+url);
}
/*======================新增按照需求指定时间范围如取到天、小时等end=====================================*/