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

669 lines
21 KiB
JavaScript
Raw Normal View History

/**
* 处理配置日志总量以及跳转日志界面
*/
$(function(){
//获取配置日志总数
getTotalLog();
});
/*function setTime(){
var chooseDate=new Date($('#beginDate').val());
chooseDate=chooseDate.setDate(chooseDate.getDate()+7);
var modifyTime=new Date(chooseDate);
2018-12-25 16:22:33 +08:00
$('#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){
$(this).attr("id",i+"logTotal");
//$(this).html(data[i].sum);
$(this).html("<a href='javascript:;' onclick='logSearch(\""+data[i].compileId+"\")'>"+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");
2018-12-14 14:17:09 +08:00
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";
}
});
}
2018-12-14 14:17:09 +08:00
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"));
}
});
2018-12-14 14:17:09 +08:00
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");
2018-12-14 14:17:09 +08:00
// 收回原展开的菜单
$(this).find("li").each(function(index){
$(this).children("a").children("span").next().removeClass("open");
$(this).children("ul").hide();
});
2018-12-14 14:17:09 +08:00
var count = 0;
// 选中左侧菜单
2018-12-14 14:17:09 +08:00
$(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();
});
2018-12-14 14:17:09 +08:00
if(topMenuId == 86){
if(functionId == 35 && count == 1){// HTTP/Mail(Advanced)
return true;
}
return false;
}
}
});
2018-12-14 14:17:09 +08:00
}else{
$(this).addClass("hide");
2018-12-14 14:17:09 +08:00
}
});
//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){
var title=$.validator.messages.log_trend;
var url=$("#jbox_cfg_url",parent.document).val();
url=url+"?cfgId="+cfgId;
top.$.jBox("iframe:"+url, {
title: title,
width: $(document).width()*0.8,
height: $(document).height()*0.8,
buttons: { close : true }
});
//alert(cfgId+'======'+url);
}
/*======================新增按照需求指定时间范围如取到天、小时等end=====================================*/