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

change to union multiple from, not combine them as sub-fields

上级 d3f28461
...@@ -10,4 +10,12 @@ fields: ...@@ -10,4 +10,12 @@ fields:
- field: test1 - field: test1
range: [userA,a-z,1-9,1-10000] # 字面常量及列表 range: [userA,a-z,1-9,1-10000] # 字面常量及列表
postfix: "\t"
- field: field_use_instance
froms:
- from: ip.v1.yaml
use: privateC,privateB
- from: ip.v1.yaml
use: privateC,privateB
postfix: "\t" postfix: "\t"
\ No newline at end of file
...@@ -84,23 +84,21 @@ func GenerateForField(field *model.DefField, withFix bool) (values []string) { ...@@ -84,23 +84,21 @@ func GenerateForField(field *model.DefField, withFix bool) (values []string) {
values = loopFieldValues(field, values, count, true) values = loopFieldValues(field, values, count, true)
} else if len(field.Froms) > 0 { // from muti items } else if len(field.Froms) > 0 { // from muti items
arrOfArr := make([][]string, 0) // 2 dimension arr for child, [ [a,b,c], [1,2,3] ] unionValues := make([]string, 0) // 2 dimension arr for child, [ [a,b,c], [1,2,3] ]
for _, child := range field.Froms { for _, child := range field.Froms {
if child.From == "" { if child.From == "" {
child.From = field.From child.From = field.From
} }
childValues := GenerateForField(&child, withFix) childValues := GenerateForField(&child, withFix)
arrOfArr = append(arrOfArr, childValues) unionValues = append(unionValues, childValues...)
} }
count := vari.Total count := len(unionValues)
count = getRecordCount(arrOfArr)
if count > vari.Total { if count > vari.Total {
count = vari.Total count = vari.Total
} }
values = combineChildrenValues(arrOfArr, count) values = loopFieldValues(field, unionValues, count, true)
values = loopFieldValues(field, values, count, true)
} else if field.From != "" { // refer to res } else if field.From != "" { // refer to res
......
...@@ -155,7 +155,7 @@ func prepareNestedInstanceRes(insts model.ResInsts, inst model.ResInst, instFiel ...@@ -155,7 +155,7 @@ func prepareNestedInstanceRes(insts model.ResInsts, inst model.ResInst, instFiel
if instField.Use != "" { // refer to another instances or ranges if instField.Use != "" { // refer to another instances or ranges
if vari.Res[instField.From] == nil { if vari.Res[instField.From] == nil {
referencedRanges, referencedInstants := getRootRangeOrInstant(instField) referencedRanges, referencedInstants := getreferencedRangeOrInstant(instField)
groupedValueReferenced := map[string][]string{} groupedValueReferenced := map[string][]string{}
if len(referencedRanges.Ranges) > 0 { // refer to ranges if len(referencedRanges.Ranges) > 0 { // refer to ranges
...@@ -184,7 +184,7 @@ func prepareNestedInstanceRes(insts model.ResInsts, inst model.ResInst, instFiel ...@@ -184,7 +184,7 @@ func prepareNestedInstanceRes(insts model.ResInsts, inst model.ResInst, instFiel
} }
} }
func getRootRangeOrInstant(inst model.DefField) (referencedRanges model.ResRanges, referencedInsts model.ResInsts) { func getreferencedRangeOrInstant(inst model.DefField) (referencedRanges model.ResRanges, referencedInsts model.ResInsts) {
resFile, _, _ := fileUtils.GetResProp(inst.From) resFile, _, _ := fileUtils.GetResProp(inst.From)
yamlContent, err := ioutil.ReadFile(resFile) yamlContent, err := ioutil.ReadFile(resFile)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册