diff --git a/manager/src/main/java/com/usthe/manager/pojo/entity/JsonMapAttributeConverter.java b/manager/src/main/java/com/usthe/manager/pojo/entity/JsonMapAttributeConverter.java new file mode 100644 index 0000000..b90fa3d --- /dev/null +++ b/manager/src/main/java/com/usthe/manager/pojo/entity/JsonMapAttributeConverter.java @@ -0,0 +1,25 @@ +package com.usthe.manager.pojo.entity; + +import com.usthe.common.util.GsonUtil; + +import javax.persistence.AttributeConverter; +import java.util.Map; + +/** + * json 互转map对象字段为数据String字段 + * @author tom + * @date 2021/12/4 07:54 + */ +public class JsonMapAttributeConverter implements AttributeConverter, String> { + + @Override + public String convertToDatabaseColumn(Map attribute) { + return GsonUtil.toJson(attribute); + + } + + @Override + public Map convertToEntityAttribute(String dbData) { + return GsonUtil.fromJson(dbData, Map.class); + } +} diff --git a/manager/src/main/java/com/usthe/manager/pojo/entity/ParamDefine.java b/manager/src/main/java/com/usthe/manager/pojo/entity/ParamDefine.java index e8aa94f..b98bd1c 100644 --- a/manager/src/main/java/com/usthe/manager/pojo/entity/ParamDefine.java +++ b/manager/src/main/java/com/usthe/manager/pojo/entity/ParamDefine.java @@ -8,12 +8,14 @@ import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.Column; +import javax.persistence.Convert; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import java.time.LocalDateTime; +import java.util.Map; import static io.swagger.annotations.ApiModelProperty.AccessMode.READ_ONLY; import static io.swagger.annotations.ApiModelProperty.AccessMode.READ_WRITE; @@ -68,6 +70,18 @@ public class ParamDefine { @ApiModelProperty(value = "是否是必输项 true-必填 false-可选", example = "true", accessMode = READ_WRITE, position = 5) private boolean required = false; + /** + * 参数默认值 + */ + @ApiModelProperty(value = "参数默认值", example = "12", accessMode = READ_WRITE, position = 6) + private String defaultValue; + + /** + * 参数输入框提示信息 + */ + @ApiModelProperty(value = "参数输入框提示信息", example = "请输入密码", accessMode = READ_WRITE, position = 7) + private String placeholder; + /** * 当type为number时,用range表示范围 eg: 0-233 */ @@ -83,12 +97,18 @@ public class ParamDefine { private Short limit; /** - * 当type为radio单选框,checkbox复选框时,option表示可选项值列表 - * eg: param3,param4,param5 + * 当type为radio单选框,checkbox复选框时,options表示可选项值列表 + * eg: { + * "key1":"value1", + * "key2":"value2" + * } + * key-值显示标签 + * value-真正值 */ - @ApiModelProperty(value = "当type为radio单选框,checkbox复选框时,option表示可选项值列表", example = "10,20,30", accessMode = READ_WRITE, position = 8) - @Column(name = "param_option") - private String option; + @ApiModelProperty(value = "当type为radio单选框,checkbox复选框时,option表示可选项值列表", example = "{key1,value1}", accessMode = READ_WRITE, position = 8) + @Column(name = "param_options") + @Convert(converter = JsonMapAttributeConverter.class) + private Map options; /** * 此条记录创建者 diff --git a/manager/src/main/resources/define/param/A-example.yml b/manager/src/main/resources/define/param/A-example.yml index 501ea7e..fb05db4 100644 --- a/manager/src/main/resources/define/param/A-example.yml +++ b/manager/src/main/resources/define/param/A-example.yml @@ -16,6 +16,10 @@ param: # 当type为number时,用range表示范围 range: '[0,65535]' required: true + # 端口默认值 + defaultValue: 80 + # 参数输入框提示信息 + placeholder: '请输入端口' - field: username name: 用户名 type: text diff --git a/manager/src/main/resources/define/param/website.yml b/manager/src/main/resources/define/param/website.yml index 649dbe2..bd2bf34 100644 --- a/manager/src/main/resources/define/param/website.yml +++ b/manager/src/main/resources/define/param/website.yml @@ -16,12 +16,14 @@ param: # 当type为number时,用range表示范围 range: '[0,65535]' required: true + defaultValue: 80 - field: uri name: URI路径 type: text # 当type为text时,用limit表示字符串限制大小 limit: 100 required: true + placeholder: 'eg:/index.html' - field: method name: 请求方式 type: text diff --git a/web-app/src/app/pojo/ParamDefine.ts b/web-app/src/app/pojo/ParamDefine.ts index fa89cb2..43405b4 100644 --- a/web-app/src/app/pojo/ParamDefine.ts +++ b/web-app/src/app/pojo/ParamDefine.ts @@ -3,7 +3,9 @@ export class ParamDefine { field!: string; type!: string; required: boolean | undefined; + defaultValue: string | undefined; + placeholder!: string; range: string | undefined; limit: number | undefined; - option: string | undefined; + options: string | undefined; } diff --git a/web-app/src/app/routes/monitor/monitor-edit/monitor-edit.component.html b/web-app/src/app/routes/monitor/monitor-edit/monitor-edit.component.html index 607fd97..e3278be 100644 --- a/web-app/src/app/routes/monitor/monitor-edit/monitor-edit.component.html +++ b/web-app/src/app/routes/monitor/monitor-edit/monitor-edit.component.html @@ -24,7 +24,7 @@ 监控Host - + @@ -43,7 +43,9 @@ [nzFor]= "paramDefine.field">{{paramDefine.name}} - + @@ -79,7 +82,7 @@ [nzMin]="-1000" [nzMax]="65535" [nzStep]="1" - [nzPlaceHolder]="paramDefine.name" + [nzPlaceHolder]="paramDefine.placeholder? paramDefine.placeholder : ''" [name]="paramDefine.field" [id]="paramDefine.field" > @@ -101,7 +104,7 @@ 采集间隔 + name="intervals" id="intervals" nzPlaceHolder="监控周期性采集间隔时间,单位秒"> diff --git a/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.html b/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.html index ab62c6c..5fb0b83 100644 --- a/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.html +++ b/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.html @@ -24,7 +24,7 @@ 监控Host - + @@ -43,7 +43,9 @@ [nzFor]= "paramDefine.field">{{paramDefine.name}} - + @@ -79,7 +82,7 @@ [nzMin]="-1000" [nzMax]="65535" [nzStep]="1" - [nzPlaceHolder]="paramDefine.name" + [nzPlaceHolder]="paramDefine.placeholder? paramDefine.placeholder : ''" [name]="paramDefine.field" [id]="paramDefine.field" > @@ -101,7 +104,7 @@ 采集间隔 + name="intervals" id="intervals" nzPlaceHolder="监控周期性采集间隔时间,单位秒"> diff --git a/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.ts b/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.ts index 95c805c..fd73e61 100644 --- a/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.ts +++ b/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.ts @@ -55,6 +55,15 @@ export class MonitorNewComponent implements OnInit { if (define.type === "boolean") { param.value = false; } + if (define.defaultValue != undefined) { + if (define.type === "number") { + param.value = Number(define.defaultValue); + } else if (define.type === "boolean") { + param.value = define.defaultValue.toLowerCase() == 'true' + } else { + param.value = define.defaultValue; + } + } this.params.push(param); }) } else {