1. 调整依赖

2. 完善系统、api与参数之间的关联关系
This commit is contained in:
wanggeng 2021-08-20 23:15:13 +08:00
parent e1204edec3
commit 3567a3f35b
32 changed files with 755 additions and 1064 deletions

15
pom.xml
View File

@ -69,26 +69,11 @@
</dependency>
<!-- wgink start -->
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>service-group</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>service-position</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>service-role</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>basic-app</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>login-base</artifactId>

View File

@ -13,8 +13,8 @@ public class HeaderBO {
private String headerId;
private String systemId;
private String apiId;
private String key;
private String value;
private String headerName;
private String headerValue;
private String summary;
public String getHeaderId() {
@ -41,20 +41,20 @@ public class HeaderBO {
this.apiId = apiId;
}
public String getKey() {
return key == null ? "" : key.trim();
public String getHeaderName() {
return headerName == null ? "" : headerName.trim();
}
public void setKey(String key) {
this.key = key;
public void setHeaderName(String headerName) {
this.headerName = headerName;
}
public String getValue() {
return value == null ? "" : value.trim();
public String getHeaderValue() {
return headerValue == null ? "" : headerValue.trim();
}
public void setValue(String value) {
this.value = value;
public void setHeaderValue(String headerValue) {
this.headerValue = headerValue;
}
public String getSummary() {

View File

@ -15,7 +15,6 @@ public class ResponseParamsBO {
private String apiId;
private String paramsName;
private String paramsSummary;
private String paramsType;
private String paramsDataType;
private Integer paramsIsRequired;
private String paramsExample;
@ -60,14 +59,6 @@ public class ResponseParamsBO {
this.paramsSummary = paramsSummary;
}
public String getParamsType() {
return paramsType == null ? "" : paramsType.trim();
}
public void setParamsType(String paramsType) {
this.paramsType = paramsType;
}
public String getParamsDataType() {
return paramsDataType == null ? "" : paramsDataType.trim();
}

View File

@ -5,7 +5,7 @@ package ink.wgink.gatewaymanage.pojo.bos.system;
* @ClassName: SystemBO
* @Description: 接口系统
* @Author: CodeFactory
* @Date: 2021-08-16 15:03:18
* @Date: 2021-08-20 20:09:08
* @Version: 3.0
**/
public class SystemBO {
@ -15,7 +15,7 @@ public class SystemBO {
private String summary;
private String logo;
private String gatewayContext;
private String schema;
private String requestSchema;
private String ipAddress;
private String systemContext;
private String auditStatus;
@ -68,12 +68,12 @@ public class SystemBO {
this.gatewayContext = gatewayContext;
}
public String getSchema() {
return schema == null ? "" : schema.trim();
public String getRequestSchema() {
return requestSchema == null ? "" : requestSchema.trim();
}
public void setSchema(String schema) {
this.schema = schema;
public void setRequestSchema(String requestSchema) {
this.requestSchema = requestSchema;
}
public String getIpAddress() {

View File

@ -20,10 +20,10 @@ public class HeaderDTO {
private String systemId;
@ApiModelProperty(name = "apiId", value = "接口ID")
private String apiId;
@ApiModelProperty(name = "key", value = "键名")
private String key;
@ApiModelProperty(name = "value", value = "键值")
private String value;
@ApiModelProperty(name = "headerName", value = "键名")
private String headerName;
@ApiModelProperty(name = "headerValue", value = "键值")
private String headerValue;
@ApiModelProperty(name = "summary", value = "说明")
private String summary;
@ -51,20 +51,20 @@ public class HeaderDTO {
this.apiId = apiId;
}
public String getKey() {
return key == null ? "" : key.trim();
public String getHeaderName() {
return headerName == null ? "" : headerName.trim();
}
public void setKey(String key) {
this.key = key;
public void setHeaderName(String headerName) {
this.headerName = headerName;
}
public String getValue() {
return value == null ? "" : value.trim();
public String getHeaderValue() {
return headerValue == null ? "" : headerValue.trim();
}
public void setValue(String value) {
this.value = value;
public void setHeaderValue(String headerValue) {
this.headerValue = headerValue;
}
public String getSummary() {

View File

@ -24,8 +24,6 @@ public class ResponseParamsDTO {
private String paramsName;
@ApiModelProperty(name = "paramsSummary", value = "参数说明")
private String paramsSummary;
@ApiModelProperty(name = "paramsType", value = "参数类型")
private String paramsType;
@ApiModelProperty(name = "paramsDataType", value = "参数数据类型")
private String paramsDataType;
@ApiModelProperty(name = "paramsIsRequired", value = "是否必填")
@ -73,14 +71,6 @@ public class ResponseParamsDTO {
this.paramsSummary = paramsSummary;
}
public String getParamsType() {
return paramsType == null ? "" : paramsType.trim();
}
public void setParamsType(String paramsType) {
this.paramsType = paramsType;
}
public String getParamsDataType() {
return paramsDataType == null ? "" : paramsDataType.trim();
}

View File

@ -4,11 +4,10 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
*
* @ClassName: SystemDTO
* @Description: 接口系统
* @Author: CodeFactory
* @Date: 2021-08-16 15:03:18
* @Date: 2021-08-20 20:09:08
* @Version: 3.0
**/
@ApiModel
@ -24,8 +23,8 @@ public class SystemDTO {
private String logo;
@ApiModelProperty(name = "gatewayContext", value = "网关上下文")
private String gatewayContext;
@ApiModelProperty(name = "schema", value = "请求方式")
private String schema;
@ApiModelProperty(name = "requestSchema", value = "请求方式")
private String requestSchema;
@ApiModelProperty(name = "ipAddress", value = "系统地址")
private String ipAddress;
@ApiModelProperty(name = "systemContext", value = "系统上下文")
@ -40,6 +39,14 @@ public class SystemDTO {
private String auditReason;
@ApiModelProperty(name = "gmtCreate", value = "创建时间")
private String gmtCreate;
@ApiModelProperty(name = "creator", value = "创建人")
private String creator;
@ApiModelProperty(name = "gmtModified", value = "修改时间")
private String gmtModified;
@ApiModelProperty(name = "modifier", value = "修改人")
private String modifier;
@ApiModelProperty(name = "isDelete", value = "是否删除")
private Integer isDelete;
public String getSystemId() {
return systemId == null ? "" : systemId.trim();
@ -81,12 +88,12 @@ public class SystemDTO {
this.gatewayContext = gatewayContext;
}
public String getSchema() {
return schema == null ? "" : schema.trim();
public String getRequestSchema() {
return requestSchema == null ? "" : requestSchema.trim();
}
public void setSchema(String schema) {
this.schema = schema;
public void setRequestSchema(String requestSchema) {
this.requestSchema = requestSchema;
}
public String getIpAddress() {
@ -145,5 +152,37 @@ public class SystemDTO {
this.gmtCreate = gmtCreate;
}
public String getCreator() {
return creator == null ? "" : creator.trim();
}
public void setCreator(String creator) {
this.creator = creator;
}
public String getGmtModified() {
return gmtModified == null ? "" : gmtModified.trim();
}
public void setGmtModified(String gmtModified) {
this.gmtModified = gmtModified;
}
public String getModifier() {
return modifier == null ? "" : modifier.trim();
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
public Integer getIsDelete() {
return isDelete == null ? 0 : isDelete;
}
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
}

View File

@ -1,7 +1,6 @@
package ink.wgink.gatewaymanage.pojo.pos.header;
/**
*
* @ClassName: HeaderPO
* @Description: 请求头
* @Author: CodeFactory
@ -13,8 +12,8 @@ public class HeaderPO {
private String headerId;
private String systemId;
private String apiId;
private String key;
private String value;
private String headerName;
private String headerValue;
private String summary;
public String getHeaderId() {
@ -41,20 +40,20 @@ public class HeaderPO {
this.apiId = apiId;
}
public String getKey() {
return key == null ? "" : key.trim();
public String getHeaderName() {
return headerName == null ? "" : headerName.trim();
}
public void setKey(String key) {
this.key = key;
public void setHeaderName(String headerName) {
this.headerName = headerName;
}
public String getValue() {
return value == null ? "" : value.trim();
public String getHeaderValue() {
return headerValue == null ? "" : headerValue.trim();
}
public void setValue(String value) {
this.value = value;
public void setHeaderValue(String headerValue) {
this.headerValue = headerValue;
}
public String getSummary() {

View File

@ -15,7 +15,6 @@ public class ResponseParamsPO {
private String apiId;
private String paramsName;
private String paramsSummary;
private String paramsType;
private String paramsDataType;
private Integer paramsIsRequired;
private String paramsExample;
@ -60,14 +59,6 @@ public class ResponseParamsPO {
this.paramsSummary = paramsSummary;
}
public String getParamsType() {
return paramsType == null ? "" : paramsType.trim();
}
public void setParamsType(String paramsType) {
this.paramsType = paramsType;
}
public String getParamsDataType() {
return paramsDataType == null ? "" : paramsDataType.trim();
}

View File

@ -5,7 +5,7 @@ package ink.wgink.gatewaymanage.pojo.pos.system;
* @ClassName: SystemPO
* @Description: 接口系统
* @Author: CodeFactory
* @Date: 2021-08-16 15:03:18
* @Date: 2021-08-20 20:09:08
* @Version: 3.0
**/
public class SystemPO {
@ -15,7 +15,7 @@ public class SystemPO {
private String summary;
private String logo;
private String gatewayContext;
private String schema;
private String requestSchema;
private String ipAddress;
private String systemContext;
private String auditStatus;
@ -68,12 +68,12 @@ public class SystemPO {
this.gatewayContext = gatewayContext;
}
public String getSchema() {
return schema == null ? "" : schema.trim();
public String getRequestSchema() {
return requestSchema == null ? "" : requestSchema.trim();
}
public void setSchema(String schema) {
this.schema = schema;
public void setRequestSchema(String requestSchema) {
this.requestSchema = requestSchema;
}
public String getIpAddress() {

View File

@ -17,14 +17,18 @@ import io.swagger.annotations.ApiModelProperty;
public class ApiVO {
@ApiModelProperty(name = "systemId", value = "系统ID")
@CheckEmptyAnnotation(name = "系统ID")
private String systemId;
@ApiModelProperty(name = "title", value = "标题")
@CheckEmptyAnnotation(name = "标题")
private String title;
@ApiModelProperty(name = "summary", value = "说明")
private String summary;
@ApiModelProperty(name = "url", value = "请求地址")
@CheckEmptyAnnotation(name = "请求地址")
private String url;
@ApiModelProperty(name = "method", value = "方法")
@CheckEmptyAnnotation(name = "方法")
private String method;
@ApiModelProperty(name = "requestExampleUrl", value = "请求示例")
private String requestExampleUrl;

View File

@ -1,7 +1,6 @@
package ink.wgink.gatewaymanage.pojo.vos.header;
import ink.wgink.annotation.CheckEmptyAnnotation;
import ink.wgink.annotation.CheckNumberAnnotation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -17,14 +16,19 @@ import io.swagger.annotations.ApiModelProperty;
public class HeaderVO {
@ApiModelProperty(name = "systemId", value = "系统ID")
@CheckEmptyAnnotation(name = "系统ID")
private String systemId;
@ApiModelProperty(name = "apiId", value = "接口ID")
@CheckEmptyAnnotation(name = "接口ID")
private String apiId;
@ApiModelProperty(name = "key", value = "键名")
private String key;
@ApiModelProperty(name = "value", value = "键值")
private String value;
@ApiModelProperty(name = "headerName", value = "键名")
@CheckEmptyAnnotation(name = "键名")
private String headerName;
@ApiModelProperty(name = "headerValue", value = "键值")
@CheckEmptyAnnotation(name = "键值")
private String headerValue;
@ApiModelProperty(name = "summary", value = "说明")
@CheckEmptyAnnotation(name = "说明")
private String summary;
public String getSystemId() {
@ -43,20 +47,20 @@ public class HeaderVO {
this.apiId = apiId;
}
public String getKey() {
return key == null ? "" : key.trim();
public String getHeaderName() {
return headerName == null ? "" : headerName.trim();
}
public void setKey(String key) {
this.key = key;
public void setHeaderName(String headerName) {
this.headerName = headerName;
}
public String getValue() {
return value == null ? "" : value.trim();
public String getHeaderValue() {
return headerValue == null ? "" : headerValue.trim();
}
public void setValue(String value) {
this.value = value;
public void setHeaderValue(String headerValue) {
this.headerValue = headerValue;
}
public String getSummary() {

View File

@ -17,19 +17,21 @@ import io.swagger.annotations.ApiModelProperty;
public class ResponseParamsVO {
@ApiModelProperty(name = "systemId", value = "系统ID")
@CheckEmptyAnnotation(name = "系统ID")
private String systemId;
@ApiModelProperty(name = "apiId", value = "接口ID")
@CheckEmptyAnnotation(name = "接口ID")
private String apiId;
@ApiModelProperty(name = "paramsName", value = "参数名")
@CheckEmptyAnnotation(name = "参数名")
private String paramsName;
@ApiModelProperty(name = "paramsSummary", value = "参数说明")
@CheckEmptyAnnotation(name = "参数说明")
private String paramsSummary;
@ApiModelProperty(name = "paramsType", value = "参数类型")
private String paramsType;
@ApiModelProperty(name = "paramsDataType", value = "参数数据类型")
private String paramsDataType;
@ApiModelProperty(name = "paramsIsRequired", value = "是否必填")
@CheckNumberAnnotation(name = "是否必填")
@CheckNumberAnnotation(name = "是否为空")
private Integer paramsIsRequired;
@ApiModelProperty(name = "paramsExample", value = "参数示例")
private String paramsExample;
@ -66,14 +68,6 @@ public class ResponseParamsVO {
this.paramsSummary = paramsSummary;
}
public String getParamsType() {
return paramsType == null ? "" : paramsType.trim();
}
public void setParamsType(String paramsType) {
this.paramsType = paramsType;
}
public String getParamsDataType() {
return paramsDataType == null ? "" : paramsDataType.trim();
}

View File

@ -1,7 +1,5 @@
package ink.wgink.gatewaymanage.pojo.vos.system;
import ink.wgink.annotation.CheckEmptyAnnotation;
import ink.wgink.annotation.CheckNumberAnnotation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -10,7 +8,7 @@ import io.swagger.annotations.ApiModelProperty;
* @ClassName: SystemVO
* @Description: 接口系统
* @Author: CodeFactory
* @Date: 2021-08-16 15:03:18
* @Date: 2021-08-20 20:09:08
* @Version: 3.0
**/
@ApiModel
@ -24,8 +22,8 @@ public class SystemVO {
private String logo;
@ApiModelProperty(name = "gatewayContext", value = "网关上下文")
private String gatewayContext;
@ApiModelProperty(name = "schema", value = "请求方式")
private String schema;
@ApiModelProperty(name = "requestSchema", value = "请求方式")
private String requestSchema;
@ApiModelProperty(name = "ipAddress", value = "系统地址")
private String ipAddress;
@ApiModelProperty(name = "systemContext", value = "系统上下文")
@ -63,12 +61,12 @@ public class SystemVO {
this.gatewayContext = gatewayContext;
}
public String getSchema() {
return schema == null ? "" : schema.trim();
public String getRequestSchema() {
return requestSchema == null ? "" : requestSchema.trim();
}
public void setSchema(String schema) {
this.schema = schema;
public void setRequestSchema(String requestSchema) {
this.requestSchema = requestSchema;
}
public String getIpAddress() {

View File

@ -6,8 +6,8 @@
<result column="header_id" property="headerId"/>
<result column="system_id" property="systemId"/>
<result column="api_id" property="apiId"/>
<result column="key" property="key"/>
<result column="value" property="value"/>
<result column="header_name" property="headerName"/>
<result column="header_value" property="headerValue"/>
<result column="summary" property="summary"/>
</resultMap>
@ -15,8 +15,8 @@
<result column="header_id" property="headerId"/>
<result column="system_id" property="systemId"/>
<result column="api_id" property="apiId"/>
<result column="key" property="key"/>
<result column="value" property="value"/>
<result column="header_name" property="headerName"/>
<result column="header_value" property="headerValue"/>
<result column="summary" property="summary"/>
</resultMap>
@ -24,8 +24,8 @@
<result column="header_id" property="headerId"/>
<result column="system_id" property="systemId"/>
<result column="api_id" property="apiId"/>
<result column="key" property="key"/>
<result column="value" property="value"/>
<result column="header_name" property="headerName"/>
<result column="header_value" property="headerValue"/>
<result column="summary" property="summary"/>
</resultMap>
@ -35,15 +35,15 @@
header_id,
system_id,
api_id,
key,
value,
header_name,
header_value,
summary
) VALUES(
#{headerId},
#{systemId},
#{apiId},
#{key},
#{value},
#{headerName},
#{headerValue},
#{summary}
)
</insert>
@ -71,11 +71,11 @@
<if test="apiId != null and apiId != ''">
api_id = #{apiId},
</if>
<if test="key != null and key != ''">
key = #{key},
<if test="headerName != null and headerName != ''">
header_name = #{headerName},
</if>
<if test="value != null and value != ''">
value = #{value},
<if test="headerValue != null and headerValue != ''">
header_value = #{headerValue},
</if>
<if test="summary != null and summary != ''">
summary = #{summary},
@ -90,8 +90,8 @@
SELECT
t1.system_id,
t1.api_id,
t1.key,
t1.value,
t1.header_name,
t1.header_value,
t1.summary,
t1.header_id
FROM
@ -110,8 +110,8 @@
t1.header_id,
t1.system_id,
t1.api_id,
t1.key,
t1.value,
t1.header_name,
t1.header_value,
t1.summary
FROM
api_header t1
@ -129,8 +129,8 @@
t1.header_id,
t1.system_id,
t1.api_id,
t1.key,
t1.value,
t1.header_name,
t1.header_value,
t1.summary
FROM
api_header t1
@ -148,8 +148,8 @@
t1.header_id,
t1.system_id,
t1.api_id,
t1.key,
t1.value,
t1.header_name,
t1.header_value,
t1.summary,
1
FROM
@ -159,7 +159,7 @@
<if test="keywords != null and keywords != ''">
AND (
<!-- 这里添加其他条件 -->
t1.id LIKE CONCAT('%', #{keywords}, '%')
t1.id LIKE CONCAT('%', #{header_namewords}, '%')
)
</if>
<if test="headerIds != null and headerIds.size > 0">
@ -177,8 +177,8 @@
t1.header_id,
t1.system_id,
t1.api_id,
t1.key,
t1.value,
t1.header_name,
t1.header_value,
t1.summary
FROM
api_header t1
@ -187,7 +187,7 @@
<if test="keywords != null and keywords != ''">
AND (
<!-- 这里添加其他条件 -->
t1.id LIKE CONCAT('%', #{keywords}, '%')
t1.id LIKE CONCAT('%', #{header_namewords}, '%')
)
</if>
<if test="headerIds != null and headerIds.size > 0">
@ -205,8 +205,8 @@
t1.header_id,
t1.system_id,
t1.api_id,
t1.key,
t1.value,
t1.header_name,
t1.header_value,
t1.summary
FROM
api_header t1
@ -215,7 +215,7 @@
<if test="keywords != null and keywords != ''">
AND (
<!-- 这里添加其他条件 -->
t1.id LIKE CONCAT('%', #{keywords}, '%')
t1.id LIKE CONCAT('%', #{header_namewords}, '%')
)
</if>
<if test="headerIds != null and headerIds.size > 0">

View File

@ -8,7 +8,6 @@
<result column="api_id" property="apiId"/>
<result column="params_name" property="paramsName"/>
<result column="params_summary" property="paramsSummary"/>
<result column="params_type" property="paramsType"/>
<result column="params_data_type" property="paramsDataType"/>
<result column="params_is_required" property="paramsIsRequired"/>
<result column="params_example" property="paramsExample"/>
@ -20,7 +19,6 @@
<result column="api_id" property="apiId"/>
<result column="params_name" property="paramsName"/>
<result column="params_summary" property="paramsSummary"/>
<result column="params_type" property="paramsType"/>
<result column="params_data_type" property="paramsDataType"/>
<result column="params_is_required" property="paramsIsRequired"/>
<result column="params_example" property="paramsExample"/>
@ -32,7 +30,6 @@
<result column="api_id" property="apiId"/>
<result column="params_name" property="paramsName"/>
<result column="params_summary" property="paramsSummary"/>
<result column="params_type" property="paramsType"/>
<result column="params_data_type" property="paramsDataType"/>
<result column="params_is_required" property="paramsIsRequired"/>
<result column="params_example" property="paramsExample"/>
@ -46,7 +43,6 @@
api_id,
params_name,
params_summary,
params_type,
params_data_type,
params_is_required,
params_example
@ -56,7 +52,6 @@
#{apiId},
#{paramsName},
#{paramsSummary},
#{paramsType},
#{paramsDataType},
#{paramsIsRequired},
#{paramsExample}
@ -92,9 +87,6 @@
<if test="paramsSummary != null and paramsSummary != ''">
params_summary = #{paramsSummary},
</if>
<if test="paramsType != null and paramsType != ''">
params_type = #{paramsType},
</if>
<if test="paramsDataType != null and paramsDataType != ''">
params_data_type = #{paramsDataType},
</if>
@ -116,7 +108,6 @@
t1.api_id,
t1.params_name,
t1.params_summary,
t1.params_type,
t1.params_data_type,
t1.params_is_required,
t1.params_example,
@ -139,7 +130,6 @@
t1.api_id,
t1.params_name,
t1.params_summary,
t1.params_type,
t1.params_data_type,
t1.params_is_required,
t1.params_example
@ -161,7 +151,6 @@
t1.api_id,
t1.params_name,
t1.params_summary,
t1.params_type,
t1.params_data_type,
t1.params_is_required,
t1.params_example
@ -183,7 +172,6 @@
t1.api_id,
t1.params_name,
t1.params_summary,
t1.params_type,
t1.params_data_type,
t1.params_is_required,
t1.params_example,
@ -215,7 +203,6 @@
t1.api_id,
t1.params_name,
t1.params_summary,
t1.params_type,
t1.params_data_type,
t1.params_is_required,
t1.params_example
@ -246,7 +233,6 @@
t1.api_id,
t1.params_name,
t1.params_summary,
t1.params_type,
t1.params_data_type,
t1.params_is_required,
t1.params_example

View File

@ -8,7 +8,7 @@
<result column="summary" property="summary"/>
<result column="logo" property="logo"/>
<result column="gateway_context" property="gatewayContext"/>
<result column="schema" property="schema"/>
<result column="request_schema" property="requestSchema"/>
<result column="ip_address" property="ipAddress"/>
<result column="system_context" property="systemContext"/>
<result column="audit_status" property="auditStatus"/>
@ -24,7 +24,7 @@
<result column="summary" property="summary"/>
<result column="logo" property="logo"/>
<result column="gateway_context" property="gatewayContext"/>
<result column="schema" property="schema"/>
<result column="request_schema" property="requestSchema"/>
<result column="ip_address" property="ipAddress"/>
<result column="system_context" property="systemContext"/>
<result column="audit_status" property="auditStatus"/>
@ -44,7 +44,7 @@
<result column="summary" property="summary"/>
<result column="logo" property="logo"/>
<result column="gateway_context" property="gatewayContext"/>
<result column="schema" property="schema"/>
<result column="request_schema" property="requestSchema"/>
<result column="ip_address" property="ipAddress"/>
<result column="system_context" property="systemContext"/>
<result column="audit_status" property="auditStatus"/>
@ -66,7 +66,7 @@
summary,
logo,
gateway_context,
schema,
request_schema,
ip_address,
system_context,
audit_status,
@ -84,7 +84,7 @@
#{summary},
#{logo},
#{gatewayContext},
#{schema},
#{requestSchema},
#{ipAddress},
#{systemContext},
#{auditStatus},
@ -142,8 +142,8 @@
<if test="gatewayContext != null and gatewayContext != ''">
gateway_context = #{gatewayContext},
</if>
<if test="schema != null and schema != ''">
schema = #{schema},
<if test="requestSchema != null and requestSchema != ''">
request_schema = #{requestSchema},
</if>
<if test="ipAddress != null and ipAddress != ''">
ip_address = #{ipAddress},
@ -165,7 +165,7 @@
t1.summary,
t1.logo,
t1.gateway_context,
t1.schema,
t1.request_schema,
t1.ip_address,
t1.system_context,
t1.system_id
@ -187,7 +187,7 @@
t1.summary,
t1.logo,
t1.gateway_context,
t1.schema,
t1.request_schema,
t1.ip_address,
t1.system_context,
t1.audit_status,
@ -217,7 +217,7 @@
t1.summary,
t1.logo,
t1.gateway_context,
t1.schema,
t1.request_schema,
t1.ip_address,
t1.system_context,
t1.audit_status,
@ -247,7 +247,7 @@
t1.summary,
t1.logo,
t1.gateway_context,
t1.schema,
t1.request_schema,
t1.ip_address,
t1.system_context,
t1.audit_status,
@ -291,7 +291,7 @@
t1.summary,
t1.logo,
t1.gateway_context,
t1.schema,
t1.request_schema,
t1.ip_address,
t1.system_context,
t1.audit_status,
@ -338,7 +338,7 @@
t1.summary,
t1.logo,
t1.gateway_context,
t1.schema,
t1.request_schema,
t1.ip_address,
t1.system_context,
t1.audit_status,

View File

@ -266,6 +266,21 @@
return rowData;
}
},
{field: 'headerParams', width: 80, title: '头参数', align:'center', fixed: 'right',
templet: function(row) {
return '<button class="layui-btn layui-btn-sm" lay-event="headerParamsEvent">查看</button>';
}
},
{field: 'requestParams', width: 90, title: '请求参数', align:'center', fixed: 'right',
templet: function(row) {
return '<button class="layui-btn layui-btn-sm" lay-event="requestParamsEvent">查看</button>';
}
},
{field: 'responseParams', width: 90, title: '响应参数', align:'center', fixed: 'right',
templet: function(row) {
return '<button class="layui-btn layui-btn-sm" lay-event="responseParamsEvent">查看</button>';
}
},
]
],
page: true,
@ -393,6 +408,36 @@
}
}
});
table.on('tool(dataTable)', function(obj) {
var event = obj.event;
var data = obj.data;
if(event === 'headerParamsEvent') {
top.dialog.open({
url: top.restAjax.path('route/header/list.html?systemId={systemId}&apiId={apiId}', [data.systemId, data.apiId]),
title: '头参数列表',
width: '500px',
height: '400px',
onClose: function() {}
});
} else if(event === 'requestParamsEvent') {
top.dialog.open({
url: top.restAjax.path('route/requestparams/list.html?systemId={systemId}&apiId={apiId}', [data.systemId, data.apiId]),
title: '请求参数列表',
width: '500px',
height: '400px',
onClose: function() {}
});
} else if(event === 'responseParamsEvent') {
top.dialog.open({
url: top.restAjax.path('route/responseparams/list.html?systemId={systemId}&apiId={apiId}', [data.systemId, data.apiId]),
title: '响应参数列表',
width: '500px',
height: '400px',
onClose: function() {}
});
}
});
});
</script>
</body>

View File

@ -9,7 +9,8 @@
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
<link rel="stylesheet" href="assets/js/vendor/codemirror/codemirror.css">
<link rel="stylesheet" href="assets/js/vendor/codemirror/theme/dracula.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
@ -23,15 +24,21 @@
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">系统ID</label>
<div class="layui-input-block">
<input type="text" id="systemId" name="systemId" class="layui-input" value="" placeholder="请输入系统ID" maxlength="36">
</div>
<label class="layui-form-label">系统 *</label>
<div class="layui-input-block layui-form" id="systemIdTemplateBox" lay-filter="systemIdTemplateBox"></div>
<script id="systemIdTemplate" type="text/html">
<select name="systemId" lay-verify="required">
<option value="">选择系统</option>
{{# for(var i = 0, item; item = d[i++];) { }}
<option value="{{item.systemId}}">{{item.name}}</option>
{{# } }}
</select>
</script>
</div>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<label class="layui-form-label">标题 *</label>
<div class="layui-input-block">
<input type="text" id="title" name="title" class="layui-input" value="" placeholder="请输入标题" maxlength="255">
<input type="text" id="title" name="title" class="layui-input" value="" placeholder="请输入标题" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
@ -41,19 +48,25 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">请求地址</label>
<label class="layui-form-label">请求地址 *</label>
<div class="layui-input-block">
<input type="text" id="url" name="url" class="layui-input" value="" placeholder="请输入请求地址" maxlength="1,000">
<input type="text" id="url" name="url" class="layui-input" value="" placeholder="请输入请求地址,如 /a/{b}/c" maxlength="1000" lay-verify="required">
</div>
<div class="layui-form-mid layui-word-aux">不包含系统上下文,以根路径开头,如果有变量,用 花括号 "{}" 包含变量</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">方法</label>
<label class="layui-form-label">方法 *</label>
<div class="layui-input-block">
<input type="text" id="method" name="method" class="layui-input" value="" placeholder="请输入方法" maxlength="255">
<select name="method" lay-verify="required">
<option value="GET" selected>GET</option>
<option value="POST">POST</option>
<option value="PUT">PUT</option>
<option value="DELETE">DELETE</option>
</select>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">请求示例</label>
<label class="layui-form-label">请求示例 *</label>
<div class="layui-input-block">
<textarea id="requestExampleUrl" name="requestExampleUrl" class="layui-textarea" placeholder="请输入请求示例"></textarea>
</div>
@ -61,37 +74,40 @@
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">请求正文</label>
<div class="layui-input-block">
<div id="requestExampleBody"></div>
<textarea id="requestExampleBody" name="requestExampleBody"></textarea>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">响应成功示例</label>
<div class="layui-input-block">
<div id="responseSuccessExample"></div>
<textarea id="responseSuccessExample" name="responseSuccessExample"></textarea>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">响应失败示例</label>
<div class="layui-input-block">
<div id="responseFailExample"></div>
<textarea id="responseFailExample" name="responseFailExample"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否发布</label>
<div class="layui-form-item" pane>
<label class="layui-form-label">是否发布 *</label>
<div class="layui-input-block">
<input type="number" id="isPublish" name="isPublish" class="layui-input" value="0" placeholder="请输入是否发布" lay-verify="required">
<input type="radio" name="isPublish" value="0" title="否">
<input type="radio" name="isPublish" value="1" title="是" checked>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否可认领</label>
<div class="layui-form-item" pane>
<label class="layui-form-label">是否可认领 *</label>
<div class="layui-input-block">
<input type="number" id="isCanClaim" name="isCanClaim" class="layui-input" value="1" placeholder="请输入是否可认领" lay-verify="required">
<input type="radio" name="isCanClaim" value="0" title="否">
<input type="radio" name="isCanClaim" value="1" title="是" checked>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否可用</label>
<div class="layui-form-item" pane>
<label class="layui-form-label">是否可用 *</label>
<div class="layui-input-block">
<input type="number" id="isUsable" name="isUsable" class="layui-input" value="0" placeholder="请输入是否可用" lay-verify="required">
<input type="radio" name="isUsable" value="0" title="否">
<input type="radio" name="isUsable" value="1" title="是" checked>
</div>
</div>
<div class="layui-form-item layui-layout-admin">
@ -106,9 +122,7 @@
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/js/vendor/codemirror/codemirror.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
@ -124,135 +138,71 @@
var wangEditorObj = {};
var viewerObj = {};
var codeMirrorConfig = {
lineNumbers: true,
theme: 'dracula',
matchBrackets: true,
indentUnit : 4,
tabSize : 4,
extraKeys: {
'Shift-Tab': function (cm) {
if (cm.somethingSelected()) {
cm.indentSelection('subtract');
} else {
cm.indentLine(cm.getCursor().line, "subtract");
}
return;
},
}
};
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
// 初始化系统ID
function initSystemId() {
top.restAjax.get(top.restAjax.path('api/system/list', []), {}, null, function(code, data, args) {
laytpl(document.getElementById('systemIdTemplate').innerHTML).render(data, function(html) {
document.getElementById('systemIdTemplateBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
form.render('select', 'systemIdTemplateBox');
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
}
});
}
}
// 初始化请求正文富文本
function initRequestExampleBodyRichText() {
var editor = new wangEditor('#requestExampleBody');
editor.customConfig.zIndex = 1000;
editor.customConfig.uploadImgMaxSize = 5 * 1024 * 1024;
editor.customConfig.uploadImgMaxLength = 1;
editor.customConfig.uploadFileName = 'image';
editor.customConfig.uploadImgServer = 'api/file/wangeditorimage';
editor.customConfig.uploadImgHooks = {
fail: function (xhr, editor, result) {
top.dialog.msg('系统错误,图片上传失败');
},
error: function (xhr, editor) {
top.dialog.msg('网络异常');
},
timeout: function (xhr, editor) {
top.dialog.msg('网络请求超时');
}
};
editor.create();
wangEditorObj['requestExampleBody'] = editor;
function initRequestExampleBody() {
var editor = CodeMirror.fromTextArea(document.getElementById('requestExampleBody'), codeMirrorConfig);
editor.on('change', function(self, changeValue) {
$('#requestExampleBody').val(self.getValue());
})
}
// 初始化响应成功示例富文本
function initResponseSuccessExampleRichText() {
var editor = new wangEditor('#responseSuccessExample');
editor.customConfig.zIndex = 1000;
editor.customConfig.uploadImgMaxSize = 5 * 1024 * 1024;
editor.customConfig.uploadImgMaxLength = 1;
editor.customConfig.uploadFileName = 'image';
editor.customConfig.uploadImgServer = 'api/file/wangeditorimage';
editor.customConfig.uploadImgHooks = {
fail: function (xhr, editor, result) {
top.dialog.msg('系统错误,图片上传失败');
},
error: function (xhr, editor) {
top.dialog.msg('网络异常');
},
timeout: function (xhr, editor) {
top.dialog.msg('网络请求超时');
}
};
editor.create();
wangEditorObj['responseSuccessExample'] = editor;
function initResponseSuccessExample() {
var editor = CodeMirror.fromTextArea(document.getElementById('responseSuccessExample'), codeMirrorConfig);
editor.on('change', function(self, changeValue) {
$('#responseSuccessExample').val(self.getValue());
})
}
// 初始化响应失败示例富文本
function initResponseFailExampleRichText() {
var editor = new wangEditor('#responseFailExample');
editor.customConfig.zIndex = 1000;
editor.customConfig.uploadImgMaxSize = 5 * 1024 * 1024;
editor.customConfig.uploadImgMaxLength = 1;
editor.customConfig.uploadFileName = 'image';
editor.customConfig.uploadImgServer = 'api/file/wangeditorimage';
editor.customConfig.uploadImgHooks = {
fail: function (xhr, editor, result) {
top.dialog.msg('系统错误,图片上传失败');
},
error: function (xhr, editor) {
top.dialog.msg('网络异常');
},
timeout: function (xhr, editor) {
top.dialog.msg('网络请求超时');
}
};
editor.create();
wangEditorObj['responseFailExample'] = editor;
function initResponseFailExample() {
var editor = CodeMirror.fromTextArea(document.getElementById('responseFailExample'), codeMirrorConfig);
editor.on('change', function(self, changeValue) {
$('#responseFailExample').val(self.getValue());
})
}
// 初始化内容
function initData() {
initRequestExampleBodyRichText();
initResponseSuccessExampleRichText();
initResponseFailExampleRichText();
initSystemId();
initRequestExampleBody();
initResponseSuccessExample();
initResponseFailExample();
}
initData();
@ -261,9 +211,6 @@
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
formData.field['requestExampleBody'] = wangEditorObj['requestExampleBody'].txt.html();
formData.field['responseSuccessExample'] = wangEditorObj['responseSuccessExample'].txt.html();
formData.field['responseFailExample'] = wangEditorObj['responseFailExample'].txt.html();
top.restAjax.post(top.restAjax.path('api/api/save', []), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
time: 0,

View File

@ -23,15 +23,21 @@
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">系统ID</label>
<div class="layui-input-block">
<input type="text" id="systemId" name="systemId" class="layui-input" value="" placeholder="请输入系统ID" maxlength="36">
</div>
<label class="layui-form-label">系统 *</label>
<div class="layui-input-block layui-form" id="systemIdTemplateBox" lay-filter="systemIdTemplateBox"></div>
<script id="systemIdTemplate" type="text/html">
<select name="systemId" lay-verify="required">
<option value="">选择系统</option>
{{# for(var i = 0, item; item = d[i++];) { }}
<option value="{{item.systemId}}">{{item.name}}</option>
{{# } }}
</select>
</script>
</div>
<div class="layui-form-item">
<label class="layui-form-label">标题</label>
<label class="layui-form-label">标题 *</label>
<div class="layui-input-block">
<input type="text" id="title" name="title" class="layui-input" value="" placeholder="请输入标题" maxlength="255">
<input type="text" id="title" name="title" class="layui-input" value="" placeholder="请输入标题" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
@ -41,57 +47,66 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">请求地址</label>
<label class="layui-form-label">请求地址 *</label>
<div class="layui-input-block">
<input type="text" id="url" name="url" class="layui-input" value="" placeholder="请输入请求地址" maxlength="1,000">
<input type="text" id="url" name="url" class="layui-input" value="" placeholder="请输入请求地址" maxlength="1000" lay-verify="required">
</div>
<div class="layui-form-mid layui-word-aux">不包含系统上下文,以根路径开头,如果有变量,用 花括号 "{}" 包含变量</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">方法</label>
<label class="layui-form-label">方法 *</label>
<div class="layui-input-block">
<input type="text" id="method" name="method" class="layui-input" value="" placeholder="请输入方法" maxlength="255">
<select name="method" lay-verify="required">
<option value="GET" selected>GET</option>
<option value="POST">POST</option>
<option value="PUT">PUT</option>
<option value="DELETE">DELETE</option>
</select>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">请求示例</label>
<label class="layui-form-label">请求示例 *</label>
<div class="layui-input-block">
<textarea id="requestExampleUrl" name="requestExampleUrl" class="layui-textarea" placeholder="请输入请求示例"></textarea>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label layui-form">请求正文</label>
<label class="layui-form-label">请求正文</label>
<div class="layui-input-block">
<div id="requestExampleBody"></div>
<textarea id="requestExampleBody" name="requestExampleBody"></textarea>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label layui-form">响应成功示例</label>
<label class="layui-form-label">响应成功示例</label>
<div class="layui-input-block">
<div id="responseSuccessExample"></div>
<textarea id="responseSuccessExample" name="responseSuccessExample"></textarea>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label layui-form">响应失败示例</label>
<label class="layui-form-label">响应失败示例</label>
<div class="layui-input-block">
<div id="responseFailExample"></div>
<textarea id="responseFailExample" name="responseFailExample"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否发布</label>
<div class="layui-form-item" pane>
<label class="layui-form-label">是否发布 *</label>
<div class="layui-input-block">
<input type="number" id="isPublish" name="isPublish" class="layui-input" value="0" placeholder="请输入是否发布" lay-verify="required">
<input type="radio" name="isPublish" value="0" title="否">
<input type="radio" name="isPublish" value="1" title="是" checked>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否可认领</label>
<div class="layui-form-item" pane>
<label class="layui-form-label">是否可认领 *</label>
<div class="layui-input-block">
<input type="number" id="isCanClaim" name="isCanClaim" class="layui-input" value="1" placeholder="请输入是否可认领" lay-verify="required">
<input type="radio" name="isCanClaim" value="0" title="否">
<input type="radio" name="isCanClaim" value="1" title="是" checked>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否可用</label>
<div class="layui-form-item" pane>
<label class="layui-form-label">是否可用 *</label>
<div class="layui-input-block">
<input type="number" id="isUsable" name="isUsable" class="layui-input" value="0" placeholder="请输入是否可用" lay-verify="required">
<input type="radio" name="isUsable" value="0" title="否">
<input type="radio" name="isUsable" value="1" title="是" checked>
</div>
</div>
<div class="layui-form-item layui-layout-admin">
@ -106,9 +121,7 @@
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/js/vendor/codemirror/codemirror.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
@ -122,136 +135,70 @@
var laydate = layui.laydate;
var apiId = top.restAjax.params(window.location.href).apiId;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
var codeMirrorConfig = {
lineNumbers: true,
theme: 'dracula',
matchBrackets: true,
indentUnit : 4,
tabSize : 4,
extraKeys: {
'Shift-Tab': function (cm) {
if (cm.somethingSelected()) {
cm.indentSelection('subtract');
} else {
cm.indentLine(cm.getCursor().line, "subtract");
}
return;
},
}
};
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
// 初始化系统ID
function initSystemId(joinValue) {
top.restAjax.get(top.restAjax.path('api/system/list', []), {}, null, function(code, data, args) {
laytpl(document.getElementById('systemIdTemplate').innerHTML).render(data, function(html) {
document.getElementById('systemIdTemplateBox').innerHTML = html;
});
}
form.render('select', 'systemIdTemplateBox');
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
var formSelectData = {};
formSelectData['systemId'] = joinValue;
form.val('dataForm', formSelectData);
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
}
});
}
}
// 初始化请求正文富文本
function initRequestExampleBodyRichText(value) {
var editor = new wangEditor('#requestExampleBody');
editor.customConfig.zIndex = 1000;
editor.customConfig.uploadImgMaxSize = 5 * 1024 * 1024;
editor.customConfig.uploadImgMaxLength = 1;
editor.customConfig.uploadFileName = 'image';
editor.customConfig.uploadImgServer = 'api/file/wangeditorimage';
editor.customConfig.uploadImgHooks = {
fail: function (xhr, editor, result) {
top.dialog.msg('系统错误,图片上传失败');
},
error: function (xhr, editor) {
top.dialog.msg('网络异常');
},
timeout: function (xhr, editor) {
top.dialog.msg('网络请求超时');
}
};
editor.create();
editor.txt.html(value);
wangEditorObj['requestExampleBody'] = editor;
function initRequestExampleBody(value) {
var editor = CodeMirror.fromTextArea(document.getElementById('requestExampleBody'), codeMirrorConfig);
editor.setValue(value);
editor.on('change', function(self, changeValue) {
$('#requestExampleBody').val(self.getValue());
})
}
// 初始化响应成功示例富文本
function initResponseSuccessExampleRichText(value) {
var editor = new wangEditor('#responseSuccessExample');
editor.customConfig.zIndex = 1000;
editor.customConfig.uploadImgMaxSize = 5 * 1024 * 1024;
editor.customConfig.uploadImgMaxLength = 1;
editor.customConfig.uploadFileName = 'image';
editor.customConfig.uploadImgServer = 'api/file/wangeditorimage';
editor.customConfig.uploadImgHooks = {
fail: function (xhr, editor, result) {
top.dialog.msg('系统错误,图片上传失败');
},
error: function (xhr, editor) {
top.dialog.msg('网络异常');
},
timeout: function (xhr, editor) {
top.dialog.msg('网络请求超时');
}
};
editor.create();
editor.txt.html(value);
wangEditorObj['responseSuccessExample'] = editor;
function initResponseSuccessExample(value) {
var editor = CodeMirror.fromTextArea(document.getElementById('responseSuccessExample'), codeMirrorConfig);
editor.setValue(value);
editor.on('change', function(self, changeValue) {
$('#responseSuccessExample').val(self.getValue());
})
}
// 初始化响应失败示例富文本
function initResponseFailExampleRichText(value) {
var editor = new wangEditor('#responseFailExample');
editor.customConfig.zIndex = 1000;
editor.customConfig.uploadImgMaxSize = 5 * 1024 * 1024;
editor.customConfig.uploadImgMaxLength = 1;
editor.customConfig.uploadFileName = 'image';
editor.customConfig.uploadImgServer = 'api/file/wangeditorimage';
editor.customConfig.uploadImgHooks = {
fail: function (xhr, editor, result) {
top.dialog.msg('系统错误,图片上传失败');
},
error: function (xhr, editor) {
top.dialog.msg('网络异常');
},
timeout: function (xhr, editor) {
top.dialog.msg('网络请求超时');
function initResponseFailExample(value) {
var editor = CodeMirror.fromTextArea(document.getElementById('responseFailExample'), codeMirrorConfig);
editor.setValue(value);
editor.on('change', function(self, changeValue) {
$('#responseFailExample').val(self.getValue());
})
}
};
editor.create();
editor.txt.html(value);
wangEditorObj['responseFailExample'] = editor;
}
// 初始化内容
function initData() {
@ -263,9 +210,10 @@
}
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
initRequestExampleBodyRichText(data['requestExampleBody']);
initResponseSuccessExampleRichText(data['responseSuccessExample']);
initResponseFailExampleRichText(data['responseFailExample']);
initSystemId(dataFormData['systemId']);
initRequestExampleBody(data['requestExampleBody']);
initResponseSuccessExample(data['responseSuccessExample']);
initResponseFailExample(data['responseFailExample']);
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
@ -281,9 +229,6 @@
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
formData.field['requestExampleBody'] = wangEditorObj['requestExampleBody'].txt.html();
formData.field['responseSuccessExample'] = wangEditorObj['responseSuccessExample'].txt.html();
formData.field['responseFailExample'] = wangEditorObj['responseFailExample'].txt.html();
top.restAjax.put(top.restAjax.path('api/api/update/{apiId}', [apiId]), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.updateSuccess, {
time: 0,

View File

@ -11,25 +11,11 @@
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-anim layui-anim-fadein">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body">
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
<div class="layui-inline">
<input type="text" id="keywords" class="layui-input search-item" placeholder="输入关键字">
</div>
<div class="layui-inline">
<input type="text" id="startTime" class="layui-input search-item" placeholder="开始时间" readonly>
</div>
<div class="layui-inline">
<input type="text" id="endTime" class="layui-input search-item" placeholder="结束时间" readonly>
</div>
<button type="button" id="search" class="layui-btn layui-btn-sm">
<i class="fa fa-lg fa-search"></i> 搜索
</button>
</div>
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
<!-- 表头按钮组 -->
<script type="text/html" id="headerToolBar">
@ -67,6 +53,10 @@
var resizeTimeout = null;
var tableUrl = 'api/header/listpage';
var params = top.restAjax.params(window.location.href);
var systemId = params.systemId;
var apiId = params.apiId;
// 初始化表格
function initTable() {
table.render({
@ -74,7 +64,7 @@
id: 'dataTable',
url: top.restAjax.path(tableUrl, []),
width: admin.screen() > 1 ? '100%' : '',
height: $win.height() - 90,
height: $win.height() - 20,
limit: 20,
limits: [20, 40, 60, 80, 100, 200],
toolbar: '#headerToolBar',
@ -113,7 +103,7 @@
return rowData;
}
},
{field: 'key', width: 180, title: '键名', align:'center',
{field: 'headerName', width: 180, title: '键名', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
@ -122,7 +112,7 @@
return rowData;
}
},
{field: 'value', width: 180, title: '键值', align:'center',
{field: 'headerValue', width: 180, title: '键值', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
@ -165,7 +155,7 @@
page: {
curr: currentPage
},
height: $win.height() - 90,
height: $win.height() - 20,
});
}
// 初始化日期
@ -228,7 +218,7 @@
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/header/save.html', []),
content: top.restAjax.path('route/header/save.html?systemId={systemId}&apiId={apiId}', [systemId, apiId]),
end: function() {
reloadTable();
}

View File

@ -9,10 +9,9 @@
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
@ -22,34 +21,22 @@
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">系统ID</label>
<div class="layui-input-block">
<input type="text" id="systemId" name="systemId" class="layui-input" value="" placeholder="请输入系统ID" maxlength="36">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">接口ID</label>
<div class="layui-input-block">
<input type="text" id="apiId" name="apiId" class="layui-input" value="" placeholder="请输入接口ID" maxlength="36">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">键名</label>
<div class="layui-input-block">
<input type="text" id="key" name="key" class="layui-input" value="" placeholder="请输入键名" maxlength="255">
<input type="text" id="headerName" name="headerName" class="layui-input" value="" placeholder="请输入键名" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">键值</label>
<div class="layui-input-block">
<input type="text" id="value" name="value" class="layui-input" value="" placeholder="请输入键值" maxlength="500">
<input type="text" id="headerValue" name="headerValue" class="layui-input" value="" placeholder="请输入键值" maxlength="500" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">说明</label>
<div class="layui-input-block">
<input type="text" id="summary" name="summary" class="layui-input" value="" placeholder="请输入说明" maxlength="500">
<input type="text" id="summary" name="summary" class="layui-input" value="" placeholder="请输入说明" maxlength="500" lay-verify="required">
</div>
</div>
<div class="layui-form-item layui-layout-admin">
@ -64,9 +51,6 @@
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
@ -78,65 +62,15 @@
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
var params = top.restAjax.params(window.location.href);
var systemId = params.systemId;
var apiId = params.apiId;
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
}
});
}
}
// 初始化内容
function initData() {
}
@ -147,6 +81,8 @@
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
formData.field.systemId = systemId;
formData.field.apiId = apiId;
top.restAjax.post(top.restAjax.path('api/header/save', []), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
time: 0,

View File

@ -9,10 +9,9 @@
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
@ -22,34 +21,24 @@
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">系统ID</label>
<div class="layui-input-block">
<input type="text" id="systemId" name="systemId" class="layui-input" value="" placeholder="请输入系统ID" maxlength="36">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">接口ID</label>
<div class="layui-input-block">
<input type="text" id="apiId" name="apiId" class="layui-input" value="" placeholder="请输入接口ID" maxlength="36">
</div>
</div>
<input type="hidden" id="systemId" name="systemId">
<input type="hidden" id="apiId" name="apiId">
<div class="layui-form-item">
<label class="layui-form-label">键名</label>
<div class="layui-input-block">
<input type="text" id="key" name="key" class="layui-input" value="" placeholder="请输入键名" maxlength="255">
<input type="text" id="key" name="headerName" class="layui-input" value="" placeholder="请输入键名" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">键值</label>
<div class="layui-input-block">
<input type="text" id="value" name="value" class="layui-input" value="" placeholder="请输入键值" maxlength="500">
<input type="text" id="value" name="headerValue" class="layui-input" value="" placeholder="请输入键值" maxlength="500" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">说明</label>
<div class="layui-input-block">
<input type="text" id="summary" name="summary" class="layui-input" value="" placeholder="请输入说明" maxlength="500">
<input type="text" id="summary" name="summary" class="layui-input" value="" placeholder="请输入说明" maxlength="500" lay-verify="required">
</div>
</div>
<div class="layui-form-item layui-layout-admin">
@ -64,9 +53,6 @@
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
@ -80,65 +66,10 @@
var laydate = layui.laydate;
var headerId = top.restAjax.params(window.location.href).headerId;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
}
});
}
}
// 初始化内容
function initData() {
var loadLayerIndex;

View File

@ -11,25 +11,11 @@
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-anim layui-anim-fadein">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body">
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
<div class="layui-inline">
<input type="text" id="keywords" class="layui-input search-item" placeholder="输入关键字">
</div>
<div class="layui-inline">
<input type="text" id="startTime" class="layui-input search-item" placeholder="开始时间" readonly>
</div>
<div class="layui-inline">
<input type="text" id="endTime" class="layui-input search-item" placeholder="结束时间" readonly>
</div>
<button type="button" id="search" class="layui-btn layui-btn-sm">
<i class="fa fa-lg fa-search"></i> 搜索
</button>
</div>
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
<!-- 表头按钮组 -->
<script type="text/html" id="headerToolBar">
@ -67,6 +53,10 @@
var resizeTimeout = null;
var tableUrl = 'api/requestparams/listpage';
var params = top.restAjax.params(window.location.href);
var systemId = params.systemId;
var apiId = params.apiId;
// 初始化表格
function initTable() {
table.render({
@ -74,7 +64,7 @@
id: 'dataTable',
url: top.restAjax.path(tableUrl, []),
width: admin.screen() > 1 ? '100%' : '',
height: $win.height() - 90,
height: $win.height() - 20,
limit: 20,
limits: [20, 40, 60, 80, 100, 200],
toolbar: '#headerToolBar',
@ -192,7 +182,7 @@
page: {
curr: currentPage
},
height: $win.height() - 90,
height: $win.height() - 20,
});
}
// 初始化日期
@ -255,7 +245,7 @@
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/requestparams/save.html', []),
content: top.restAjax.path('route/requestparams/save.html?systemId={systemId}&apiId={apiId}', [systemId, apiId]),
end: function() {
reloadTable();
}

View File

@ -9,10 +9,9 @@
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
@ -22,46 +21,46 @@
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">系统ID</label>
<div class="layui-input-block">
<input type="text" id="systemId" name="systemId" class="layui-input" value="" placeholder="请输入系统ID" maxlength="36">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">接口ID</label>
<div class="layui-input-block">
<input type="text" id="apiId" name="apiId" class="layui-input" value="" placeholder="请输入接口ID" maxlength="36">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数名</label>
<div class="layui-input-block">
<input type="text" id="paramsName" name="paramsName" class="layui-input" value="" placeholder="请输入参数名" maxlength="255">
<input type="text" id="paramsName" name="paramsName" class="layui-input" value="" placeholder="请输入参数名" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数说明</label>
<div class="layui-input-block">
<input type="text" id="paramsSummary" name="paramsSummary" class="layui-input" value="" placeholder="请输入参数说明" maxlength="255">
<input type="text" id="paramsSummary" name="paramsSummary" class="layui-input" value="" placeholder="请输入参数说明" maxlength="255"lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数类型</label>
<div class="layui-input-block">
<input type="text" id="paramsType" name="paramsType" class="layui-input" value="query" placeholder="请输入参数类型" maxlength="255">
<select name="paramsType" lay-verify="required">
<option value="query" selected>query</option>
<option value="path">path</option>
<option value="body">body</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数数据类型</label>
<label class="layui-form-label">数据类型</label>
<div class="layui-input-block">
<input type="text" id="paramsDataType" name="paramsDataType" class="layui-input" value="String" placeholder="请输入参数数据类型" maxlength="255">
<select name="paramsDataType" lay-verify="required">
<option value="string" selected>string</option>
<option value="number">number</option>
<option value="date">date</option>
<option value="datetime">datetime</option>
<option value="object">object</option>
<option value="array">array</option>
</select>
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item" pane>
<label class="layui-form-label">是否必填</label>
<div class="layui-input-block">
<input type="number" id="paramsIsRequired" name="paramsIsRequired" class="layui-input" value="0" placeholder="请输入是否必填" lay-verify="required">
<input type="radio" name="paramsIsRequired" value="0" title="否" checked>
<input type="radio" name="paramsIsRequired" value="1" title="是">
</div>
</div>
<div class="layui-form-item">
@ -82,9 +81,6 @@
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
@ -96,65 +92,15 @@
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
var params = top.restAjax.params(window.location.href);
var systemId = params.systemId;
var apiId = params.apiId;
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
}
});
}
}
// 初始化内容
function initData() {
}
@ -165,6 +111,8 @@
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
formData.field.systemId = systemId;
formData.field.apiId = apiId;
top.restAjax.post(top.restAjax.path('api/requestparams/save', []), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
time: 0,

View File

@ -9,10 +9,9 @@
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
@ -22,46 +21,48 @@
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">系统ID</label>
<div class="layui-input-block">
<input type="text" id="systemId" name="systemId" class="layui-input" value="" placeholder="请输入系统ID" maxlength="36">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">接口ID</label>
<div class="layui-input-block">
<input type="text" id="apiId" name="apiId" class="layui-input" value="" placeholder="请输入接口ID" maxlength="36">
</div>
</div>
<input type="hidden" id="systemId" name="systemId">
<input type="hidden" id="apiId" name="apiId">
<div class="layui-form-item">
<label class="layui-form-label">参数名</label>
<div class="layui-input-block">
<input type="text" id="paramsName" name="paramsName" class="layui-input" value="" placeholder="请输入参数名" maxlength="255">
<input type="text" id="paramsName" name="paramsName" class="layui-input" value="" placeholder="请输入参数名" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数说明</label>
<div class="layui-input-block">
<input type="text" id="paramsSummary" name="paramsSummary" class="layui-input" value="" placeholder="请输入参数说明" maxlength="255">
<input type="text" id="paramsSummary" name="paramsSummary" class="layui-input" value="" placeholder="请输入参数说明" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数类型</label>
<div class="layui-input-block">
<input type="text" id="paramsType" name="paramsType" class="layui-input" value="query" placeholder="请输入参数类型" maxlength="255">
<select name="paramsType" lay-verify="required">
<option value="query" selected>query</option>
<option value="path">path</option>
<option value="body">body</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数数据类型</label>
<label class="layui-form-label">数据类型</label>
<div class="layui-input-block">
<input type="text" id="paramsDataType" name="paramsDataType" class="layui-input" value="String" placeholder="请输入参数数据类型" maxlength="255">
<select name="paramsDataType" lay-verify="required">
<option value="string" selected>string</option>
<option value="number">number</option>
<option value="date">date</option>
<option value="datetime">datetime</option>
<option value="object">object</option>
<option value="array">array</option>
</select>
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item" pane>
<label class="layui-form-label">是否必填</label>
<div class="layui-input-block">
<input type="number" id="paramsIsRequired" name="paramsIsRequired" class="layui-input" value="0" placeholder="请输入是否必填" lay-verify="required">
<input type="radio" name="paramsIsRequired" value="0" title="否" checked>
<input type="radio" name="paramsIsRequired" value="1" title="是">
</div>
</div>
<div class="layui-form-item">
@ -82,9 +83,6 @@
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
@ -98,65 +96,10 @@
var laydate = layui.laydate;
var requestParamsId = top.restAjax.params(window.location.href).requestParamsId;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
}
});
}
}
// 初始化内容
function initData() {
var loadLayerIndex;

View File

@ -11,25 +11,11 @@
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-anim layui-anim-fadein">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body">
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
<div class="layui-inline">
<input type="text" id="keywords" class="layui-input search-item" placeholder="输入关键字">
</div>
<div class="layui-inline">
<input type="text" id="startTime" class="layui-input search-item" placeholder="开始时间" readonly>
</div>
<div class="layui-inline">
<input type="text" id="endTime" class="layui-input search-item" placeholder="结束时间" readonly>
</div>
<button type="button" id="search" class="layui-btn layui-btn-sm">
<i class="fa fa-lg fa-search"></i> 搜索
</button>
</div>
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
<!-- 表头按钮组 -->
<script type="text/html" id="headerToolBar">
@ -67,6 +53,10 @@
var resizeTimeout = null;
var tableUrl = 'api/responseparams/listpage';
var params = top.restAjax.params(window.location.href);
var systemId = params.systemId;
var apiId = params.apiId;
// 初始化表格
function initTable() {
table.render({
@ -74,7 +64,7 @@
id: 'dataTable',
url: top.restAjax.path(tableUrl, []),
width: admin.screen() > 1 ? '100%' : '',
height: $win.height() - 90,
height: $win.height() - 20,
limit: 20,
limits: [20, 40, 60, 80, 100, 200],
toolbar: '#headerToolBar',
@ -192,7 +182,7 @@
page: {
curr: currentPage
},
height: $win.height() - 90,
height: $win.height() - 20,
});
}
// 初始化日期
@ -255,7 +245,7 @@
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/responseparams/save.html', []),
content: top.restAjax.path('route/responseparams/save.html?systemId={systemId}&apiId={apiId}', [systemId, apiId]),
end: function() {
reloadTable();
}

View File

@ -9,10 +9,9 @@
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
@ -22,46 +21,36 @@
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">系统ID</label>
<div class="layui-input-block">
<input type="text" id="systemId" name="systemId" class="layui-input" value="" placeholder="请输入系统ID" maxlength="36">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">接口ID</label>
<div class="layui-input-block">
<input type="text" id="apiId" name="apiId" class="layui-input" value="" placeholder="请输入接口ID" maxlength="36">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数名</label>
<div class="layui-input-block">
<input type="text" id="paramsName" name="paramsName" class="layui-input" value="" placeholder="请输入参数名" maxlength="255">
<input type="text" id="paramsName" name="paramsName" class="layui-input" value="" placeholder="请输入参数名" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数说明</label>
<div class="layui-input-block">
<input type="text" id="paramsSummary" name="paramsSummary" class="layui-input" value="" placeholder="请输入参数说明" maxlength="255">
<input type="text" id="paramsSummary" name="paramsSummary" class="layui-input" value="" placeholder="请输入参数说明" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">数类型</label>
<label class="layui-form-label">类型</label>
<div class="layui-input-block">
<input type="text" id="paramsType" name="paramsType" class="layui-input" value="query" placeholder="请输入参数类型" maxlength="255">
<select name="paramsDataType" lay-verify="required">
<option value="string" selected>string</option>
<option value="number">number</option>
<option value="date">date</option>
<option value="datetime">datetime</option>
<option value="object">object</option>
<option value="array">array</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数数据类型</label>
<div class="layui-form-item" pane>
<label class="layui-form-label">是否为空</label>
<div class="layui-input-block">
<input type="text" id="paramsDataType" name="paramsDataType" class="layui-input" value="String" placeholder="请输入参数数据类型" maxlength="255">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否必填</label>
<div class="layui-input-block">
<input type="number" id="paramsIsRequired" name="paramsIsRequired" class="layui-input" value="0" placeholder="请输入是否必填" lay-verify="required">
<input type="radio" name="paramsIsRequired" value="0" title="否" checked>
<input type="radio" name="paramsIsRequired" value="1" title="是">
</div>
</div>
<div class="layui-form-item">
@ -82,9 +71,6 @@
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
@ -96,65 +82,15 @@
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
var params = top.restAjax.params(window.location.href);
var systemId = params.systemId;
var apiId = params.apiId;
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
}
});
}
}
// 初始化内容
function initData() {
}
@ -165,6 +101,8 @@
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
formData.field.systemId = systemId;
formData.field.apiId = apiId;
top.restAjax.post(top.restAjax.path('api/responseparams/save', []), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
time: 0,

View File

@ -9,10 +9,9 @@
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
@ -22,46 +21,38 @@
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">系统ID</label>
<div class="layui-input-block">
<input type="text" id="systemId" name="systemId" class="layui-input" value="" placeholder="请输入系统ID" maxlength="36">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">接口ID</label>
<div class="layui-input-block">
<input type="text" id="apiId" name="apiId" class="layui-input" value="" placeholder="请输入接口ID" maxlength="36">
</div>
</div>
<input type="hidden" id="systemId" name="systemId">
<input type="hidden" id="apiId" name="apiId">
<div class="layui-form-item">
<label class="layui-form-label">参数名</label>
<div class="layui-input-block">
<input type="text" id="paramsName" name="paramsName" class="layui-input" value="" placeholder="请输入参数名" maxlength="255">
<input type="text" id="paramsName" name="paramsName" class="layui-input" value="" placeholder="请输入参数名" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数说明</label>
<div class="layui-input-block">
<input type="text" id="paramsSummary" name="paramsSummary" class="layui-input" value="" placeholder="请输入参数说明" maxlength="255">
<input type="text" id="paramsSummary" name="paramsSummary" class="layui-input" value="" placeholder="请输入参数说明" maxlength="255" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">数类型</label>
<label class="layui-form-label">类型</label>
<div class="layui-input-block">
<input type="text" id="paramsType" name="paramsType" class="layui-input" value="query" placeholder="请输入参数类型" maxlength="255">
<select name="paramsDataType" lay-verify="required">
<option value="string" selected>string</option>
<option value="number">number</option>
<option value="date">date</option>
<option value="datetime">datetime</option>
<option value="object">object</option>
<option value="array">array</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">参数数据类型</label>
<div class="layui-form-item" pane>
<label class="layui-form-label">是否为空</label>
<div class="layui-input-block">
<input type="text" id="paramsDataType" name="paramsDataType" class="layui-input" value="String" placeholder="请输入参数数据类型" maxlength="255">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否必填</label>
<div class="layui-input-block">
<input type="number" id="paramsIsRequired" name="paramsIsRequired" class="layui-input" value="0" placeholder="请输入是否必填" lay-verify="required">
<input type="radio" name="paramsIsRequired" value="0" title="否" checked>
<input type="radio" name="paramsIsRequired" value="1" title="是">
</div>
</div>
<div class="layui-form-item">
@ -82,9 +73,6 @@
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
@ -98,65 +86,10 @@
var laydate = layui.laydate;
var responseParamsId = top.restAjax.params(window.location.href).responseParamsId;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
}
});
}
}
// 初始化内容
function initData() {
var loadLayerIndex;

View File

@ -86,15 +86,6 @@
[
{type:'checkbox', fixed: 'left'},
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
{field: 'systemId', width: 180, title: '', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'name', width: 180, title: '名称', align:'center',
templet: function(row) {
var rowData = row[this.field];
@ -119,7 +110,15 @@
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
var downloadFile = '';
var datas = rowData.split(',');
for(var i = 0, item = datas[i]; item = datas[i++];) {
if(downloadFile.length > 0) {
downloadFile += ' | ';
}
downloadFile += '<a href="route/file/download/false/'+ item +'" target="_blank">点击下载</a>'
}
return downloadFile;
}
},
{field: 'gatewayContext', width: 180, title: '网关上下文', align:'center',
@ -131,7 +130,7 @@
return rowData;
}
},
{field: 'schema', width: 180, title: '请求方式', align:'center',
{field: 'requestSchema', width: 180, title: '请求方式', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
@ -203,6 +202,42 @@
return rowData;
}
},
{field: 'creator', width: 180, title: '创建人', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'gmtModified', width: 180, title: '修改时间', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'modifier', width: 180, title: '修改人', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'isDelete', width: 180, title: '是否删除', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
]
],
page: true,

View File

@ -10,6 +10,11 @@
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
<style>
.layui-form-label {width: 120px !important;}
.layui-form-pane .layui-form-text .layui-form-label {width: 100% !important;}
.layui-form-pane .layui-input-block {margin-left: 120px;}
</style>
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
@ -23,7 +28,7 @@
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<label class="layui-form-label">名称 *</label>
<div class="layui-input-block">
<input type="text" id="name" name="name" class="layui-input" value="" placeholder="请输入名称" maxlength="255">
</div>
@ -34,35 +39,66 @@
<input type="text" id="summary" name="summary" class="layui-input" value="" placeholder="请输入描述" maxlength="500">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">logo</label>
<div class="layui-input-block">
<input type="text" id="logo" name="logo" class="layui-input" value="" placeholder="请输入logo" maxlength="255">
<input type="hidden" id="logo" name="logo">
<div class="layui-btn-container" id="logoFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="logoFileDownload" type="text/html">
{{# var fileName = 'logo'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="route/file/download/false/{{item.fileId}}" align="加载失败">
</span>
<a class="layui-btn layui-btn-xs layui-btn-danger text-danger remove-image" href="javascript:void(0);" lay-form-button data-id="{{item.fileId}}" data-name="{{fileName}}" lay-filter="logoRemoveFile">
<i class="fa fa-trash-o"></i>
</a>
</div>
{{# } }}
{{# } }}
{{# if(d[fileName].length < 9) { }}
<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">
<a href="javascript:void(0);" lay-form-button data-explain="logo" data-name="logo" lay-filter="logoUploadFile">
<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>
</a>
</div>
{{# } }}
</script>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">网关上下文</label>
<label class="layui-form-label">网关上下文 *</label>
<div class="layui-input-block">
<input type="text" id="gatewayContext" name="gatewayContext" class="layui-input" value="" placeholder="请输入网关上下文" maxlength="255">
<input type="text" id="gatewayContext" name="gatewayContext" class="layui-input" value="" placeholder="请输入网关上下文,如 /system" maxlength="255">
</div>
<div class="layui-form-mid layui-word-aux">这里的上下文是指接口在访问网关时请求的根路径,不同的系统路径不能重复,不能以根路径开头</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">请求方式</label>
<label class="layui-form-label">请求方式 *</label>
<div class="layui-input-block">
<input type="text" id="schema" name="schema" class="layui-input" value="http" placeholder="请输入请求方式" maxlength="255">
<select name="requestSchema" lay-verify="required">
<option value="http" selected>http</option>
<option value="https">https</option>
</select>
</div>
<div class="layui-form-mid layui-word-aux">这里的请求方式指的是网关请求后端系统时所用到的方式。只支持 http 和 https </div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">系统地址</label>
<label class="layui-form-label">系统地址 *</label>
<div class="layui-input-block">
<input type="text" id="ipAddress" name="ipAddress" class="layui-input" value="" placeholder="请输入系统地址" maxlength="255">
<input type="text" id="ipAddress" name="ipAddress" class="layui-input" value="" placeholder="请输入系统地址,如 192.168.1.100 或 www.demo.com" maxlength="255">
</div>
<div class="layui-form-mid layui-word-aux">只能是 ip 或 域名,不包含 请求方式 和 上下文</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">系统上下文</label>
<label class="layui-form-label">系统上下文 *</label>
<div class="layui-input-block">
<input type="text" id="systemContext" name="systemContext" class="layui-input" value="" placeholder="请输入系统上下文" maxlength="255">
<input type="text" id="systemContext" name="systemContext" class="layui-input" value="" placeholder="请输入系统上下文,如 /system" maxlength="255">
</div>
<div class="layui-form-mid layui-word-aux">这里的上下文是指接口在访问网关时请求的根路径,统一地址,不同的系统路径不能重复,最好与 网关上下文 保持一致</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
@ -76,8 +112,6 @@
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
@ -90,8 +124,6 @@
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
function closeBox() {
@ -133,24 +165,62 @@
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
// 初始化logo图片上传
function initLogoUploadFile() {
var files = $('#logo').val();
initFileList('logo', files, function(fileName) {
var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false});
viewerObj[fileName] = viewer;
});
form.on('button(logoUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'image',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
viewerObj[fileName].update();
});
}
}
});
});
form.on('button(logoRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
viewerObj[fileName].update();
});
});
}
// 初始化内容
function initData() {
initLogoUploadFile();
}
initData();

View File

@ -10,6 +10,11 @@
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
<style>
.layui-form-label {width: 120px !important;}
.layui-form-pane .layui-form-text .layui-form-label {width: 100% !important;}
.layui-form-pane .layui-input-block {margin-left: 120px;}
</style>
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
@ -23,7 +28,7 @@
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<label class="layui-form-label">名称 *</label>
<div class="layui-input-block">
<input type="text" id="name" name="name" class="layui-input" value="" placeholder="请输入名称" maxlength="255">
</div>
@ -34,35 +39,66 @@
<input type="text" id="summary" name="summary" class="layui-input" value="" placeholder="请输入描述" maxlength="500">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">logo</label>
<div class="layui-input-block">
<input type="text" id="logo" name="logo" class="layui-input" value="" placeholder="请输入logo" maxlength="255">
<input type="hidden" id="logo" name="logo">
<div class="layui-btn-container" id="logoFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="logoFileDownload" type="text/html">
{{# var fileName = 'logo'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="route/file/download/false/{{item.fileId}}" align="加载失败">
</span>
<a class="layui-btn layui-btn-xs layui-btn-danger text-danger remove-image" href="javascript:void(0);" lay-form-button data-id="{{item.fileId}}" data-name="{{fileName}}" lay-filter="logoRemoveFile">
<i class="fa fa-trash-o"></i>
</a>
</div>
{{# } }}
{{# } }}
{{# if(d[fileName].length < 9) { }}
<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">
<a href="javascript:void(0);" lay-form-button data-explain="logo" data-name="logo" lay-filter="logoUploadFile">
<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>
</a>
</div>
{{# } }}
</script>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">网关上下文</label>
<label class="layui-form-label">网关上下文 *</label>
<div class="layui-input-block">
<input type="text" id="gatewayContext" name="gatewayContext" class="layui-input" value="" placeholder="请输入网关上下文" maxlength="255">
<input type="text" id="gatewayContext" name="gatewayContext" class="layui-input" value="" placeholder="请输入网关上下文,如 /system" maxlength="255">
</div>
<div class="layui-form-mid layui-word-aux">这里的上下文是指接口在访问网关时请求的根路径,不同的系统路径不能重复,不能以根路径开头</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">请求方式</label>
<label class="layui-form-label">请求方式 *</label>
<div class="layui-input-block">
<input type="text" id="schema" name="schema" class="layui-input" value="http" placeholder="请输入请求方式" maxlength="255">
<select name="requestSchema" lay-verify="required">
<option value="http" selected>http</option>
<option value="https">https</option>
</select>
</div>
<div class="layui-form-mid layui-word-aux">这里的请求方式指的是网关请求后端系统时所用到的方式。只支持 http 和 https </div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">系统地址</label>
<label class="layui-form-label">系统地址 *</label>
<div class="layui-input-block">
<input type="text" id="ipAddress" name="ipAddress" class="layui-input" value="" placeholder="请输入系统地址" maxlength="255">
<input type="text" id="ipAddress" name="ipAddress" class="layui-input" value="" placeholder="请输入系统地址,如 192.168.1.100 或 www.demo.com" maxlength="255">
</div>
<div class="layui-form-mid layui-word-aux">只能是 ip 或 域名,不包含 请求方式 和 上下文</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">系统上下文</label>
<label class="layui-form-label">系统上下文 *</label>
<div class="layui-input-block">
<input type="text" id="systemContext" name="systemContext" class="layui-input" value="" placeholder="请输入系统上下文" maxlength="255">
<input type="text" id="systemContext" name="systemContext" class="layui-input" value="" placeholder="请输入系统上下文,如 /system" maxlength="255">
</div>
<div class="layui-form-mid layui-word-aux">这里的上下文是指接口在访问网关时请求的根路径,统一地址,不同的系统路径不能重复,最好与 网关上下文 保持一致</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
@ -76,8 +112,6 @@
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
@ -91,9 +125,6 @@
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var systemId = top.restAjax.params(window.location.href).systemId;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
function closeBox() {
@ -135,20 +166,57 @@
});
}
// 初始化视频
function initVideo(fileName, data) {
for(var i = 0, item; item = data[i++];) {
var player = new ckplayer({
container: '#'+ fileName + i,
variable: 'player',
flashplayer: false,
video: {
file: 'route/file/download/true/'+ item.fileId,
type: 'video/mp4'
// 初始化logo图片上传
function initLogoUploadFile() {
var files = $('#logo').val();
initFileList('logo', files, function(fileName) {
var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false});
viewerObj[fileName] = viewer;
});
form.on('button(logoUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'image',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
viewerObj[fileName].update();
});
}
}
});
});
form.on('button(logoRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
viewerObj[fileName].update();
});
});
}
// 初始化内容
@ -161,6 +229,7 @@
}
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
initLogoUploadFile();
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {