2018-08-14 15:01:19 +08:00
<%@ page contentType="text/html;charset=UTF-8" %>
2018-03-17 17:09:19 +08:00
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title></title>
2018-07-30 09:15:36 +08:00
<style type="text/css">
.tabbable-custom > .tab-content {
margin-top:-121px;
}
2018-09-07 16:38:29 +08:00
.dropdown-menu{
margin-bottom:150px;
}
2018-07-30 09:15:36 +08:00
</style>
2018-03-17 17:09:19 +08:00
<script type="text/javascript">
2018-04-02 18:33:14 +08:00
var validateForm;
2018-03-17 17:09:19 +08:00
$(document).ready(function() {
//校验叶子节点有下级不得更改为叶子节点
2018-06-21 18:10:07 +08:00
/* jQuery.validator.addMethod("leafChange",function(value,element){
2018-03-17 17:09:19 +08:00
var flagLeafChange=false;
$.ajax({
type:'post',
async:false,
url:'${ctx}/specific/specificServiceCfg/ajaxLeafChange',
data:{parent:"${specificServiceCfg.specServiceId}",newIsLeaf:$("#isLeaf option:selected").val()},
success:function(data){
flagLeafChange=data;
}
});
return flagLeafChange;
2018-06-21 18:10:07 +08:00
},"<spring:message code='leafChange'/>"); */
2018-03-17 17:09:19 +08:00
$("#name").focus();
2018-04-02 18:33:14 +08:00
validateForm = $("#inputForm").validate({
2018-07-30 09:15:36 +08:00
rules:{
/* specServiceCode:{
remote:{
url:"${ctx}/specific/specificServiceCfg/isCodeNotRepeat",
type:"post",
//dataType:"json",
//contentType:"application/json; charset=utf-8",
data:{
parentId:function(){
return $("[name='parent.specServiceId']").val();
},
specServiceCode:function(){
return $("#specServiceCode").val();
},
cfgType:function(){
return $("[name='cfgType']").val();
},
specServiceId:'${specificServiceCfg.specServiceId}'
}
}
} */
2018-03-17 17:09:19 +08:00
},
messages: {
2018-07-30 09:15:36 +08:00
/* specServiceCode:{
2018-03-28 18:24:09 +08:00
remote:'<spring:message code="repeat"/>'
2018-07-30 09:15:36 +08:00
} */
},
2018-03-17 17:09:19 +08:00
submitHandler: function(form){
2018-04-02 18:33:14 +08:00
if(!validateForm.form()) {
2018-03-17 17:09:19 +08:00
return false;
}
2018-04-08 17:41:55 +08:00
loading('<spring:message code="submitting"/>');
2018-03-17 17:09:19 +08:00
form.submit();
},
errorContainer: "#messageBox",
errorPlacement: function(error, element) {
2018-08-16 11:20:43 +08:00
$(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error);
2018-03-17 17:09:19 +08:00
}
});
2018-07-30 09:15:36 +08:00
//if("${specificServiceCfg.parentType}"){
// $("[name=cfgType]").each(function(){
// $(this).attr("parent-type","${specificServiceCfg.parentType}");
// });
//}
if(!$("[name='cfgType']").val()){
$("[name='cfgType']").val(1);
$(".cfgType").each(function(){
if($(this).attr("cfgType")!=1){
$(this).addClass("hidden");
$(this).find("[name='parent.specServiceId']").removeAttr("name");
$(this).find("[name='parent.specServiceName']").removeAttr("name");
2018-08-22 19:48:20 +08:00
$(this).find("[name='businessType']").removeAttr("name");
2018-08-25 15:15:20 +08:00
$(this).find("[name='specServiceCode']").removeAttr("name");
2018-08-22 19:48:20 +08:00
}else{
var cfgType=$(this).attr("cfgType");
if("${specificServiceCfg.parent.specServiceId}"&& "${specificServiceCfg.parent.specServiceId}"!="0"){
$("#businessType"+cfgType).parents(".businessType").addClass("hidden");
}else{
$("#businessType"+cfgType).parents(".businessType").removeClass("hidden");
}
2018-07-30 09:15:36 +08:00
}
});
2018-08-30 10:15:33 +08:00
$(".protocol_code").html('<font color="red">*</font><spring:message code="app_code"/>:');
2018-09-10 14:12:48 +08:00
//$("input[name='specServiceCode']").attr("range","[300001,310000]");
2018-08-14 14:37:48 +08:00
$(".protocol_name").html('<font color="red">*</font><spring:message code="app_name"/>:');
2018-08-15 11:32:07 +08:00
$(".protocol_desc").html('<spring:message code="app_desc"/>:');
2018-07-30 09:15:36 +08:00
}else{
$(".cfgType").each(function(){
if($(this).attr("cfgType")!=$("[name='cfgType']").val()){
$(this).addClass("hidden");
$(this).find("[name='parent.specServiceId']").removeAttr("name");
$(this).find("[name='parent.specServiceName']").removeAttr("name");
2018-08-22 19:48:20 +08:00
$(this).find("[name='businessType']").removeAttr("name");
2018-08-25 15:15:20 +08:00
$(this).find("[name='specServiceCode']").removeAttr("name");
2018-08-22 19:48:20 +08:00
}else{
var cfgType=$(this).attr("cfgType");
if("${specificServiceCfg.parent.specServiceId}"&& "${specificServiceCfg.parent.specServiceId}"!="0"){
$("#businessType"+cfgType).parents(".businessType").addClass("hidden");
}else{
$("#businessType"+cfgType).parents(".businessType").removeClass("hidden");
}
2018-07-30 09:15:36 +08:00
}
2018-07-25 15:19:24 +08:00
});
2018-08-14 14:37:48 +08:00
if($("[name='cfgType']").val()==1){
2018-08-30 10:15:33 +08:00
$(".protocol_code").html('<font color="red">*</font><spring:message code="app_code"/>:');
2018-09-10 14:12:48 +08:00
//$("input[name='specServiceCode']").attr("range","[300001,310000]");
2018-08-14 14:37:48 +08:00
$(".protocol_name").html('<font color="red">*</font><spring:message code="app_name"/>:');
2018-08-15 11:32:07 +08:00
$(".protocol_desc").html('<spring:message code="app_desc"/>:');
2018-08-14 15:01:19 +08:00
}else if($("[name='cfgType']").val()==2){
2018-08-30 10:15:33 +08:00
$(".protocol_code").html('<font color="red">*</font><spring:message code="tunnel_code"/>:');
2018-09-10 14:12:48 +08:00
//$("input[name='specServiceCode']").attr("range","[0,2147483647]");
2018-08-14 15:01:19 +08:00
$(".protocol_name").html('<font color="red">*</font><spring:message code="tunnel_name"/>:');
2018-08-15 11:32:07 +08:00
$(".protocol_desc").html('<spring:message code="tunnel_desc"/>:');
2018-08-14 14:37:48 +08:00
}else{
2018-08-30 10:15:33 +08:00
$(".protocol_code").html('<font color="red">*</font><spring:message code="protocol_code"/>:');
2018-09-10 14:12:48 +08:00
//$("input[name='specServiceCode']").attr("range","[10001,20000]");
2018-08-14 14:37:48 +08:00
$(".protocol_name").html('<font color="red">*</font><spring:message code="protocol_name"/>:');
2018-08-15 11:32:07 +08:00
$(".protocol_desc").html('<spring:message code="protocol_desc"/>:');
2018-08-14 14:37:48 +08:00
}
2018-07-25 15:19:24 +08:00
}
2018-07-30 09:15:36 +08:00
$(".tabs-left li").on("click",function(){
var cfgType=$(this).attr("cfgType");
$("[name=cfgType]").val(cfgType);
$(".cfgType").each(function(){
if($(this).attr("cfgType")==cfgType){
$("#specificServiceCfg"+cfgType+"Id").attr("name","parent.specServiceId");
2018-08-16 11:20:43 +08:00
$("#specificServiceCfg"+cfgType+"Name").attr("name","parent.specServiceName");
2018-08-22 19:48:20 +08:00
$("#businessType"+cfgType).attr("name","businessType");
2018-08-25 15:15:20 +08:00
$("#specServiceCode"+cfgType).attr("name","specServiceCode");
2018-08-22 19:48:20 +08:00
if($(this).hasClass("businessType")){
var parentId=$("#specificServiceCfg"+cfgType+"Id").val();
if(parentId!=0){
$(this).addClass("hidden");
}else{
$(this).removeClass("hidden");
}
}else{
$(this).removeClass("hidden");
}
2018-07-30 09:15:36 +08:00
}else{
2018-08-16 11:20:43 +08:00
$(this).addClass("hidden");
2018-07-30 09:15:36 +08:00
$(this).find("[name='parent.specServiceId']").removeAttr("name");
$(this).find("[name='parent.specServiceName']").removeAttr("name");
2018-08-22 19:48:20 +08:00
$(this).find("[name='businessType']").removeAttr("name");
2018-07-30 09:15:36 +08:00
}
});
2018-08-14 14:37:48 +08:00
if(cfgType==1){
2018-08-30 10:15:33 +08:00
$(".protocol_code").html('<font color="red">*</font><spring:message code="app_code"/>:');
2018-09-10 14:12:48 +08:00
//$("input[name='specServiceCode']").attr("range","[300001,310000]");
2018-08-14 14:37:48 +08:00
$(".protocol_name").html('<font color="red">*</font><spring:message code="app_name"/>:');
2018-08-15 11:45:33 +08:00
$(".protocol_desc").html('<spring:message code="app_desc"/>:');
2018-08-14 15:01:19 +08:00
}else if(cfgType==2){
2018-08-30 10:15:33 +08:00
$(".protocol_code").html('<font color="red">*</font><spring:message code="tunnel_code"/>:');
2018-09-10 14:12:48 +08:00
//$("input[name='specServiceCode']").attr("range","[0,2147483647]");
2018-08-14 15:01:19 +08:00
$(".protocol_name").html('<font color="red">*</font><spring:message code="tunnel_name"/>:');
2018-08-15 11:45:33 +08:00
$(".protocol_desc").html('<spring:message code="tunnel_desc"/>:');
2018-08-14 14:37:48 +08:00
}else{
2018-08-30 10:15:33 +08:00
$(".protocol_code").html('<font color="red">*</font><spring:message code="protocol_code"/>:');
2018-09-10 14:12:48 +08:00
//$("input[name='specServiceCode']").attr("range","[10001,20000]");
2018-08-14 14:37:48 +08:00
$(".protocol_name").html('<font color="red">*</font><spring:message code="protocol_name"/>:');
2018-08-15 11:45:33 +08:00
$(".protocol_desc").html('<spring:message code="protocol_desc"/>:');
2018-08-14 14:37:48 +08:00
}
2018-07-25 15:19:24 +08:00
});
2018-08-22 19:48:20 +08:00
$("#specificServiceCfg1Id,#specificServiceCfg2Id,#specificServiceCfg3Id").on("change",function(){
var cfgType=$(this).parents(".cfgType").attr("cfgType");
if($(this).val()==0){
$("#businessType"+cfgType).parents(".businessType").removeClass("hidden");
}else{
$("#businessType"+cfgType).selectpicker("val","");
$("#businessType"+cfgType).parents(".businessType").addClass("hidden");
}
2018-09-11 11:03:08 +08:00
if(!$(this).val()||$(this).val()==0){
$("#isLeaf").val(0);
}else{
$("#isLeaf").val(1);
}
2018-08-22 19:48:20 +08:00
});
2018-03-17 17:09:19 +08:00
});
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="history.go(-1)"><spring:message code="back"/></button>
</div>
<h3 class="page-title">
2018-03-21 13:43:43 +08:00
<spring:message code="specific_service_cfg"/>
2018-03-17 17:09:19 +08:00
</h3>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
2018-03-28 18:24:09 +08:00
<i class="fa fa-gift"></i><c:if test="${not empty specificServiceCfg.specServiceId}"><spring:message code='edit'/></c:if><c:if test="${empty specificServiceCfg.specServiceId}"><spring:message code='add'/></c:if></div>
2018-03-17 17:09:19 +08:00
<div class="tools">
<!-- <a href="javascript:;" class="collapse"> </a>
<a href="#portlet-config" data-toggle="modal" class="config"> </a>
<a href="javascript:;" class="reload"> </a>
<a href="javascript:;" class="remove"> </a> -->
</div>
</div>
<div class="portlet-body form">
<!-- BEGIN FORM-->
<form:form id="inputForm" modelAttribute="specificServiceCfg" action="${ctx}/specific/specificServiceCfg/saveOrUpdate" method="post" class="form-horizontal">
2018-06-21 09:12:25 +08:00
<input name="specServiceId" type="hidden" value="${specificServiceCfg.specServiceId}"/>
2018-07-30 09:15:36 +08:00
<input name="cfgType" type="hidden" value="${specificServiceCfg.cfgType}"/>
2018-03-17 17:09:19 +08:00
<form:hidden path="isValid" class="form-control"/>
2018-07-30 09:15:36 +08:00
<div class="form-body">
<div class="portlet-body flip-scroll">
<div class="row-fluid">
<div class="span12">
<div class="tabbable tabbable-custom tabs-left">
<ul class="nav nav-tabs tabs-left">
<c:forEach items="${fns:getDictList('SPECIFIC_SERVICE_CFG_TYPE') }" var="dict">
<li class="<c:if test="${(specificServiceCfg.specServiceId ==null and dict.itemCode==1) or specificServiceCfg.cfgType eq dict.itemCode}">active</c:if>" cfgType="${dict.itemCode}" >
<a data-toggle="tab" href="#">
<spring:message code="${dict.itemValue}"/>
</a>
</li>
</c:forEach>
</ul>
<div class="tab-content">
<c:forEach items="${fns:getDictList('SPECIFIC_SERVICE_CFG_TYPE') }" var="dict">
2018-08-14 14:37:48 +08:00
<c:set var="fatherName"><spring:message code="${dict.itemValue}"/></c:set>
2018-07-30 09:15:36 +08:00
<div class="form-group cfgType" cfgType="${dict.itemCode}">
2018-08-14 14:37:48 +08:00
<label class="col-md-3 control-label"><spring:message code="root_node"/>:</label>
2018-07-30 09:15:36 +08:00
<div class="col-md-4">
<c:if test="${empty specificServiceCfg.specServiceId}">
2018-08-14 14:37:48 +08:00
<sys:treeselect id="${'specificServiceCfg'.concat(dict.itemCode)}" name="parent.specServiceId" value="${specificServiceCfg.parent.specServiceId}" labelName="parent.specServiceName" labelValue="${fatherName}" title="${dict.itemValue}"
2018-08-23 15:10:21 +08:00
url="/specific/specificServiceCfg/treeData?isLeafShow=false&cfgType=${dict.itemCode}&specific=true" extId="${specificServiceCfg.specServiceId}" cssClass="required form-control"/>
2018-07-30 09:15:36 +08:00
</c:if>
<c:if test="${not empty specificServiceCfg.specServiceId}">
<sys:treeselect id="${'specificServiceCfg'.concat(dict.itemCode)}" name="parent.specServiceId" value="${specificServiceCfg.cfgType eq dict.itemCode?specificServiceCfg.parent.specServiceId:0}" labelName="parent.specServiceName" labelValue="${(specificServiceCfg.cfgType eq dict.itemCode and specificServiceCfg.parent.specServiceId ne '0')?fns:getBySpecServiceId(specificServiceCfg.parent.specServiceId).specServiceName:fatherName}"
2018-08-23 15:10:21 +08:00
title="${dict.itemValue}" url="/specific/specificServiceCfg/treeData?isLeafShow=false&cfgType=${dict.itemCode}&specific=true" extId="${specificServiceCfg.specServiceId}" cssClass="required form-control"/>
2018-07-30 09:15:36 +08:00
</c:if>
</div>
2018-08-16 11:20:43 +08:00
<div for="parent.specServiceName"></div>
2018-07-30 09:15:36 +08:00
</div>
2018-08-22 19:48:20 +08:00
<div class="form-group cfgType businessType
<c:if test='${specificServiceCfg.parent.specServiceId ne null or specificServiceCfg.parent.specServiceId ne 0}'>hidden</c:if>" cfgType="${dict.itemCode}">
<c:if test="${dict.itemCode==1}">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="app_business_type"/>:</label>
<div class="col-md-4">
2018-08-30 12:57:27 +08:00
<select id="businessType1" name="businessType" class="selectpicker form-control required" data-live-search="true" data-live-search-placeholder="search">
2018-08-22 19:48:20 +08:00
<option value=""><spring:message code="select"/></option>
<c:forEach items="${fns:getDictList('APP_BUSINESS_TYPE')}" var="dict">
<option value="${dict.itemCode}"
<c:if test="${dict.itemCode==specificServiceCfg.businessType}">selected</c:if>
><spring:message code="${dict.itemValue}"/></option>
</c:forEach>
</select>
</div>
</c:if>
<c:if test="${dict.itemCode==3}">
2018-08-30 10:15:33 +08:00
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="basic_protocol_business_type"/>:</label>
2018-08-22 19:48:20 +08:00
<div class="col-md-4">
2018-08-30 12:57:27 +08:00
<select id="businessType3" name="businessType" class="selectpicker form-control required" data-live-search="true" data-live-search-placeholder="search">
2018-08-22 19:48:20 +08:00
<option value=""><spring:message code="select"/></option>
2018-09-07 16:38:29 +08:00
<c:forEach items="${fns:getDictList('BASIC_PROTOCOL_BUSINESS_TYPE')}" var="dict">
2018-08-22 19:48:20 +08:00
<option value="${dict.itemCode}"
<c:if test="${dict.itemCode==specificServiceCfg.businessType}">selected</c:if>
><spring:message code="${dict.itemValue}"/></option>
</c:forEach>
</select>
</div>
</c:if>
<c:if test="${dict.itemCode==2}">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="tunnel_behavior_business_type"/>:</label>
<div class="col-md-4">
2018-08-28 19:47:09 +08:00
<select id="businessType2" name="businessType" class="form-control required" data-live-search="true" data-live-search-placeholder="search">
2018-08-22 19:48:20 +08:00
<option value=""><spring:message code="select"/></option>
<c:forEach items="${fns:getDictList('TUNNEL_BEHAV_BUSINESS_TYPE')}" var="dict">
<option value="${dict.itemCode}"
<c:if test="${dict.itemCode==specificServiceCfg.businessType or (specificServiceCfg.parent.specServiceId eq null or specificServiceCfg.parent.specServiceId eq 0)}">selected</c:if>
><spring:message code="${dict.itemValue}"/></option>
</c:forEach>
</select>
</div>
</c:if>
<div for="businessType"></div>
</div>
2018-08-30 10:15:33 +08:00
<%-- <c:if test="${dict.itemCode==1}">
<div class="form-group cfgType">
2018-08-25 15:15:20 +08:00
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="app_code"/>:</label>
<div class="col-md-4">
2018-08-27 15:40:54 +08:00
<input id="specServiceCode${dict.itemCode}" name="specServiceCode" maxlength="50" range="[300001,310000]" class="form-control required digits specServiceCodeCheck" value="${specificServiceCfg.specServiceCode}" ctx="${ctx}"/>
2018-08-25 15:15:20 +08:00
</div>
<div for="specServiceCode"></div>
</div>
</c:if>
2018-08-30 10:15:33 +08:00
<c:if test="${dict.itemCode==3}">
2018-08-25 15:15:20 +08:00
<div class="form-group cfgType">
<label class="col-md-3 control-label protocol_code"><font color="red">*</font><spring:message code="protocol_code"/>:</label>
<div class="col-md-4">
2018-08-27 15:40:54 +08:00
<input id="specServiceCode${dict.itemCode}" name="specServiceCode" maxlength="50" range="[10001,20000]" class="form-control required digits specServiceCodeCheck" value="${specificServiceCfg.specServiceCode}" ctx="${ctx}"/>
2018-08-25 15:15:20 +08:00
</div>
<div for="specServiceCode"></div>
</div>
</c:if>
2018-08-30 10:15:33 +08:00
<c:if test="${dict.itemCode==2}">
2018-08-25 15:15:20 +08:00
<div class="form-group cfgType">
<label class="col-md-3 control-label protocol_code"><font color="red">*</font><spring:message code="tunnel_code"/>:</label>
<div class="col-md-4">
<input id="specServiceCode${dict.itemCode}" name="specServiceCode" maxlength="50" range="[0,2147483647]" class="form-control required digits specServiceCodeCheck" value="${specificServiceCfg.specServiceCode}" ctx="${ctx}"/>
</div>
<div for="specServiceCode"></div>
</div>
2018-08-30 10:15:33 +08:00
</c:if> --%>
2018-07-30 09:15:36 +08:00
</c:forEach>
<div class="form-group">
2018-08-14 14:37:48 +08:00
<label class="col-md-3 control-label protocol_code"><font color="red">*</font><spring:message code="protocol_code"/>:</label>
2018-07-30 09:15:36 +08:00
<div class="col-md-4">
<input id="specServiceCode" name="specServiceCode" maxlength="50" range="[0,2147483647]" class="form-control required digits specServiceCodeCheck" value="${specificServiceCfg.specServiceCode}" ctx="${ctx}"/>
</div>
2018-08-16 11:20:43 +08:00
<div for="specServiceCode"></div>
2018-08-30 10:15:33 +08:00
</div>
2018-07-30 09:15:36 +08:00
<div class="form-group">
2018-08-14 14:37:48 +08:00
<label class="col-md-3 control-label protocol_name"><font color="red">*</font><spring:message code="protocol_name"/>:</label>
2018-07-30 09:15:36 +08:00
<div class="col-md-4">
<form:input path="specServiceName" htmlEscape="false" maxlength="64" class="form-control required noBlankSpace"/>
</div>
2018-08-16 11:20:43 +08:00
<div for="specServiceName"></div>
2018-07-30 09:15:36 +08:00
</div>
<div class="form-group">
<label class="col-md-3 control-label hidden"><spring:message code="group_id"/>:</label>
<div class="col-md-4">
<form:input path="groupId" htmlEscape="false" maxlength="50" range="[0,2147483647]" class="form-control digits hidden" placeholder="0"/>
</div>
2018-08-16 11:20:43 +08:00
<div for="groupId"></div>
2018-07-30 09:15:36 +08:00
</div>
2018-08-22 19:48:20 +08:00
2018-09-11 11:03:08 +08:00
<%-- <div class="form-group hidden">
2018-07-30 09:15:36 +08:00
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="is_leaf"/>:</label>
<div class="col-md-4">
<form:select path="isLeaf" class="form-control leafChange">
<c:forEach items="${fns:getDictList('INT_YES_NO')}" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
2018-09-11 11:03:08 +08:00
</div> --%>
<c:if test="${not empty specificServiceCfg and specificServiceCfg.isLeaf ne null}">
<input type="hidden" name="isLeaf" id="isLeaf" value="${specificServiceCfg.isLeaf}">
</c:if>
<c:if test="${empty specificServiceCfg or specificServiceCfg.isLeaf eq null}">
<input type="hidden" name="isLeaf" id="isLeaf" value="0">
</c:if>
2018-07-30 09:15:36 +08:00
<%-- <div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="cfg_type"/>:</label>
<div class="col-md-4">
<c:forEach items="${fns:getDictList('SPECIFIC_SERVICE_CFG_TYPE') }" var="dict">
<label class="radio-inline"><form:radiobutton path="cfgType" class="required checkParent" value="${dict.itemCode}"/><spring:message code="${dict.itemValue}"/></label>
</c:forEach>
</div>
</div> --%>
<div class="form-group">
2018-08-14 14:37:48 +08:00
<label class="col-md-3 control-label protocol_desc"><spring:message code="protocol_desc"/>:</label>
2018-07-30 09:15:36 +08:00
<div class="col-md-4">
<form:textarea path="specServiceDesc" htmlEscape="false" maxlength="64" class="form-control"/>
</div>
2018-08-16 11:20:43 +08:00
<div for="specServiceDesc"></div>
2018-07-30 09:15:36 +08:00
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-9">
<shiro:hasPermission name="specific:service:edit"><button type="submit" class="btn btn-circle blue"><spring:message code="submit"/></button></shiro:hasPermission>
2018-08-22 19:48:20 +08:00
<button type="button" class="btn btn-circle grey-salsa btn-outline" id="cancel" ><spring:message code="cancel"/></button>
2018-07-30 09:15:36 +08:00
</div>
</div>
</div>
</div>
</div>
</div>
2018-03-17 17:09:19 +08:00
</div>
</div>
</div>
</form:form>
<!-- END FORM-->
</div>
</div>
</div>
</div>
</div>
</body>
</html>