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/common.js

661 lines
22 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(){
//全选及取消
$("#checkAll").change(function(){
if($("#checkAll").prop("checked")){
$("input.i-checks").prop("checked",true);
}else{
$("input.i-checks").prop("checked",false);
}
});
$("select[name$='ipType']").each(function(){
switchIpInfo(this);
})
$("select[name$='ipType']").on("change",function(){
switchIpInfo(this);
});
$("select[name$='ipPattern']").on("change",function(){
switchIpInfo(this);
});
$("select[name$='portPattern']").on("change",function(){
switchIpInfo(this);
});
$(".glyphicon-plus").on("click",function(){
var obj=$(this).parents(".form-section").next(".container-fluid").clone();
var len=$(this).parents("div").find(".container-fluid:visible").size();
if($(this).parent().parent().parent().attr("id")=="areaIp"){
obj.find("[id^='_areaCfg']").each(function(){
var name=$(this).attr("id").replace("_areaCfg.","");
$(this).removeAttr("id");
$(this).attr("name","areaCfg["+len+"]."+name);
$(this).parents(".form-group").find("div[for^='_areaCfg']").attr("for","areaCfg["+len+"]."+name);
$(this).selectpicker("refresh");
});
obj.removeClass("hidden");
switchIpInfo(obj.find("select[name$='ipType']"));
obj.find("select[name$='ipType']").on("change",function(){
switchIpInfo($(this));
});
obj.find("select[name$='ipPattern']").on("change",function(){
switchIpInfo($(this));
});
obj.appendTo("#areaIp");
$("#areaIsp").find(".container-fluid").each(function(){
if(!$(this).hasClass("hidden")) $(this).remove();
});
if(len==0){
$("#areaIp").find(".container-fluid:visible").eq(0).find("span[title=remove]").addClass("hidden");
}
}else if($(this).parent().parent().parent().attr("id")=="areaIsp"){
obj.find("[name^='areaCode']").each(function(){
$(this).attr("name","areaIsp["+len+"].area");
$(this).parents(".form-group").find("div[for^='areaCode']").attr("for","areaIsp["+len+"].area");
$(this).selectpicker("refresh");
});
obj.find("[name^='ispCode']").each(function(){
$(this).attr("name","areaIsp["+len+"].isp");
$(this).selectpicker("refresh");
});
obj.removeClass("hidden");
obj.appendTo("#areaIsp");
$("#areaIp").find(".container-fluid").each(function(){
if(!$(this).hasClass("hidden")) $(this).remove();
});
if(len==0){
$("#areaIsp").find(".container-fluid:visible").eq(0).find("span[title=remove]").addClass("hidden");
}
}
});
$("input[name='areaType']").on('change',function(){
var val=$(this).val();
if($(this).is(":visible")){
if(val==0){
$("#areaIp").removeClass("hidden");
$("#areaIsp").addClass("hidden");
if($("#areaIp").find(".container-fluid:visible").size() <1){
$("#areaIp").find(".glyphicon-plus").click();
}
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
})
});
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}else{
$("#areaIsp").removeClass("hidden");
$("#areaIp").addClass("hidden");
if($("#areaIsp").find(".container-fluid:visible").size() <1){
$("#areaIsp").find(".glyphicon-plus").click();
}
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
})
});
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}
}else{
$("#areaIsp").addClass("hidden");
$("#areaIp").addClass("hidden");
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}
});
$("input[name='isAreaEffective']").on('change',function(){
var val=$(this).val();
if(val==1){
$(".areaType").find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
});
$(".areaType").removeClass("hidden");
if($("input[name='areaType']:checked").val()==1){//areaISP
$("#areaIsp").removeClass("hidden");
if($("#areaIsp").find(".container-fluid:visible").size() <1){
$("#areaIsp").find(".glyphicon-plus").click();
}
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
})
});
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}else if($("input[name='areaType']:checked").val()==0){//areaIp
$("#areaIp").removeClass("hidden");
if($("#areaIp").find(".container-fluid:visible").size() <1){
$("#areaIp").find(".glyphicon-plus").click();
}
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
})
});
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}else{
$(".areaType").find("[value='1']").prop("checked",true);
$("#areaIsp").removeClass("hidden");
if($("#areaIsp").find(".container-fluid:visible").size() <1){
$("#areaIsp").find(".glyphicon-plus").click();
}
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
})
});
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}
}else{
$(".areaType").addClass("hidden");
$("#areaIp").addClass("hidden");
$("#areaIsp").addClass("hidden");
$(".areaType").find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
});
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}
});
areaControlInit();
/*=====关键字与表达式处理 开始=====*/
var tagsInputSettings="#tags";
$("input[name$='cfgKeywords']").each(function(){
var tagsId = $(this).attr("id");
var objNamePrefix = $(this).attr("name").split("cfgKeywords")[0];
var isTags = $(this).hasClass("tags");//有tags样式的关键字输入框才需处理
if(typeof(tagsId)!=='undefined' && tagsId.indexOf("tags_")!=-1 && isTags){
//表单中如果有关键字内容可能输入多个关键字的情况,根据输入关键字个数确定表达式选中情况,不允许手动选中
$("input:radio[name='"+objNamePrefix+"exprType']").attr("disabled",true);
tagsInputSettings = tagsInputSettings+",#"+tagsId;
}
});
$(tagsInputSettings).tagsInput({
width:$(".form-control").width(),
defaultText:'please input keywords',
'delimiter':'***and***',//特殊字符串分隔与表达式的多关键词
onAddTag:function(tag,size){
//var keywordValue = "";
var objNamePrefix = $(this).attr("name").split("cfgKeywords")[0];
/*$("span[class='tag']").each(function(){
keywordValue = keywordValue+"***iie***"+$(this).find("span").text().trim();
});
$(this).prev("input[name$='cfgKeywords']").val(keywordValue);*/
exprTypeChecked(objNamePrefix,size);
},
onRemoveTag:function(tag,size){
//var keywordValue = "";
var objNamePrefix = $(this).attr("name").split("cfgKeywords")[0];
/*$("span[class='tag']").each(function(){
keywordValue = keywordValue+"***iie***"+$(this).find("span").text().trim();
});
$(this).prev("input[name$='cfgKeywords']").val(keywordValue);*/
exprTypeChecked(objNamePrefix,size);
}
});
$(".tagsinput").popover({
animation:true,
container:'body',
placement:'right',
html:true,
trigger:"hover",
title:"",
content:function(){
var content = $("#tagsinputTip").text();
return content;
}
});
/*=====关键字与表达式处理 结束=====*/
/*$("input[name$='cfgKeywords']").each(function(){
if($(this).hasClass("tags")){
if($(this).val()==''){
$(this).parents(".form-group").find(
"div[for='"
+ $(this).attr("name")
+ "']").html("<label id=\"cfgKeywordsError\" class=\"error\">"+$("#keywordError").text()+"</label>");
flag = false;
return;
}
}
})*/
//处理增强字符串配置的匹配区域
$(".district").each(function(){
if($(this).siblings(".otherValue").val()!=''){
if($(this).val()!=$(this).siblings(".otherValue").val()){
$(this).find("option[value=others]").attr("selected","selected");
$(this).siblings(".otherValue").prop("type","text");
}
}
});
});
var switchIpType=function(obj){
var type=$(obj).val();
var row=$(obj).parents('.row');
var ipPattern=row.siblings().find("input[name$='ipPattern']");
var portPattern=row.siblings().find("input[name$='portPattern']");
var srcIp=row.siblings().find("input[name$='srcIpAddress']");
var dstIp=row.siblings().find("input[name$='destIpAddress']");
var srcPort=row.siblings().find("input[name$='srcPort']");
var dstPort=row.siblings().find("input[name$='destPort']");
if(4==type){
if(!$(srcIp).val()){
$(srcIp).val("0.0.0.0");
}else if($(srcIp).val()=="::"){
$(srcIp).val("0.0.0.0");
}
if(!$(dstIp).val()){
$(dstIp).val("0.0.0.0");
}else if($(dstIp).val()=="::"){
$(dstIp).val("0.0.0.0");
}
if(!$(srcPort).val()){
$(srcPort).val("0");
}
if(!$(dstPort).val()){
$(dstPort).val("0");
}
}
if(6==type){
if(!$(srcIp).val()){
$(srcIp).val("::");
}else if($(srcIp).val()=="0.0.0.0"){
$(srcIp).val("::");
}
if(!$(dstIp).val()){
$(dstIp).val("::");
}else if($(dstIp).val()=="0.0.0.0"){
$(dstIp).val("::");
}
if(!$(srcPort).val()){
$(srcPort).val("0");
}
if(!$(dstPort).val()){
$(dstPort).val("0");
}
}
}
//ipType、ipPattern、portPattern选项变化时调用此方法添加默认值
var switchIpInfo=function(obj){
var ipType="";
var ipPattern="";
var portPattern="";
var row=$(obj).parents('.row').parent('.row');
ipType=row.find("select[name$='ipType']").val();
ipPattern=row.find("select[name$='ipPattern']").val();
portPattern=row.find("select[name$='portPattern']").val();
var srcIp=row.find("input[name$='srcIpAddress']");
var destIp=row.find("input[name$='destIpAddress']");
var srcPort=row.find("input[name$='srcPort']");
var destPort=row.find("input[name$='destPort']");
var ipV4Default=new Array();
ipV4Default[0]="0.0.0.0/8"; //subnet
ipV4Default[1]="0.0.0.0-1.1.1.1";//ip_range
ipV4Default[2]="0.0.0.0"; //ip
var ipV6Default=new Array();
ipV6Default[0]="::/64"; //subnet
ipV6Default[1]="::-::";//ip_range
ipV6Default[2]="::"; //ip
var portDefault=new Array();
portDefault[0]="0";//port
portDefault[1]="0/0";//port_mask
//IPv4设置默认值
if(4==ipType){
if(!$(srcIp).val()){
if(ipPattern==1){
$(srcIp).val(ipV4Default[0]);
}else if(ipPattern==2){
$(srcIp).val(ipV4Default[1]);
}else if(ipPattern==3){
$(srcIp).val(ipV4Default[2]);
}
}else{
if($.inArray($(srcIp).val(),ipV4Default) > -1 || $.inArray($(srcIp).val(),ipV6Default) > -1){ //是ipV4的默认值其中一个
if(ipPattern==1){
$(srcIp).val(ipV4Default[0]);
}else if(ipPattern==2){
$(srcIp).val(ipV4Default[1]);
}else if(ipPattern==3){
$(srcIp).val(ipV4Default[2]);
}
}
}
if(!$(destIp).val()){
if(ipPattern==1){
$(destIp).val(ipV4Default[0]);
}else if(ipPattern==2){
$(destIp).val(ipV4Default[1]);
}else if(ipPattern==3){
$(destIp).val(ipV4Default[2]);
}
}else{
if($.inArray($(destIp).val(),ipV4Default) > -1 || $.inArray($(destIp).val(),ipV6Default) > -1){ //是ipV4的默认值其中一个
if(ipPattern==1){
$(destIp).val(ipV4Default[0]);
}else if(ipPattern==2){
$(destIp).val(ipV4Default[1]);
}else if(ipPattern==3){
$(destIp).val(ipV4Default[2]);
}
}
}
}
if(6==ipType){
if(!$(srcIp).val()){
if(ipPattern==1){
$(srcIp).val(ipV6Default[0]);
}else if(ipPattern==2){
$(srcIp).val(ipV6Default[1]);
}else if(ipPattern==3){
$(srcIp).val(ipV6Default[2]);
}
}else{
if($.inArray($(srcIp).val(),ipV4Default) > -1 || $.inArray($(srcIp).val(),ipV6Default) > -1){ //是ipV6的默认值其中一个
if(ipPattern==1){
$(srcIp).val(ipV6Default[0]);
}else if(ipPattern==2){
$(srcIp).val(ipV6Default[1]);
}else if(ipPattern==3){
$(srcIp).val(ipV6Default[2]);
}
}
}
if(!$(destIp).val()){
if(ipPattern==1){
$(destIp).val(ipV6Default[0]);
}else if(ipPattern==2){
$(destIp).val(ipV6Default[1]);
}else if(ipPattern==3){
$(destIp).val(ipV6Default[2]);
}
}else{
if($.inArray($(destIp).val(),ipV4Default) > -1 || $.inArray($(destIp).val(),ipV6Default) > -1){ //是ipV6的默认值其中一个
if(ipPattern==1){
$(destIp).val(ipV6Default[0]);
}else if(ipPattern==2){
$(destIp).val(ipV6Default[1]);
}else if(ipPattern==3){
$(destIp).val(ipV6Default[2]);
}
}
}
}
//设置源端口默认值
if(!$(srcPort).val()){
if(portPattern==1){
$(srcPort).val(portDefault[0]);
}else if(portPattern==2){
$(srcPort).val(portDefault[1]);
}
}else{
if($.inArray($(srcPort).val(),portDefault) > -1){ //是ipV4的默认值其中一个
if(portPattern==1){
$(srcPort).val(portDefault[0]);
}else if(portPattern==2){
$(srcPort).val(portDefault[1]);
}
}
}
//设置目的端口默认值
if(!$(destPort).val()){
if(portPattern==1){
$(destPort).val(portDefault[0]);
}else if(portPattern==2){
$(destPort).val(portDefault[1]);
}
}else{
if($.inArray($(destPort).val(),portDefault) > -1){ //是port的默认值其中一个
if(portPattern==1){
$(destPort).val(portDefault[0]);
}else if(portPattern==2){
$(destPort).val(portDefault[1]);
}
}
}
}
var areaControlInit=function(){
if($("input[name='isAreaEffective']:checked").val()==1){
$(".areaType").removeClass("hidden");
if($("input[name='areaEffectiveIds']").val()){
$(".areaType").find("[value='1']").prop("checked",true);
$("#areaIsp").removeClass("hidden");
$("#areaIp").addClass("hidden");
}else{
$(".areaType").find("[value='0']").prop("checked",true);
$("#areaIp").removeClass("hidden");
$("#areaIsp").addClass("hidden");
}
}else{
$("input[name='areaEffectiveIds']").val("");
$("input[name='isAreaEffective']").eq(1).prop("checked",true);
}
}
//查询
var page=function(n,s){
$("#intype").attr("name",$("#seltype").val());
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").submit();
return false;
}
//show more 添加更多属性
var more=function(obj){
var clickTimes=$(obj).data("click-times");
if(clickTimes==0){
$(".port").removeClass("hidden").removeClass("disabled");
$(obj).data("click-times",clickTimes+1);
}
if(clickTimes==1){
$(".destPort").removeClass("hidden").removeClass("disabled");
$(obj).data("click-times",clickTimes+1);
}
if(clickTimes==2){
$(".protocol").removeClass("hidden").removeClass("disabled");
$(obj).data("click-times",clickTimes+1);
}
var rows=$(obj).parent(".row").siblings(".row:hidden");
if(rows.size()==0){
$(obj).addClass("hidden");
}
}
var viewAreaInfo=function(path,areaEffectiveIds,compileId){
$.ajax({
type:'post',
url:path+'/ntc/av/area/ajaxAreaEffictiveInfo',
data:{"areaEffectiveIds":areaEffectiveIds,"compileId":compileId},
dataType:'json',
async:false,
success:function(data,textStatus){
if(textStatus=="success"){
var html = "";
var title="";
if(data.areaIsps.length > 0){
title=$.validator.messages.area+" "+$.validator.messages.isp;
html+="<table class='table table-striped table-bordered table-condensed' style='margin-left: 10px; width: 96%;'>";
html+="<thead>";
html+="<th style='width:50%;padding-right:0px'>"+$.validator.messages.area+"</th>" +
"<th style='width:50%;padding-right:0px'>"+$.validator.messages.isp+"</th>";
html+="</thead>";
html+="<tbody>";
for(i=0;i<data.areaIsps.length;i++){
html+="<tr>";
html+="<td>"+data.areaIsps[i].areaName;
html+="</td>";
html+="<td>"+data.areaIsps[i].ispName;
html+="</td>";
html+="</tr>";
}
html+="</tbody>";
html+="</table>";
}
if(data.areaIps.length > 0){
title=$.validator.messages.area+" ip";
html+="<table class='table table-striped table-bordered table-condensed' style='margin-left: 10px; width: 96%;'>";
html+="<thead>";
html+="<th style='width:20%;padding-right:0px'>"+$.validator.messages.ip_type+"</th>" +
"<th style='width:20%;padding-right:0px'>"+$.validator.messages.ip_pattern+"</th>" +
"<th style='width:60%;padding-right:0px'>"+$.validator.messages.client_ip+"</th>";
html+="</thead>";
html+="<tbody>";
for(i=0;i<data.areaIps.length;i++){
html+="<tr>";
html+="<td>";
if(data.areaIps[i].ipType==4){
html+=$.validator.messages.ipv4;
}
if(data.areaIps[i].ipType==6){
html+=$.validator.messages.ipv6;
}
if(data.areaIps[i].ipType==46){
html+=$.validator.messages.over4;
}
if(data.areaIps[i].ipType==64){
html+=$.validator.messages.over6;
}
if(data.areaIps[i].ipType==10){
html+=$.validator.messages.all;
}
html+="</td>";
html+="<td>";
if(data.areaIps[i].ipPattern==1){
html+=$.validator.messages.ip_subnet;
}
if(data.areaIps[i].ipPattern==2){
html+=$.validator.messages.ip_range;
}
if(data.areaIps[i].ipPattern==3){
html+="IP";
}
html+="</td>";
html+="<td>"+data.areaIps[i].srcIpAddress;
html+="</td>";
html+="</tr>";
}
html+="</tbody>";
html+="</table>";
}
top.$.jBox(html,{width: $(document).width()*0.4,height: 400,title:title, buttons:false});
}
}
});
}
//删除区域IP
function delAreaIp(obj){
var thisObj=$(obj);
thisObj.parents(".container-fluid").remove();
var len=$("#areaIp").find(".container-fluid:visible").size();
//调整角标
if(len>0){
len--;
$("#areaIp").find(".container-fluid:visible").each(function(){
$(this).find("[name^='areaCfg']").each(function(){
var name=$(this).attr("name");
name=name.substring(name.lastIndexOf(".")+1,name.length);
$(this).attr("name","areaCfg["+len+"]."+name);
$(this).parents(".form-group").find("div[for^='areaCfg']").attr("for","areaCfg["+len+"]."+name);
});
len--;
});
}
}
//删除区域ISP
function delAreaIsp(obj){
var thisObj=$(obj);
thisObj.parents(".container-fluid").remove();
var len=$("#areaIsp").find(".container-fluid:visible").size();
if(len>0){
len--;
$("#areaIsp").find(".container-fluid:visible").each(function(){
$(this).find("[name^='areaIsp']").each(function(){
var name=$(this).attr("name");
name=name.substring(name.lastIndexOf(".")+1,name.length);
$(this).attr("name","areaIsp["+len+"]."+name);
$(this).parents(".form-group").find("div[for^='areaIsp']").attr("for","areaIsp["+len+"]."+name);
});
len--;
});
}
}
//切换配置列表中显示子配置的选项卡样式
function switchSubCfgTabInfo(flag,index){
$("div[name='subCfg"+index+"']").hide();
$("div[id='"+flag+"Info"+index+"']").show();
$("div[name='tabTitle"+index+"']").removeClass("badge-info");
$("div[id='"+flag+"Title"+index+"']").addClass("badge-info");
$("i[name='tabFlag"+index+"']").addClass("fa-angle-double-up");
$("i[name='tabFlag"+index+"']").removeClass("fa-angle-double-down");
$("i[id='"+flag+index+"']").addClass("fa-angle-double-down");
$("i[id='"+flag+index+"']").removeClass("fa-angle-double-up");
}
function isLicit(str,regStr) {//判断是否为合格字符 //s 包括空格回车等特殊字符
regStr = App.isEmpty(regStr)?"^[_0-9a-zA-Z\u4e00-\u9fa5\.@&]*$":regStr;
var re = new RegExp(regStr);
//var re = "^[_0-9a-zA-Z\.@]*$";
return re.test(str);
}
function exprTypeChecked(objNamePrefix,size){
if(size>1) {
$("input:radio[name='"+objNamePrefix+"exprType'][value=1]").prop("checked",true); //选中是
}else {
$("input:radio[name='"+objNamePrefix+"exprType'][value=0]").prop("checked",true); //选中否
}
}
function validateDataIsLicit(){
var fdfz = $.trim($("#tags_1").val()).replace(/,/g,"");
return isLicit(fdfz);
}