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

392 lines
13 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 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()));
}
var getTotalLog=function(){
/*
td需要配置属性有audit,functionIdcompileIdaction
*/
var data={};
//data.date=new Date();
data.compileIds=[];
data.serviceIds=[];
data.objs=[];
$("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(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).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===========================*/