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

408 lines
14 KiB
JavaScript
Raw Normal View History

/**
* 处理IP域值
*/
;(function($){
$.extend({
ipcommon:function(){
return {};
}
});
$.extend($.ipcommon, {
ipType:[],
ipPattern:[],
portPattern:[],
protocol:[],
direction:[]
});
})(jQuery);
$(function(){
initCommIpVal();
});
window.$.ipcommon=$.ipcommon;
/**
* ip默认选项处理
*/
var initCommIpVal=function(){
var action,regionCode,serviceType,ipPortShow,ipType,
ipPattern,portPattern,direction,protocol,regionType;
if($("input[name$='action']:checked").length>0){
regionCode=$("input[name$='action']:checked").attr("regionCode");
action=$("input[name$='action']:checked").val();
}else{
regionCode=$("input[name$='action']").attr("regionCode");
action=$("input[name$='action']").val();
}
if(regionCode){
if(regionCode.indexOf(",")==-1){
$("#cfgRegionCode"+regionCode).attr("name","cfgRegionCode");
$("#cfgType"+regionCode).attr("name","cfgType");
}else{
var _region='';
var regionArr=regionCode.split(',');
$("input[name$='cfgRegionCode'][regionType='1']").each(function(){
for(var re in regionArr){
if($(this).val()==regionArr[re]){
_region=regionArr[re];
break;
}
}
});
if(_region!=''){
regionCode=_region;
}
}
}
if(regionCode){//IP域大于1个根据action获取ip属性
ipPortShow=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPortShow"),
ipType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipType"),
ipPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPattern"),
portPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("portPattern"),
direction=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("direction"),
protocol=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("protocol"),
regionType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("regionType");
}else{//IP域只有一个获取regionType为1的
ipPortShow=$("input[name$='cfgRegionCode'][regionType='1']").attr("ipPortShow"),
ipType=$("input[name$='cfgRegionCode'][regionType='1']").attr("ipType"),
ipPattern=$("input[name$='cfgRegionCode'][regionType='1']").attr("ipPattern"),
portPattern=$("input[name$='cfgRegionCode'][regionType='1']").attr("portPattern"),
direction=$("input[name$='cfgRegionCode'][regionType='1']").attr("direction"),
protocol=$("input[name$='cfgRegionCode'][regionType='1']").attr("protocol"),
regionType=$("input[name$='cfgRegionCode'][regionType='1']").attr("regionType");
}
2018-10-04 19:45:39 +08:00
//ip端口处理源ip展示、源端口展示、目的ip展示、目的端口展示1、2、3、4
if(ipPortShow){
2018-10-04 19:45:39 +08:00
if(ipPortShow.indexOf('1')>-1){//展示源IP
$("input[name$='srcIpAddress']").parents(".form-group").removeClass("hidden");
}else{
$("input[name$='srcIpAddress']").parents(".form-group").addClass("hidden");
2018-10-04 19:45:39 +08:00
}
if(ipPortShow.indexOf('2')>-1){//展示源端口
$("input[name$='srcPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name$='srcPort']").parents(".form-group").addClass("hidden");
}
2018-10-04 19:45:39 +08:00
if(ipPortShow.indexOf('3')>-1){//展示目的IP
$("input[name$='destIpAddress']").parents(".form-group").removeClass("hidden");
}else{
$("input[name$='destIpAddress']").parents(".form-group").addClass("hidden");
2018-10-04 19:45:39 +08:00
}
if(ipPortShow.indexOf('4')>-1){//展示目的端口
$("input[name$='destPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name$='destPort']").parents(".form-group").addClass("hidden");
}
}
//ip类型处理
$.ipcommon.ipType=$("select[name$='ipType'] option");
if(ipType){
var arr=ipType.split(',');
$("select[name$='ipType'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).remove();
}
});
}
//ip格式处理
$.ipcommon.ipPattern=$("select[name$='ipPattern'] option");
if(ipPattern){
arr=ipPattern.split(',');
$("select[name$='ipPattern'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).remove();
}
});
}
//端口格式处理
$.ipcommon.portPattern=$("select[name$='portPattern'] option");
if(portPattern){
arr=portPattern.split(',');
$("select[name$='portPattern'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).remove();
}
});
}
//方向处理
$.ipcommon.direction=$("select[name$='direction'] option");
if(direction){
arr=direction.split(',');
$("select[name$='direction'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).remove();
}
});
}
//协议处理
$.ipcommon.protocol=$("select[name$='protocol'] option");
if(protocol){
arr=protocol.split(',');
$("select[name$='protocol'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).remove();
}
});
}
}
/**
* ip切换默认值处理
*/
var changeIPVal=function(obj){
var action,regionCode,serviceType,ipPortShow,ipType,
ipPattern,portPattern,direction,protocol,regionType,o;
o=$(obj);
if($("input[name$='action']:checked").length>0){
regionCode=$("input[name$='action']:checked").attr("regionCode");
action=$("input[name$='action']:checked").val();
}else{
regionCode=$("input[name$='action']").attr("regionCode");
action=$("input[name$='action']").val();
}
if(regionCode){
if(regionCode.indexOf(",")==-1){
$("#cfgRegionCode"+regionCode).attr("name","cfgRegionCode");
$("#cfgType"+regionCode).attr("name","cfgType");
}else{
var _region='';
var regionArr=regionCode.split(',');
$("input[name$='cfgRegionCode'][regionType='1']").each(function(){
for(var re in regionArr){
if($(this).val()==regionArr[re]){
_region=regionArr[re];
break;
}
}
});
if(_region!=''){
regionCode=_region;
}
}
}
if(regionCode){//IP域大于1个根据action获取ip属性
ipPortShow=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPortShow"),
ipType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipType"),
ipPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPattern"),
portPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("portPattern"),
direction=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("direction"),
protocol=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("protocol"),
regionType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("regionType");
}else{//IP域只有一个获取regionType为1的
ipPortShow=$("input[name$='cfgRegionCode'][regionType='1']").attr("ipPortShow"),
ipType=$("input[name$='cfgRegionCode'][regionType='1']").attr("ipType"),
ipPattern=$("input[name$='cfgRegionCode'][regionType='1']").attr("ipPattern"),
portPattern=$("input[name$='cfgRegionCode'][regionType='1']").attr("portPattern"),
direction=$("input[name$='cfgRegionCode'][regionType='1']").attr("direction"),
protocol=$("input[name$='cfgRegionCode'][regionType='1']").attr("protocol"),
regionType=$("input[name$='cfgRegionCode'][regionType='1']").attr("regionType");
}
if(o){
2018-10-04 19:45:39 +08:00
//ip端口处理源ip展示、源端口展示、目的ip展示、目的端口展示1、2、3、4
if(ipPortShow){
2018-10-04 19:45:39 +08:00
if(ipPortShow.indexOf('1')>-1){//展示源IP
$("input[name$='srcIpAddress']").parents(".form-group").removeClass("hidden");
}else{
$("input[name$='srcIpAddress']").parents(".form-group").addClass("hidden");
}
if(ipPortShow.indexOf('2')>-1){//展示源端口
$("input[name$='srcPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name$='srcPort']").parents(".form-group").addClass("hidden");
}
if(ipPortShow.indexOf('3')>-1){//展示目的IP
$("input[name$='destIpAddress']").parents(".form-group").removeClass("hidden");
}else{
2018-10-04 19:45:39 +08:00
$("input[name$='destIpAddress']").parents(".form-group").addClass("hidden");
}
2018-10-04 19:45:39 +08:00
if(ipPortShow.indexOf('4')>-1){//展示目的端口
$("input[name$='destPort']").parents(".form-group").removeClass("hidden");
}else{
2018-10-04 19:45:39 +08:00
$("input[name$='destPort']").parents(".form-group").addClass("hidden");
}
}
//ip类型处理
if(ipType){
var arr=ipType.split(',');
var ipTypeVal=o.find("select[name$='ipType'] option:selected").attr("value");
o.find("select[name$='ipType']").empty();
$.ipcommon.ipType.each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
o.find("select[name$='ipType']").append($(this));
break;
}
}
});
o.find("select[name$='ipType']").selectpicker("refresh");
if(o.find("select[name$='ipType'] option[value='"+ipTypeVal+"']").length>0){
o.find("select[name$='ipType']").selectpicker("val",ipTypeVal);
}else{
2018-10-06 23:10:54 +08:00
if(o.find("select[name$='ipType'] option[value=4]").length>0){
o.find("select[name$='ipType']").selectpicker("val",4);
}else{
o.find("select[name$='ipType']").get(0).selectedIndex=0;
o.find("select[name$='ipType']").selectpicker("refresh");
}
}
}
//ip格式处理
if(ipPattern){
arr=ipPattern.split(',');
var ipPatternVal=o.find("select[name$='ipPattern'] option:selected").attr("value");
o.find("select[name$='ipPattern']").empty();
$.ipcommon.ipPattern.each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
o.find("select[name$='ipPattern']").append($(this));
break;
}
}
});
o.find("select[name$='ipPattern']").selectpicker("refresh");
if(o.find("select[name$='ipPattern'] option[value='"+ipPatternVal+"']").length>0){
o.find("select[name$='ipPattern']").selectpicker("val",ipPatternVal);
}else{
2018-10-06 23:10:54 +08:00
if(o.find("select[name$='ipPattern'] option[value=1]").length>0){
o.find("select[name$='ipPattern']").selectpicker("val",1);
}else{
o.find("select[name$='ipPattern']").get(0).selectedIndex=0;
o.find("select[name$='ipPattern']").selectpicker("refresh");
}
}
}
//端口格式处理
if(portPattern){
arr=portPattern.split(',');
var portPatternVal=o.find("select[name$='portPattern'] option:selected").attr("value");
o.find("select[name$='portPattern']").empty();
$.ipcommon.portPattern.each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
o.find("select[name$='portPattern']").append($(this));
break;
}
}
});
o.find("select[name$='portPattern']").selectpicker("refresh");
if(o.find("select[name$='portPattern'] option[value='"+portPatternVal+"']").length>0){
o.find("select[name$='portPattern']").selectpicker("val",portPatternVal);
}else{
2018-10-06 23:10:54 +08:00
if(o.find("select[name$='portPattern'] option[value=1]").length>0){
o.find("select[name$='portPattern']").selectpicker("val",1);
}else{
o.find("select[name$='portPattern']").get(0).selectedIndex=0;
o.find("select[name$='portPattern']").selectpicker("refresh");
}
}
}
//方向处理
if(direction){
arr=direction.split(',');
var directionVal=o.find("select[name$='direction'] option:selected").attr("value");
o.find("select[name$='direction']").empty();
$.ipcommon.direction.each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
o.find("select[name$='direction']").append($(this));
break;
}
}
});
o.find("select[name$='direction']").selectpicker("refresh");
if(o.find("select[name$='direction'] option[value='"+directionVal+"']").length>0){
o.find("select[name$='direction']").selectpicker("val",directionVal);
}else{
2018-10-06 23:10:54 +08:00
if(o.find("select[name$='direction'] option[value=0]").length>0){
o.find("select[name$='direction']").selectpicker("val",0);
}else{
o.find("select[name$='direction']").get(0).selectedIndex=0;
o.find("select[name$='direction']").selectpicker("refresh");
}
}
}
//协议处理
if(protocol){
arr=protocol.split(',');
var protocolVal=o.find("select[name$='protocol'] option:selected").attr("value");
o.find("select[name$='protocol']").empty();
$.ipcommon.protocol.each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
o.find("select[name$='protocol']").append($(this));
break;
}
}
});
o.find("select[name$='protocol']").selectpicker("refresh");
if(o.find("select[name$='protocol'] option[value='"+protocolVal+"']").length>0){
o.find("select[name$='protocol']").selectpicker("val",protocolVal);
}else{
2018-10-06 23:10:54 +08:00
if(o.find("select[name$='protocol'] option[value=0]").length>0){
o.find("select[name$='protocol']").selectpicker("val",0);
}else{
o.find("select[name$='protocol']").get(0).selectedIndex=0;
o.find("select[name$='protocol']").selectpicker("refresh");
}
}
}
}
}