diff --git a/demo/default.yaml b/demo/default.yaml index a63b320f911eba64c2d1994f75fd5964f0c30d69..221e62be9755b99de8de4a3ab7d4f4bc15d8cda2 100644 --- a/demo/default.yaml +++ b/demo/default.yaml @@ -8,12 +8,12 @@ fields: note: 测试自定义字段 from: numb.yaml use: small,large - loop: 2 - field: field2 - note: 测试系统字段 + note: 测试系统字段 in default from: system.ip.v1.yaml use: privateC,privateB + loop: 2 - field: field3 note: 测试Excel数据 diff --git a/demo/output.txt b/demo/output.txt index 26142eef03e5f42a46ad03fda8065da32ffadcec..4f1559a296200ab110b9bfa8ed13b08b3d6c0dd4 100644 --- a/demo/output.txt +++ b/demo/output.txt @@ -1,4 +1,4 @@ -192.168.0.1 -192.168.1.2 -192.168.2.3 -192.168.3.4 +192.168.0.1192.168.1.2 +192.168.2.3192.168.3.4 +192.168.4.5172.16.0.0 +172.17.1.1 172.18.2.2 diff --git a/demo/test.yaml b/demo/test.yaml index 244e508110390493dcb7efdb0159a604d8eab02a..f13f9d9545e5d7de5fea17ef2e66327fee3826b9 100644 --- a/demo/test.yaml +++ b/demo/test.yaml @@ -16,7 +16,7 @@ fields: loop: 3 - field: field2 - note: 测试系统字段 + note: 测试系统字段 in yaml from: system.ip.v1.yaml use: privateC,privateB loop: 3 diff --git a/src/gen/definition.go b/src/gen/definition.go index 7d2e7e62f5c3fb612f23974c9d492e66e9ac2f76..cb5412880e55551b02fb0ced12c840259a875bb9 100644 --- a/src/gen/definition.go +++ b/src/gen/definition.go @@ -53,12 +53,12 @@ func MergerDefine(defaultDef, ymlDef *model.DefData) { defaultFieldMap := map[string]*model.DefField{} ymlFieldMap := map[string]*model.DefField{} - for _, field := range defaultDef.Fields { - CreatePathToFieldMap(&field, defaultFieldMap) + for _, field1 := range defaultDef.Fields { + CreatePathToFieldMap(field1, defaultFieldMap) } - for _, field := range ymlDef.Fields { - CreatePathToFieldMap(&field, ymlFieldMap) + for _, field2 := range ymlDef.Fields { + CreatePathToFieldMap(field2, ymlFieldMap) } for path, field := range ymlFieldMap { @@ -78,7 +78,7 @@ func MergerDefine(defaultDef, ymlDef *model.DefData) { } } -func CreatePathToFieldMap(field *model.DefField, mp map[string]*model.DefField) { +func CreatePathToFieldMap(field model.DefField, mp map[string]*model.DefField) { if field.Path == "" { // root field.Path = field.Field } @@ -87,11 +87,16 @@ func CreatePathToFieldMap(field *model.DefField, mp map[string]*model.DefField) for _, child := range field.Fields { child.Path = field.Path + "~~" + child.Field - CreatePathToFieldMap(&child, mp) + CreatePathToFieldMap(child, mp) } } else { - mp[field.Path] = field + path := field.Path + logUtils.Screen(path + " -> " + field.Field) + mp[path] = &field } + + a := 1 + a = a + 1 } func CopyField(child model.DefField, parent *model.DefField) { diff --git a/src/gen/generator.go b/src/gen/generator.go index dd6b445ca2f233e541791047839d3488ec60f218..49e0a77e82f4c9e87848ebc2dd5c71a074cd7286 100644 --- a/src/gen/generator.go +++ b/src/gen/generator.go @@ -77,12 +77,13 @@ func GenerateForField(field *model.DefField, total int) []string { for _, group := range groups { values = append(values, groupValues[group]...) } - } else { // refer to excel slct := field.Select values = append(values, groupValues[slct]...) } + values = LoopSubFields(field, values, total) + } else { // basic field values = GenerateFieldItemsFromDefinition(field) }