[manager,web-app] 支持监控参数的输入框提示信息,默认值填充

This commit is contained in:
tomsun28
2021-12-04 09:00:11 +08:00
parent 5d979b74b7
commit b052c053da
8 changed files with 82 additions and 14 deletions

View File

@@ -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<Map<String,String>, String> {
@Override
public String convertToDatabaseColumn(Map<String,String> attribute) {
return GsonUtil.toJson(attribute);
}
@Override
public Map<String,String> convertToEntityAttribute(String dbData) {
return GsonUtil.fromJson(dbData, Map.class);
}
}

View File

@@ -8,12 +8,14 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Convert;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType; import javax.persistence.GenerationType;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Table; import javax.persistence.Table;
import java.time.LocalDateTime; 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_ONLY;
import static io.swagger.annotations.ApiModelProperty.AccessMode.READ_WRITE; 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) @ApiModelProperty(value = "是否是必输项 true-必填 false-可选", example = "true", accessMode = READ_WRITE, position = 5)
private boolean required = false; 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 * 当type为number时,用range表示范围 eg: 0-233
*/ */
@@ -83,12 +97,18 @@ public class ParamDefine {
private Short limit; private Short limit;
/** /**
* 当type为radio单选框,checkbox复选框时,option表示可选项值列表 * 当type为radio单选框,checkbox复选框时,options表示可选项值列表
* eg: param3,param4,param5 * eg: {
* "key1":"value1",
* "key2":"value2"
* }
* key-值显示标签
* value-真正值
*/ */
@ApiModelProperty(value = "当type为radio单选框,checkbox复选框时,option表示可选项值列表", example = "10,20,30", accessMode = READ_WRITE, position = 8) @ApiModelProperty(value = "当type为radio单选框,checkbox复选框时,option表示可选项值列表", example = "{key1,value1}", accessMode = READ_WRITE, position = 8)
@Column(name = "param_option") @Column(name = "param_options")
private String option; @Convert(converter = JsonMapAttributeConverter.class)
private Map<String,String> options;
/** /**
* 此条记录创建者 * 此条记录创建者

View File

@@ -16,6 +16,10 @@ param:
# 当type为number时,用range表示范围 # 当type为number时,用range表示范围
range: '[0,65535]' range: '[0,65535]'
required: true required: true
# 端口默认值
defaultValue: 80
# 参数输入框提示信息
placeholder: '请输入端口'
- field: username - field: username
name: 用户名 name: 用户名
type: text type: text

View File

@@ -16,12 +16,14 @@ param:
# 当type为number时,用range表示范围 # 当type为number时,用range表示范围
range: '[0,65535]' range: '[0,65535]'
required: true required: true
defaultValue: 80
- field: uri - field: uri
name: URI路径 name: URI路径
type: text type: text
# 当type为text时,用limit表示字符串限制大小 # 当type为text时,用limit表示字符串限制大小
limit: 100 limit: 100
required: true required: true
placeholder: 'eg:/index.html'
- field: method - field: method
name: 请求方式 name: 请求方式
type: text type: text

View File

@@ -3,7 +3,9 @@ export class ParamDefine {
field!: string; field!: string;
type!: string; type!: string;
required: boolean | undefined; required: boolean | undefined;
defaultValue: string | undefined;
placeholder!: string;
range: string | undefined; range: string | undefined;
limit: number | undefined; limit: number | undefined;
option: string | undefined; options: string | undefined;
} }

View File

@@ -24,7 +24,7 @@
<nz-form-item> <nz-form-item>
<nz-form-label [nzSpan]="7" nzFor= 'host' nzRequired="true">监控Host</nz-form-label> <nz-form-label [nzSpan]="7" nzFor= 'host' nzRequired="true">监控Host</nz-form-label>
<nz-form-control [nzSpan]="10"> <nz-form-control [nzSpan]="10">
<input [(ngModel)]="monitor.host" nz-input name="host" type="text" id="host"> <input [(ngModel)]="monitor.host" nz-input name="host" type="text" id="host" placeholder="请输入域名或IP">
</nz-form-control> </nz-form-control>
</nz-form-item > </nz-form-item >
<nz-form-item> <nz-form-item>
@@ -43,7 +43,9 @@
[nzFor]= "paramDefine.field">{{paramDefine.name}} [nzFor]= "paramDefine.field">{{paramDefine.name}}
</nz-form-label> </nz-form-label>
<nz-form-control *ngIf="paramDefine.field !== 'host' && paramDefine.type ==='text'" nzSpan="10"> <nz-form-control *ngIf="paramDefine.field !== 'host' && paramDefine.type ==='text'" nzSpan="10">
<input nz-input [(ngModel)]="params[i].value" [name]="paramDefine.field" [type]="paramDefine.type" [id]="paramDefine.field"> <input nz-input [(ngModel)]="params[i].value" [name]="paramDefine.field"
[type]="paramDefine.type" [id]="paramDefine.field"
[placeholder]="paramDefine.placeholder? paramDefine.placeholder : ''">
</nz-form-control> </nz-form-control>
<nz-form-label *ngIf="paramDefine.type === 'password'" <nz-form-label *ngIf="paramDefine.type === 'password'"
@@ -60,6 +62,7 @@
[(ngModel)]="params[i].value" [(ngModel)]="params[i].value"
[id]="paramDefine.field" [id]="paramDefine.field"
[name]="paramDefine.field" [name]="paramDefine.field"
[placeholder]="paramDefine.placeholder? paramDefine.placeholder : ''"
/> />
</nz-input-group> </nz-input-group>
<ng-template #suffixTemplate> <ng-template #suffixTemplate>
@@ -79,7 +82,7 @@
[nzMin]="-1000" [nzMin]="-1000"
[nzMax]="65535" [nzMax]="65535"
[nzStep]="1" [nzStep]="1"
[nzPlaceHolder]="paramDefine.name" [nzPlaceHolder]="paramDefine.placeholder? paramDefine.placeholder : ''"
[name]="paramDefine.field" [id]="paramDefine.field" [name]="paramDefine.field" [id]="paramDefine.field"
></nz-input-number> ></nz-input-number>
</nz-form-control> </nz-form-control>
@@ -101,7 +104,7 @@
<nz-form-label nzSpan="7" nzFor= "intervals">采集间隔</nz-form-label> <nz-form-label nzSpan="7" nzFor= "intervals">采集间隔</nz-form-label>
<nz-form-control nzSpan="10"> <nz-form-control nzSpan="10">
<nz-input-number [(ngModel)]="monitor.intervals" [nzMin]="10" [nzMax]="10000" [nzStep]="10" <nz-input-number [(ngModel)]="monitor.intervals" [nzMin]="10" [nzMax]="10000" [nzStep]="10"
name="intervals" id="intervals"> name="intervals" id="intervals" nzPlaceHolder="监控周期性采集间隔时间,单位秒">
</nz-input-number> </nz-input-number>
</nz-form-control> </nz-form-control>
</nz-form-item > </nz-form-item >

View File

@@ -24,7 +24,7 @@
<nz-form-item> <nz-form-item>
<nz-form-label [nzSpan]="7" nzFor= 'host' nzRequired="true">监控Host</nz-form-label> <nz-form-label [nzSpan]="7" nzFor= 'host' nzRequired="true">监控Host</nz-form-label>
<nz-form-control [nzSpan]="10"> <nz-form-control [nzSpan]="10">
<input [(ngModel)]="monitor.host" nz-input name="host" type="text" id="host"> <input [(ngModel)]="monitor.host" nz-input name="host" type="text" id="host" placeholder="请输入域名或IP">
</nz-form-control> </nz-form-control>
</nz-form-item > </nz-form-item >
<nz-form-item> <nz-form-item>
@@ -43,7 +43,9 @@
[nzFor]= "paramDefine.field">{{paramDefine.name}} [nzFor]= "paramDefine.field">{{paramDefine.name}}
</nz-form-label> </nz-form-label>
<nz-form-control *ngIf="paramDefine.field !== 'host' && paramDefine.type ==='text'" nzSpan="10"> <nz-form-control *ngIf="paramDefine.field !== 'host' && paramDefine.type ==='text'" nzSpan="10">
<input nz-input [(ngModel)]="params[i].value" [name]="paramDefine.field" [type]="paramDefine.type" [id]="paramDefine.field"> <input nz-input [(ngModel)]="params[i].value" [name]="paramDefine.field"
[type]="paramDefine.type" [id]="paramDefine.field"
[placeholder]="paramDefine.placeholder? paramDefine.placeholder : ''">
</nz-form-control> </nz-form-control>
<nz-form-label *ngIf="paramDefine.type === 'password'" <nz-form-label *ngIf="paramDefine.type === 'password'"
@@ -60,6 +62,7 @@
[(ngModel)]="params[i].value" [(ngModel)]="params[i].value"
[id]="paramDefine.field" [id]="paramDefine.field"
[name]="paramDefine.field" [name]="paramDefine.field"
[placeholder]="paramDefine.placeholder? paramDefine.placeholder : ''"
/> />
</nz-input-group> </nz-input-group>
<ng-template #suffixTemplate> <ng-template #suffixTemplate>
@@ -79,7 +82,7 @@
[nzMin]="-1000" [nzMin]="-1000"
[nzMax]="65535" [nzMax]="65535"
[nzStep]="1" [nzStep]="1"
[nzPlaceHolder]="paramDefine.name" [nzPlaceHolder]="paramDefine.placeholder? paramDefine.placeholder : ''"
[name]="paramDefine.field" [id]="paramDefine.field" [name]="paramDefine.field" [id]="paramDefine.field"
></nz-input-number> ></nz-input-number>
</nz-form-control> </nz-form-control>
@@ -101,7 +104,7 @@
<nz-form-label nzSpan="7" nzFor= "intervals">采集间隔</nz-form-label> <nz-form-label nzSpan="7" nzFor= "intervals">采集间隔</nz-form-label>
<nz-form-control nzSpan="10"> <nz-form-control nzSpan="10">
<nz-input-number [(ngModel)]="monitor.intervals" [nzMin]="10" [nzMax]="10000" [nzStep]="10" <nz-input-number [(ngModel)]="monitor.intervals" [nzMin]="10" [nzMax]="10000" [nzStep]="10"
name="intervals" id="intervals"> name="intervals" id="intervals" nzPlaceHolder="监控周期性采集间隔时间,单位秒">
</nz-input-number> </nz-input-number>
</nz-form-control> </nz-form-control>
</nz-form-item > </nz-form-item >

View File

@@ -55,6 +55,15 @@ export class MonitorNewComponent implements OnInit {
if (define.type === "boolean") { if (define.type === "boolean") {
param.value = false; 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); this.params.push(param);
}) })
} else { } else {