ip部分页面修改为根据公共属性判断

This commit is contained in:
wangxin
2018-08-20 20:07:26 +08:00
parent 493ff4013f
commit 82b63a2ba7
7 changed files with 406 additions and 170 deletions

View File

@@ -56,11 +56,11 @@ public class IpController extends CommonController{
model.addAttribute("dropAction",Constants.DROP_ACTION); model.addAttribute("dropAction",Constants.DROP_ACTION);
model.addAttribute("urlPrefix","/ntc/iplist"); model.addAttribute("urlPrefix","/ntc/iplist");
model.addAttribute("requiresPermissionPrefix","iplist"); model.addAttribute("requiresPermissionPrefix","iplist");
if(specialFunctionId!=null && "ipsec".equals(specialFunctionId)) { // if(specialFunctionId!=null && "ipsec".equals(specialFunctionId)) {
return "/cfg/ipsec/ipForm"; // return "/cfg/ipsec/ipForm";
}else if(specialFunctionId!=null && "ipaddr".equals(specialFunctionId)) { // }else if(specialFunctionId!=null && "ipaddr".equals(specialFunctionId)) {
return "/cfg/ipaddr/ipForm"; // return "/cfg/ipaddr/ipForm";
} // }
return "/cfg/common/ipForm"; return "/cfg/common/ipForm";
} }
@RequestMapping(value = {"saveOrUpdate"}) @RequestMapping(value = {"saveOrUpdate"})

View File

@@ -0,0 +1,14 @@
#ip地址
UPDATE function_service_dict SET region_code=1 WHERE function_id=5 AND ACTION IN(16,1);
UPDATE function_service_dict SET region_code=2 WHERE function_id=5 AND ACTION IN(32,96);
UPDATE function_region_dict SET config_ip_port_show='1,2' ,config_ip_type='4,6,46,64,10',config_ip_pattern='1,2,3',config_port_pattern='1,2',config_direction='0,1',config_protocol='0,6,17' WHERE dict_id=27;
UPDATE function_region_dict SET config_service_type='ipaddr',config_ip_port_show='1,2' ,config_ip_type='4,6,46,64,10',config_ip_pattern='1,2,3',config_port_pattern='1,2',config_direction='0,1',config_protocol='0,6,17,1' WHERE dict_id=35;
#ip限流
UPDATE function_service_dict SET region_code=1 WHERE function_id=302 AND ACTION IN(64);
UPDATE function_region_dict SET config_service_type='ratelimit',config_ip_port_show='1,2' ,config_ip_type='4,6,46,64,10',config_ip_pattern='1,2,3',config_port_pattern='1,2',config_direction='0,1',config_protocol='0,6,17' WHERE dict_id=67;
#IP复用策略
UPDATE function_service_dict SET region_code=1 WHERE function_id=300 AND ACTION IN(96);
UPDATE function_region_dict SET config_service_type='ipmulitiplex',config_ip_port_show='1' ,config_ip_type='4,6',config_ip_pattern='1,2,3',config_port_pattern='1,2',config_direction='0,1',config_protocol='0,6,17' WHERE dict_id=68;
#IP拦截
UPDATE function_service_dict SET region_code=1 WHERE function_id=200 AND ACTION IN(1,128,64,80);
UPDATE function_region_dict SET config_service_type='ratelimit',config_ip_port_show='1,2' ,config_ip_type='4,6,46,64,10',config_ip_pattern='1,2,3',config_port_pattern='1,2',config_direction='0,1',config_protocol='0,6,17' WHERE dict_id=53;

View File

@@ -2,7 +2,7 @@
<%@ include file="/WEB-INF/include/taglib.jsp"%> <%@ include file="/WEB-INF/include/taglib.jsp"%>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
console.log("调用须知调用本页面函数在common.js里并且需要配置字典MAAT_SERVICE中的项") //console.log("调用须知调用本页面函数在common.js里并且需要配置字典MAAT_SERVICE中的项")
}); });
</script> </script>
<div class="modal fade" id="import_modal" tabindex="-1" role="dialog" aria-labelledby="mo" aria-hidden="true"> <div class="modal fade" id="import_modal" tabindex="-1" role="dialog" aria-labelledby="mo" aria-hidden="true">

View File

@@ -6,7 +6,7 @@ $(function(){
}); });
</script> </script>
<div class="row"> <div class="row areaInfo">
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="whether_area_block"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="whether_area_block"/></label>

View File

@@ -23,22 +23,6 @@
<div for="ipType"></div> <div for="ipType"></div>
</div> </div>
</div> </div>
<c:if test="${specialProtocol!=null and specialProtocol eq 'ipsec'}">
<div class="col-md-6 ipsec">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="protocol"/></label>
<div class="col-md-6">
<select name="protocol" class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('IPSEC_PROTOCOL')}" var="protocolC">
<option value="${protocolC.itemCode}" <c:if test="${_cfg.protocol==protocolC.itemCode || (_cfg.protocol==null && protocolC.itemCode==0)}">selected</c:if>><spring:message code="${protocolC.itemValue}"/></option>
</c:forEach>
</select>
<input type="hidden" name="protocolId" value="0">
</div>
<div for="protocol"></div>
</div>
</div>
</c:if>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
@@ -130,21 +114,6 @@
<div class="row protocol"> <div class="row protocol">
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<c:choose>
<c:when test="${specialProtocol!=null and specialProtocol eq 'tunnel'}">
<c:forEach items="${fns:getDictList('TUNNEL_PROTOCOL')}" var="protocolC">
<c:if test="${protocolC.itemValue eq 'default'}">
<input type="hidden" name="protocol" value="${protocolC.itemCode}">
<c:forEach items="${serviceList}" var="service">
<c:if test="${_cfg.functionId eq service.functionId}">
<input type="hidden" name="protocolId" value="${service.protocolId }">
</c:if>
</c:forEach>
</c:if>
</c:forEach>
</c:when>
<c:when test="${specialProtocol!=null and specialProtocol eq 'ipsec'}"></c:when>
<c:otherwise>
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group "> <div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="protocol"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="protocol"/></label>
@@ -159,8 +128,6 @@
<div for="protocol"></div> <div for="protocol"></div>
</div> </div>
</div> </div>
</c:otherwise>
</c:choose>
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="direction"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="direction"/></label>

View File

@@ -5,57 +5,29 @@
<title><spring:message code="${cfgName}"></spring:message></title> <title><spring:message code="${cfgName}"></spring:message></title>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
if($("input[name='action']:checked").val()==0x20||$("input[name='action']:checked").val()==0x60){
$("#cfgRegionCode").val($("#cfgRegionCodeCallback").val());
$("#cfgType").val($("#cfgTypeCallback").val());
}else{
$("#cfgRegionCode").val($("#cfgRegionCodeMaat").val());
$("#cfgType").val($("#cfgTypeMaat").val());
}
$("#cancel").on("click",function(){
window.history.back();
});
$(".action").on("change", function() {
$("#serviceId").val($(this).attr("serviceId"));
$("#protocolId").val($(this).attr("protocolId"));
if($(this).val()==0x20||$(this).val()==0x60){
$("#cfgRegionCode").val($("#cfgRegionCodeCallback").val());
$("#cfgType").val($("#cfgTypeCallback").val());
$("input[name='isAreaEffective']").each(function(){
if($(this).val()==0){
$(this).click();
}
})
}else{
$("#cfgRegionCode").val($("#cfgRegionCodeMaat").val());
$("#cfgType").val($("#cfgTypeMaat").val());
}
});
if('${fn:length(serviceList)}'>1){ if('${fn:length(serviceList)}'>1){
$("#serviceId").val($(".action:checked").attr("serviceId")); $("#serviceId").val($(".action:checked").attr("serviceId"));
$("#protocolId").val($(".action:checked").attr("protocolId")); $("#protocolId").val($(".action:checked").attr("protocolId"));
} }
if($("select[name='userRegion1']")){ initCommIpVal();
$("select[name='userRegion1']").on("change",function(){
var code = $(this).val();
if(code.indexOf("30")==0){//以30开头的应答码需要输入URL地址
$("input[name='userRegion2']").addClass("url");
}else{
$("input[name='userRegion2']").removeClass("url");
}
});
}
$("#ipCfgFrom").validate({ $("#ipCfgFrom").validate({
errorPlacement: function(error,element){ errorPlacement: function(error,element){
$(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error); $(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error);
}, },
submitHandler: function(form){ submitHandler: function(form){
if($("#dnsStrategyId")&&$("#dnsStrategyId").val()){
$("#cfgRegionCode").val($("#cfgRegionCodeMaat").val());
$("#cfgType").val($("#cfgTypeMaat").val());
}
loading('<spring:message code="onloading"/>'); loading('<spring:message code="onloading"/>');
//禁用隐藏域的表单
var serviceType=$("input[name='cfgRegionCode']").attr("serviceType");
var action=$("input[name='action']").val();
if(serviceType.indexOf("ipmulitiplex")==-1){
$("[name='dnsStrategyId'").removeAttr("name");
$("[name='irType'").removeAttr("name");
}
if(serviceType.indexOf("ratelimit")==-1){
$("[name='ratelimit'").removeAttr("name");
}else if(64!=action){
$("[name='ratelimit'").removeAttr("name");
}
form.submit(); form.submit();
}, },
errorContainer: "#messageBox" errorContainer: "#messageBox"
@@ -86,31 +58,30 @@ $(function(){
<input type="hidden" name="cfgId" value="${_cfg.cfgId}"> <input type="hidden" name="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}"> <input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}"> <input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" id="cfgType" name="cfgType" value="${_cfg.cfgType}">
<input type="hidden" id="cfgRegionCode" name="cfgRegionCode" value="${_cfg.cfgRegionCode}">
<c:if test="${fn:length(serviceList)==1}"> <c:if test="${fn:length(serviceList)==1}">
<c:forEach items="${serviceList}" var="service"> <c:forEach items="${serviceList}" var="service">
<input type="hidden" name="action" value="${service.action }"> <input type="hidden" name="action" serviceId="${service.serviceId }" protocolId="${service.protocolId }" regionCode="${service.regionCode}" value="${service.action }">
<input type="hidden" id="serviceId" name="serviceId" value="${service.serviceId}">
<input type="hidden" id="protocolId" name="protocolId" value="${service.protocolId}"> <input type="hidden" id="protocolId" name="protocolId" value="${service.protocolId}">
<input type="hidden" id="serviceId" name="serviceId" value="${service.serviceId}">
</c:forEach> </c:forEach>
</c:if> </c:if>
<c:if test="${fn:length(serviceList)>1}"> <c:if test="${fn:length(serviceList)>1}">
<input type="hidden" id="serviceId" name="serviceId" value="${_cfg.serviceId}">
<input type="hidden" id="protocolId" name="protocolId" value="${_cfg.protocolId}"> <input type="hidden" id="protocolId" name="protocolId" value="${_cfg.protocolId}">
<input type="hidden" id="serviceId" name="serviceId" value="${_cfg.serviceId}">
</c:if> </c:if>
<!-- 配置域类型 --> <!-- 配置域类型 -->
<c:forEach items="${regionList}" var="region"> <c:forEach items="${regionList}" var="region">
<c:if test="${_cfg.functionId eq region.functionId}"> <input type="hidden" name="${cfgName}.configServiceType" value="${region.configServiceType}">
<c:if test="${region.isMaat==1}"><!-- is maat --> <input type="hidden" id="cfgType${region.configRegionCode}" value="${region.configRegionValue}">
<input type="hidden" id="cfgTypeMaat" value="${region.configRegionValue}"> <input type="hidden" id="cfgRegionCode${region.configRegionCode}" isMaat="${region.isMaat}"
<input type="hidden" id="cfgRegionCodeMaat" value="${region.configRegionCode}"> serviceType="${region.configServiceType}"
</c:if> ipPortShow="${region.configIpPortShow}"
<c:if test="${region.isMaat==2}"> ipType="${region.configIpType}"
<input type="hidden" id="cfgTypeCallback" value="${region.configRegionValue}"> ipPattern="${region.configIpPattern}"
<input type="hidden" id="cfgRegionCodeCallback" value="${region.configRegionCode}"> portPattern="${region.configPortPattern}"
</c:if> direction="${region.configDirection}"
</c:if> protocol="${region.configProtocol}"
value="${region.configRegionCode}">
</c:forEach> </c:forEach>
<div class="form-body"> <div class="form-body">
<!-- desc and action --> <!-- desc and action -->
@@ -135,6 +106,7 @@ $(function(){
<input type="radio" name="action" <input type="radio" name="action"
serviceId="${service.serviceId }" serviceId="${service.serviceId }"
protocolId="${service.protocolId }" protocolId="${service.protocolId }"
regionCode="${service.regionCode }"
value="${service.action }" class="required action" value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>> <c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict"> <c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
@@ -157,12 +129,8 @@ $(function(){
<c:set var="specialProtocol" value="${sfi.itemValue}"/> <c:set var="specialProtocol" value="${sfi.itemValue}"/>
</c:if> </c:if>
</c:forEach> </c:forEach>
<c:if test="${specialProtocol ne 'ipmulitiplex'}">
<%@include file="/WEB-INF/include/form/ipInfo.jsp" %> <%@include file="/WEB-INF/include/form/ipInfo.jsp" %>
</c:if> <div class="row ipmulitiplex hidden">
<c:if test="${specialProtocol ne null and specialProtocol eq 'ipmulitiplex'}">
<%@include file="/WEB-INF/include/form/complexIpInfo.jsp" %>
<div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="group"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="group"/></label>
@@ -192,57 +160,19 @@ $(function(){
</div> </div>
</div> </div>
</div> </div>
</c:if> <div class="row ratelimit hidden">
<c:if test="${specialProtocol ne null and specialProtocol eq 'ipratelimit'}">
<div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ratelimit"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="ratelimit"/></label>
<div class="col-md-6"> <div class="col-md-6">
<input class="form-control required number" range="[0,100]" type="text" name="ratelimit"> <input class="form-control required number" range="[0,100]" type="text" name="ratelimit" value="${_cfg.ratelimit}">
</div> </div>
<div for="ratelimit"></div> <div for="ratelimit"></div>
</div> </div>
</div> </div>
</div> </div>
</c:if>
<c:if test="${specialProtocol!=null and specialProtocol eq 'pxyIpControl'}">
<div class="row">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="REDIRECT_RESPONSE_CODE" /></label>
<div class="col-md-6">
<select name="userRegion1"
class="selectpicker select2 form-control required">
<c:forEach items="${fns:getDictList('REDIRECT_RESPONSE_CODE')}" var="responseCode">
<option value="${responseCode.itemValue}" <c:if test="${_cfg.userRegion1==responseCode.itemValue}">selected</c:if>><spring:message code="${responseCode.itemCode}"/></option>
</c:forEach>
</select>
</div>
<div for="userRegion1"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message
code="redirect_content" /></label>
<div class="col-md-6">
<input class="form-control" type="text" name="userRegion2"
value="${_cfg.userRegion2}">
</div>
<div for="userRegion2"></div>
</div>
</div>
</div>
</c:if>
<c:if test="${specialProtocol ne 'ipmulitiplex'}">
<%@include file="/WEB-INF/include/form/areaInfo.jsp" %> <%@include file="/WEB-INF/include/form/areaInfo.jsp" %>
</c:if>
<c:if test="${specialProtocol eq 'ipmulitiplex'}">
<input type="hidden" name="isAreaEffective" value="0" >
</c:if>
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %> <%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
</div> </div>
<div class="form-actions"> <div class="form-actions">

View File

@@ -362,6 +362,179 @@ $(function(){
$(".action").on("change", function() { $(".action").on("change", function() {
$("#serviceId").val($(this).attr("serviceId")); $("#serviceId").val($(this).attr("serviceId"));
$("#protocolId").val($(this).attr("protocolId")); $("#protocolId").val($(this).attr("protocolId"));
var regionCode=$(this).attr("regionCode");
if(!regionCode){
regionCode=$("input[name='action']").attr("regionCode");
}
$("[id='cfgRegionCode']").each(function(){
if($(this).attr("id")==("cfgRegionCode"+regionCode)){
$(this).attr("name","cfgRegionCode");
}else{
$(this).removeAttr("name");
}
});
$("[id='cfgType']").each(function(){
if($(this).attr("id")==("cfgType"+regionCode)){
$(this).attr("name","cfgType");
}else{
$(this).removeAttr("name");
}
});
var ipPortShow=$("input[name='cfgRegionCode']").attr("ipPortShow"),
ipType=$("input[name='cfgRegionCode']").attr("ipType"),
ipPattern=$("input[name='cfgRegionCode']").attr("ipPattern"),
portPattern=$("input[name='cfgRegionCode']").attr("portPattern"),
direction=$("input[name='cfgRegionCode']").attr("direction"),
protocol=$("input[name='cfgRegionCode']").attr("protocol");
//ip端口处理
if(ipPortShow.indexOf('1')>-1){//展示源IP,端口
$("input[name='srcIpAddress']").parents(".form-group").removeClass("hidden");
$("input[name='srcPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name='srcIpAddress']").parents(".form-group").addClass("hidden");
$("input[name='srcPort']").parents(".form-group").addClass("hidden");
}
if(ipPortShow.indexOf('2')>-1){//展示目的IP,端口
$("input[name='destIpAddress']").parents(".form-group").removeClass("hidden");
$("input[name='destPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name='destIpAddress']").parents(".form-group").addClass("hidden");
$("input[name='destPort']").parents(".form-group").addClass("hidden");
}
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).attr("disabled",true);
}
});
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).attr("disabled",true);
}
});
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).attr("disabled",true);
}
});
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).attr("disabled",true);
}
});
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).attr("disabled",true);
}
});
//处理自定义字段
var serviceType=$("#cfgRegionCode"+regionCode).attr("serviceType");
/*if(serviceType.indexOf("ipaddr")>-1){
if($(this).val()==32){
if($("[name='protocol']").find("option[value='1']").length==0){
$("[name='protocol']").append('<option class="icmp" value="1" <c:if test="${_cfg.protocol==1}">selected</c:if>><spring:message code="ICMP"/></option>');
}
}else{
if($("[name='protocol'] option[value='1']")){
if($("[name='protocol'] option[value='1']").is(":selected")){
$("[name='protocol'] option[value='1']").removeAttr("selected");
$("[name='protocol']").val(0);
}
$("[name='protocol'] option[value='1']").remove();
}
}
$("[name='protocol']").selectpicker("render");
$("[name='protocol']").selectpicker("refresh");
}*/
if(serviceType.indexOf("ipaddr")>-1){
if($(this).val()==32){
$("select[name='protocol'] option").each(function(){
if($(this).attr("value")==32){
$(this).removeAttr("disabled");
}
});
}else{
}
}
if(serviceType.indexOf("ipmulitiplex")>-1){
$(".ipmulitiplex").removeClass("hidden");
}else{
$(".ipmulitiplex").addClass("hidden");
}
if(serviceType.indexOf("ratelimit")>-1){
if($(this).val()==64){
$(".ratelimit").removeClass("hidden");
}else{
$(".ratelimit").addClass("hidden");
}
}else{
$(".ratelimit").addClass("hidden");
}
if($(this).val()==0x20||$(this).val()==0x60){
$("input[name='isAreaEffective']").each(function(){
if($(this).val()==0){
$(this).click();
}
})
}
}); });
//选择hex cfgkeywords需校验十六进制 //选择hex cfgkeywords需校验十六进制
$("select[name$='isHexbin']").each(function(){ $("select[name$='isHexbin']").each(function(){
@@ -1188,3 +1361,155 @@ var validateInvisibleCharTag=function(){
} }
return true; return true;
} }
var initCommIpVal=function(){
var regionCode,serviceType;
if($("input[name='action']:checked").length>0){
regionCode=$("input[name='action']:checked").attr("regionCode");
serviceType=$("#cfgRegionCode"+regionCode).attr("serviceType");
if(serviceType.indexOf("ipaddr")>-1&&$("input[name='action']:checked").val()==32){
$("[name='protocol']").append('<option class="icmp" value="1" <c:if test="${_cfg.protocol==1}">selected</c:if>><spring:message code="ICMP"/></option>');
$("[name='protocol']").selectpicker("render");
$("[name='protocol']").selectpicker("refresh");
}
}else{
regionCode=$("input[name='action']").attr("regionCode");
serviceType=$("#cfgRegionCode"+regionCode).attr("serviceType");
if(serviceType.indexOf("ipaddr")>-1&&$("input[name='action']").val()==32){
$("[name='protocol']").append('<option class="icmp" value="1" <c:if test="${_cfg.protocol==1}">selected</c:if>><spring:message code="ICMP"/></option>');
$("[name='protocol']").selectpicker("render");
$("[name='protocol']").selectpicker("refresh");
}
}
if(serviceType.indexOf("ipmulitiplex")>-1){
$(".ipmulitiplex").removeClass("hidden");
$("input[name='isAreaEffective']").each(function(){
if($(this).val()==0){
$(this).click();
}
})
$(".areaInfo").addClass("hidden");
}else{
$(".areaInfo").removeClass("hidden");
$(".ipmulitiplex").addClass("hidden");
}
if(serviceType.indexOf("ratelimit")>-1){
if($("input[name='action']").val()==64||$("input[name='action']:checked").val()==64){
$(".ratelimit").removeClass("hidden");
}else{
$(".ratelimit").addClass("hidden");
}
}else{
$(".ratelimit").addClass("hidden");
}
$("#cfgRegionCode"+regionCode).attr("name","cfgRegionCode");
$("#cfgType"+regionCode).attr("name","cfgType");
$("div[class^='region']").each(function(){
if(!$(this).hasClass("region"+regionCode)){
$(this).addClass("hidden");
$(this).find("input").removeAttr("name");
$(this).find("select").removeAttr("name");
}
})
var ipPortShow=$("input[name='cfgRegionCode']").attr("ipPortShow"),
ipType=$("input[name='cfgRegionCode']").attr("ipType"),
ipPattern=$("input[name='cfgRegionCode']").attr("ipPattern"),
portPattern=$("input[name='cfgRegionCode']").attr("portPattern"),
direction=$("input[name='cfgRegionCode']").attr("direction"),
protocol=$("input[name='cfgRegionCode']").attr("protocol");
//ip端口处理
if(ipPortShow.indexOf('1')>-1){//展示源IP,端口
$("input[name='srcIpAddress']").parents(".form-group").removeClass("hidden");
$("input[name='srcPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name='srcIpAddress']").parents(".form-group").addClass("hidden");
$("input[name='srcPort']").parents(".form-group").addClass("hidden");
}
if(ipPortShow.indexOf('2')>-1){//展示目的IP,端口
$("input[name='destIpAddress']").parents(".form-group").removeClass("hidden");
$("input[name='destPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name='destIpAddress']").parents(".form-group").addClass("hidden");
$("input[name='destPort']").parents(".form-group").addClass("hidden");
}
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).attr("disabled",true);
}
});
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).attr("disabled",true);
}
});
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).attr("disabled",true);
}
});
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).attr("disabled",true);
}
});
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).attr("disabled",true);
}
});
return regionCode;
}