form
This commit is contained in:
parent
c0058361dd
commit
32023a91fb
|
|
@ -0,0 +1,62 @@
|
||||||
|
package goutil
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
FormTypeInput = "input" //文本输入框
|
||||||
|
FormTypeText = "text" //多行文本
|
||||||
|
FormTypeRadio = "radio" //单选框
|
||||||
|
FormTypeCheckbox = "checkbox" //多选框
|
||||||
|
FormTypeSwitch = "switch" //开关
|
||||||
|
FormTypeJson = "json" //JSON输入框
|
||||||
|
FormTypeDatetime = "datetime" //时间选择框
|
||||||
|
FormTypeDate = "date" //日期选择框
|
||||||
|
FormTypeMonth = "month" //阅读选择框
|
||||||
|
)
|
||||||
|
|
||||||
|
type FormOption struct {
|
||||||
|
Name string `json:"name,omitempty"` //选项名称
|
||||||
|
Value string `json:"value,omitempty"` //选项值
|
||||||
|
}
|
||||||
|
|
||||||
|
type Form struct {
|
||||||
|
Type string `json:"type,omitempty" ` //表单类型
|
||||||
|
Name string `json:"name,omitempty"` //表单名称
|
||||||
|
Key string `json:"key,omitempty"` //表单KEY
|
||||||
|
Value any `json:"value,omitempty"` //表单值
|
||||||
|
Default any `json:"default,omitempty"` //默认值
|
||||||
|
Disable bool `json:"disable,omitempty"` //是否禁用
|
||||||
|
Tips string `json:"tips,omitempty"` //表单提示
|
||||||
|
Option []*FormOption `json:"option,omitempty"` //表单选项,radio和checkbox需要
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewForms(tplConfig, saveConfig string) ([]*Form, error) {
|
||||||
|
var forms []*Form
|
||||||
|
err := json.Unmarshal([]byte(tplConfig), &forms)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var cfg map[string]interface{}
|
||||||
|
if strings.TrimSpace(saveConfig) != "" {
|
||||||
|
err = json.Unmarshal([]byte(saveConfig), &cfg)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if cfg == nil {
|
||||||
|
cfg = make(map[string]interface{})
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, form := range forms {
|
||||||
|
if _, ok := cfg[form.Key]; ok {
|
||||||
|
form.Value = cfg[form.Key]
|
||||||
|
} else {
|
||||||
|
form.Value = form.Default
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return forms, err
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue