优化app topic domain界面,去掉domain重复性判断

This commit is contained in:
duandongmei
2018-09-03 13:52:06 +08:00
parent ba295706f3
commit d9d5e2be36
3 changed files with 283 additions and 275 deletions

View File

@@ -1083,17 +1083,14 @@ public class AppCfgController extends BaseController {
@RequestMapping(value = {"saveAppTopicDomainCfg"}) @RequestMapping(value = {"saveAppTopicDomainCfg"})
@RequiresPermissions(value={"app:topic:config"}) @RequiresPermissions(value={"app:topic:config"})
public String saveAppTopicDomainCfg(Model model,HttpServletRequest request,HttpServletResponse response, public String saveAppTopicDomainCfg(Model model,HttpServletRequest request,HttpServletResponse response,
AppTopicDomainCfg entity,@RequestParam("userDomain")String userDomain,RedirectAttributes redirectAttributes) { AppTopicDomainCfg entity,RedirectAttributes redirectAttributes) {
try { try {
//验证域名的重复行 //验证域名的重复行
if(!StringUtil.isBlank(userDomain)){ if(!StringUtil.isBlank(entity.getDomain())){
WebsiteDomainTopic websiteDomainTopic = new WebsiteDomainTopic(); WebsiteDomainTopic websiteDomainTopic = new WebsiteDomainTopic();
websiteDomainTopic.setDomain(userDomain); websiteDomainTopic.setDomain(entity.getDomain());
List<WebsiteDomainTopic> domainDict = appCfgService.getDomainDict(websiteDomainTopic); List<WebsiteDomainTopic> domainDict = appCfgService.getDomainDict(websiteDomainTopic);
if((domainDict!=null&&domainDict.size()>0)){ if((domainDict==null || domainDict.size()==0)){
addMessage(redirectAttributes,"domain_existed");
return "redirect:" + adminPath +"/app/topicDomainCfgList?functionId="+entity.getFunctionId();
}else{
//保存到域名关联表中 //保存到域名关联表中
if(entity!=null&&entity.getWebsiteServiceId()!=null&&entity.getTopicId()!=null){ if(entity!=null&&entity.getWebsiteServiceId()!=null&&entity.getTopicId()!=null){
websiteDomainTopic.setWebsiteServiceId(entity.getWebsiteServiceId()); websiteDomainTopic.setWebsiteServiceId(entity.getWebsiteServiceId());
@@ -1108,8 +1105,8 @@ public class AppCfgController extends BaseController {
} }
} }
} }
if(entity!=null&&StringUtil.isBlank(entity.getDomain())&&!StringUtil.isBlank(userDomain)){ if(entity!=null&&StringUtil.isBlank(entity.getDomain())&&!StringUtil.isBlank(entity.getDomain())){
entity.setDomain(userDomain);//自定义域名 entity.setDomain(entity.getDomain());
} }
appCfgService.saveOrUpdateAppTopicDomainCfg(entity); appCfgService.saveOrUpdateAppTopicDomainCfg(entity);
addMessage(redirectAttributes,"save_success"); addMessage(redirectAttributes,"save_success");

View File

@@ -0,0 +1,2 @@
--topic_domain默认无表达式
update function_region_dict set config_expr_type=0,config_hex=0 where dict_id=179;

View File

@@ -42,95 +42,101 @@ $(function(){
errorContainer: "#messageBox", errorContainer: "#messageBox",
}); });
//页面加载时触发初始化操作 //页面加载时触发初始化操作
var file = $("#domain").val(); /* var file = $("#domain").val();
if(!file){ if(!file){
$("#userDomain").hide();//隐藏输入框 //$("#userDomain").hide();//隐藏输入框
$("#response").val("domain"); //$("#response").val("domain");
$("#domain").selectpicker("show");//隐藏选择框 //$("#domain").selectpicker("show");//隐藏选择框
}else{ }else{
$("#domain").selectpicker("hide");//隐藏选择框 //$("#domain").selectpicker("hide");//隐藏选择框
$("#response").val("userDomain"); //$("#response").val("userDomain");
$("#userDomain").show();//隐藏输入框 //$("#userDomain").show();//隐藏输入框
} } */
$("#response").on("change",function(){ /* $("#response").on("change",function(){
var $this = $(this); var $this = $(this);
var inputId = $this.val(); var inputId = $this.val();
$("#userDomain").val("");//清空 $("#userDomain").val("");//清空
$("#domain").selectpicker("val",""); $("#domain").selectpicker("val","");
if("userDomain" == inputId){ if("userDomain" == inputId){
$("#userDomain").show();//显示输入框 $("#userDomain").show();//显示输入框
$("#domain").selectpicker("hide");//隐藏选择框 $("#domain").selectpicker("hide");//隐藏选择框
}else{ }else{
$("#userDomain").hide();//隐藏输入框 $("#userDomain").hide();//隐藏输入框
$("#domain").selectpicker("show");//显示选择框 $("#domain").selectpicker("show");//显示选择框
} }
}); }); */
// if('${_cfg.domain}'){
if('${_cfg.domain}'){ ajaxDomain($("#websiteServiceId").val(),$("#topicId").val());
ajaxDomain($("#websiteServiceId").val(),$("#topicId").val()); }
} //选择主题跟服务 查询域名
//选择主题跟服务 查询域名 $("#topicId").on("change",function(){
$("#topicId").on("change",function(){ var websiteServiceId = $("#websiteServiceId").val();
var websiteServiceId = $("#websiteServiceId").val(); if(websiteServiceId!=null&&websiteServiceId!=''){
if(websiteServiceId!=null&&websiteServiceId!=''){ ajaxDomain(websiteServiceId,$("#topicId").val());
ajaxDomain(websiteServiceId,$("#topicId").val()); }
} });
}); $("#websiteServiceId").on("change",function(){
$("#websiteServiceId").on("change",function(){ var topicId =$("#topicId").val();
var topicId =$("#topicId").val(); if(topicId!=null&&topicId!=''){
if(topicId!=null&&topicId!=''){ ajaxDomain($("#websiteServiceId").val(),topicId);
ajaxDomain($("#websiteServiceId").val(),topicId); }
} });
}); $("#selectDomain").on("change",function(){
var domain =$("#selectDomain").val();
}); if(domain!=null&&domain!=''){
$("input[name='domain']").val(domain);
}
});
$("input[name='domain']").val('${_cfg.domain}');
});
//根据topic和website动态加载域名选项
function ajaxDomain(webId,topicId){ function ajaxDomain(webId,topicId){
var pathName=window.document.location.pathname.substring(0,window.document.location.pathname.indexOf("/nis")+4); var pathName=window.document.location.pathname.substring(0,window.document.location.pathname.indexOf("/nis")+4);
$.ajax({ $.ajax({
type:'get', type:'get',
url:'${ctx}/app/WebsiteDomainTopicList', url:'${ctx}/app/WebsiteDomainTopicList',
data:{"websiteServiceId":webId,"topicId":topicId}, data:{"websiteServiceId":webId,"topicId":topicId},
dataType:'json', dataType:'json',
async:true, async:true,
success:function(data,textStatus){//处理返回结果 success:function(data,textStatus){//处理返回结果
if(textStatus=="success"){ if(textStatus=="success"){
var html='<select name="domain" data-live-search="true" class="selectpicker form-control">' var html='<select name="domain" data-live-search="true" class="selectpicker form-control">'
+'<option value=""><spring:message code="select"/></option>'; +'<option value=""><spring:message code="select"/></option>';
if(data.length>0){ if(data.length>0){
for(i=0;i<data.length;i++){ for(i=0;i<data.length;i++){
html+='<option value="'+data[i].domain+'"'; html+='<option value="'+data[i].domain+'"';
if('${_cfg.domain}'==data[i].domain){ if('${_cfg.domain}'==data[i].domain){
html+=" selected"; html+=" selected";
}
html+='>'+data[i].domain+'</option>';
}
html+='</select>';
$("#domain").html(html);
$("[name='domain']").selectpicker("refresh");
$("[name='domain']").selectpicker("render");
}else{
html+='</select>';
$("#domain").html(html);
$("[name='domain']").selectpicker("refresh");
$("[name='domain']").selectpicker("render");
} }
html+='>'+data[i].domain+'</option>';
} }
}, html+='</select>';
complete:function(XMLHttpRequest,status){//超时设置 $("#selectDomain").html(html);
if(status=="timeout"){ $("[name='selectDomain']").selectpicker("refresh");
var html='<select name="domain" data-live-search="true" class="selectpicker form-control">' $("[name='selectDomain']").selectpicker("render");
+'<option value=""><spring:message code="select"/></option></select>'; }else{
$("#domain").html(html); html+='</select>';
$("[name='domain']").selectpicker("refresh"); $("#selectDomain").html(html);
$("[name='domain']").selectpicker("render"); $("[name='selectDomain']").selectpicker("refresh");
} $("[name='selectDomain']").selectpicker("render");
} }
});
} }
},
complete:function(XMLHttpRequest,status){//超时设置
if(status=="timeout"){
var html='<select name="selectDomain" data-live-search="true" class="selectpicker form-control">'
+'<option value=""><spring:message code="select"/></option></select>';
$("#selectDomain").html(html);
$("[name='selectDomain']").selectpicker("refresh");
$("[name='selectDomain']").selectpicker("render");
}
}
});
}
</script> </script>
</head> </head>
<body> <body>
@@ -195,134 +201,156 @@ $(function(){
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="row"> <c:forEach items="${regionList}" var="region">
<div class="col-md-6 hidden"> <c:if test="${_cfg.functionId eq region.functionId}">
<div class="form-group"> <input type="hidden" name="cfgType" value="${region.configRegionValue }">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="action"/></label> <input type="hidden" name="cfgRegionCode" serviceType="${region.configServiceType }" value="${region.configRegionCode }">
<div class="col-md-6"> <input type="hidden" name="configMultiKeywords" value="${region.configMultiKeywords }">
<c:forEach items="${serviceList}" var="service" <input type="hidden" name="configServiceType" value="${region.configServiceType }">
varStatus="satus"> <input type="hidden" name="configHex" value="${region.configHex }">
<label class="radio-inline"> <c:if <div class="row">
test="${_cfg.functionId eq service.functionId}"> <div class="col-md-6 hidden">
<input type="radio" name="action" <div class="form-group">
serviceId="${service.serviceId }" <label class="control-label col-md-3"><font color="red">*</font><spring:message code="action"/></label>
protocolId="${service.protocolId }" <div class="col-md-6">
value="${service.action }" class="required action" <c:forEach items="${serviceList}" var="service"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>> varStatus="satus">
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict"> <label class="radio-inline"> <c:if
<c:if test="${dict.itemCode eq service.action }"> test="${_cfg.functionId eq service.functionId}">
<spring:message code="${dict.itemValue }"/> <input type="radio" name="action"
</c:if> serviceId="${service.serviceId }"
</c:forEach> protocolId="${service.protocolId }"
</c:if> value="${service.action }" class="required action"
</label> <c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
</c:forEach> <c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
</div> <c:if test="${dict.itemCode eq service.action }">
<div for="action"></div> <spring:message code="${dict.itemValue }"/>
</div> </c:if>
</div> </c:forEach>
<div class="col-md-6"> </c:if>
<div class="form-group"> </label>
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="website_server" /></label>
<div class="col-md-6">
<form:select path="_cfg.websiteServiceId" class="selectpicker form-control required" data-live-search="true" data-live-search-placeholder="search">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${fns:getDictList('WEBSITE_SERVER') }" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach> </c:forEach>
</form:select> </div>
</div> <div for="action"></div>
<div for="websiteServiceId"></div> </div>
</div> </div>
<div class="col-md-6" hidden="true">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="0" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
<!-- WEBSITE -->
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="website_server" /></label>
<div class="col-md-6">
<form:select path="_cfg.websiteServiceId" class="selectpicker form-control required" data-live-search="true" data-live-search-placeholder="search">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${fns:getDictList('WEBSITE_SERVER') }" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
<div for="websiteServiceId"></div>
</div>
</div>
<!-- WEBSITE -->
<!-- EXPRTYPE -->
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="expression_type" /></label>
<div class="col-md-6">
<c:if test="${!empty region.configExprType}">
<c:forEach var="exprType" items="${fn:split(region.configExprType,',')}">
<c:forEach items="${fns:getDictList('EXPRESSION_TYPE')}" var="exprTypeC">
<c:if test="${exprTypeC.itemCode eq exprType}">
<label class="radio-inline">
<input type="radio"
name="exprType" value="${exprType }"
class="required"
<c:if test="${_cfg.exprType eq exprType || (empty _cfg.exprType && exprType eq 0)}">
checked
</c:if>
>
<spring:message code="${exprTypeC.itemValue }" />
</label>
</c:if>
</c:forEach>
</c:forEach>
</c:if>
<c:if test="${empty region.configExprType}">
<c:forEach items="${fns:getDictList('EXPRESSION_TYPE')}" var="exprTypeC">
<c:if test="${exprTypeC.itemCode eq 0}">
<label class="radio-inline">
<input type="radio"
name="exprType" value="${exprTypeC.itemCode }"
class="required" checked >
<spring:message code="${exprTypeC.itemValue }" />
</label>
</c:if>
</c:forEach>
</c:if>
</div>
<div for="exprType"></div>
</div>
</div>
<!-- EXPRTYPE -->
</div> </div>
<div class="col-md-6" hidden="true"> <!-- MATCH-METHOD -->
<div class="form-group"> <div class="row">
<label class="control-label col-md-3"><spring:message code="do_log" /></label> <!-- 域名 -->
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict"> <div class="col-md-6">
<c:choose> <div class="form-group">
<c:when test="${dict.itemCode eq _cfg.doLog}"> <label class="control-label col-md-3"><font color="red">*</font>
<label class="radio-inline"> <spring:message code="domain" /></label>
<input type="radio" name="doLog" checked value="0" ><spring:message code="${dict.itemValue}"/> <div class="row">
</label> <div class="col-md-3">
</c:when> <select id="selectDomain" name="selectDomain" data-live-search="true" class="selectpicker form-control required">
<c:otherwise> <option value=""><spring:message code="select"/></option>
<label class="radio-inline"> </select>
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/> </div>
</label> <div class="col-md-3">
</c:otherwise> <input id="domain" name="domain" class="form-control required domainCheck" type="text" value="">
</c:choose> </div>
</c:forEach> <div for="domain"></div>
</div> </div>
</div> <%-- <div class="col-md-5"><label class="col-md-4"></label><font style="papadding-left: 10px" color="red">*</font>
<!-- 是否区分大小写 ========== --> <select id="response" class="selectpicker select2 input-small pull-right">
<c:forEach items="${regionList}" var="region"> <option value="domain"><spring:message code="domain"></spring:message></option>
<c:if test="${_cfg.functionId eq region.functionId}"> <option value="userDomain"><spring:message code="please_input"></spring:message></option>
<div class="row"> </select>
<c:if test="${!empty region.configHex}"> </div>
<div class="col-md-6"> <div class="col-md-4">
<div class="form-group "> <input id="userDomain" name="userDomain" class="form-control required domainCheck" type="text" value="">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="is_case_insenstive"/></label> <select id="domain" name="domain" data-live-search="true" class="selectpicker form-control required">
<div class="col-md-6"> <option value=""><spring:message code="select"/></option>
<label class="radio-inline"> </select>
<input type="radio" name="isCaseSenstive" value="1" class="required" <div for="domain"></div>
><spring:message code="case_senstive"/> <div for="userDomain"></div>
</label> </div> --%>
<label class="radio-inline"> </div>
<input type="radio" name="isCaseSenstive" value="0" class="required" </div>
><spring:message code="case_insenstive"/> <!-- 域名 -->
</label> <!-- MATCH-METHOD -->
</div> <div class="col-md-6">
<div for="isCaseInsenstive"></div>
</div>
</div>
</c:if>
<c:if test="${empty region.configHex}">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="is_case_insenstive"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isCaseSenstive" value="0" class="required"
checked
><spring:message code="case_insenstive"/>
</label>
</div>
<div for="isCaseInsenstive"></div>
</div>
</div>
</c:if>
</div>
</c:if>
</c:forEach>
<!-- 是否区分大小写end ========== -->
</div>
<div class="row">
<!-- 域名 -->
<div class="col-md-6">
<div class="form-group">
<div class="col-md-5"><label class="col-md-4"></label><font style="papadding-left: 10px" color="red">*</font>
<select id="response" class="selectpicker select2 input-small pull-right">
<option value="domain"><spring:message code="domain"></spring:message></option>
<option value="userDomain"><spring:message code="please_input"></spring:message></option>
</select>
</div>
<div class="col-md-4">
<input id="userDomain" name="userDomain" class="form-control required domainCheck" type="text" value="">
<select id="domain" name="domain" data-live-search="true" class="selectpicker form-control required">
<option value=""><spring:message code="select"/></option>
</select>
<div for="domain"></div>
<div for="userDomain"></div>
</div>
</div>
</div>
<!-- -->
<c:forEach items="${regionList}" var="region">
<c:if test="${_cfg.functionId eq region.functionId}">
<div class="col-md-6">
<div class="form-group "> <div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font> <label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="match_method" /></label> <spring:message code="match_method" /></label>
@@ -360,62 +388,12 @@ $(function(){
</select> </select>
</div> </div>
<div for="matchMethod"></div> <div for="matchMethod"></div>
</div> </div>
</div>
</c:if>
</c:forEach>
</div>
<c:forEach items="${regionList}" var="region">
<c:if test="${_cfg.functionId eq region.functionId}">
<input type="hidden" name="cfgType" value="${region.configRegionValue}">
<input type="hidden" name="cfgRegionCode" value="${region.configRegionCode}">
<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="expression_type" /></label>
<div class="col-md-6">
<c:if test="${!empty region.configExprType}">
<c:forEach var="exprType" items="${fn:split(region.configExprType,',')}">
<c:forEach items="${fns:getDictList('EXPRESSION_TYPE')}" var="exprTypeC">
<c:if test="${exprTypeC.itemCode eq exprType}">
<label class="radio-inline">
<input type="radio"
name="exprType" value="${exprType }"
class="required"
<c:if test="${_cfg.exprType eq exprType || (empty _cfg.exprType && exprType eq 0)}">
checked
</c:if>
>
<spring:message code="${exprTypeC.itemValue }" />
</label>
</c:if>
</c:forEach>
</c:forEach>
</c:if>
<c:if test="${empty region.configExprType}">
<c:forEach items="${fns:getDictList('EXPRESSION_TYPE')}" var="exprTypeC">
<c:if test="${exprTypeC.itemCode eq 0}">
<label class="radio-inline">
<input type="radio"
name="exprType" value="${exprTypeC.itemCode }"
class="required" checked >
<spring:message code="${exprTypeC.itemValue }" />
</label>
</c:if>
</c:forEach>
</c:if>
</div>
<div for="exprType"></div>
</div> </div>
</div> </div>
</div> <!-- is hex -->
<div class="row"> <div class="row">
<c:if test="${!empty region.configHex}"> <c:if test="${!empty region.configHex}">
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group "> <div class="form-group ">
@@ -433,6 +411,22 @@ $(function(){
<div for="isHex"></div> <div for="isHex"></div>
</div> </div>
</div> </div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="is_case_insenstive"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isCaseSenstive" value="1" class="required"
><spring:message code="case_senstive"/>
</label>
<label class="radio-inline">
<input type="radio" name="isCaseSenstive" value="0" class="required"
><spring:message code="case_insenstive"/>
</label>
</div>
<div for="isCaseInsenstive"></div>
</div>
</div>
</c:if> </c:if>
<c:if test="${empty region.configHex}"> <c:if test="${empty region.configHex}">
<div class="col-md-6"> <div class="col-md-6">
@@ -447,6 +441,19 @@ $(function(){
<div for="isHex"></div> <div for="isHex"></div>
</div> </div>
</div> </div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="is_case_insenstive"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isCaseSenstive" value="0" class="required"
checked
><spring:message code="case_insenstive"/>
</label>
</div>
<div for="isCaseInsenstive"></div>
</div>
</div>
</c:if> </c:if>
</div> </div>
<div class="row hidden"> <div class="row hidden">
@@ -490,8 +497,10 @@ $(function(){
</div> </div>
</div> </div>
</div> </div>
<!-- is hex -->
</c:if> </c:if>
</c:forEach> </c:forEach>
</div> </div>
<input name="isAreaEffective" type="hidden" value="0"> <input name="isAreaEffective" type="hidden" value="0">
<%-- <%@include file="/WEB-INF/include/form/areaInfo.jsp" %> --%> <%-- <%@include file="/WEB-INF/include/form/areaInfo.jsp" %> --%>