提交 3c66d54b 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

convert refer to nested fields

上级 4be84104
package gen
import (
"fmt"
"github.com/easysoft/zendata/src/model"
constant "github.com/easysoft/zendata/src/utils/const"
stringUtils "github.com/easysoft/zendata/src/utils/string"
......@@ -189,13 +188,21 @@ func convertFieldReferToNestedIfNeeded(field *model.Field) {
// ${user_name}_${numb}@${domain}
regx := regexp.MustCompile(`\$\{([a-zA-z0-9_]+)\}`)
arrOfName := regx.FindAllStringSubmatch(field.Range, -1)
fmt.Println(arrOfName)
if len(arrOfName) > 0 {
for _, a := range arrOfName {
nameWapper := a[0]
strLeft := field.Range
for index, a := range arrOfName {
found := a[0]
name := a[1]
arr := strings.Split(strLeft, found)
// add string constant
if arr[0] != "" {
strChild := model.Field{Name: "child-" + strconv.Itoa(index), Type: "list", Range: arr[0]}
field.Fields = append(field.Fields, strChild)
}
child := model.Field{}
if constant.LoadedFields[name].Name != "" {
child = constant.LoadedFields[name]
......@@ -205,6 +212,15 @@ func convertFieldReferToNestedIfNeeded(field *model.Field) {
}
field.Fields = append(field.Fields, child)
arr = arr[1:]
strLeft = strings.Join(arr, "")
if index == len(arrOfName) - 1 && strLeft != "" {
// add string constant
strChild := model.Field{Name: "child-" + strconv.Itoa(index), Type: "list", Range: strLeft}
field.Fields = append(field.Fields, strChild)
}
}
}
}
\ No newline at end of file
......@@ -111,16 +111,20 @@ func GenerateFieldValuesFromText(field *model.Field, fieldValue *model.FieldValu
relaPath := constant.ResDir + file
content, err := ioutil.ReadFile(relaPath)
if err != nil {
logUtils.Screen("fail to read " + relaPath)
logUtils.Screen("fail to read " + relaPath + ", try to use global config")
relaPath = "conf" + string(os.PathSeparator) + file
content, err = ioutil.ReadFile(relaPath)
if err != nil {
logUtils.Screen("fail to read " + relaPath)
logUtils.Screen("fail to read " + relaPath + ", will return")
fieldValue.Values = append(fieldValue.Values, "N/A")
return
} else {
logUtils.Screen("success to read " + relaPath)
}
} else {
logUtils.Screen("success to read " + relaPath)
}
str := string(content)
str = strings.Replace(str, "\\r\\n", "\\n", -1)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册