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

close task#8569

上级 f982c222
......@@ -22,6 +22,7 @@ type ZdDef struct {
FileName string `gorm:"column:fileName" json:"fileName" yaml:"-"`
ReferName string `gorm:"column:referName" json:"referName" yaml:"-"`
From string `gorm:"-" json:"from"`
Fields []ZdField `gorm:"-" json:"fields"`
}
......@@ -177,6 +178,7 @@ type ZdInstances struct {
FileName string `gorm:"column:fileName" json:"fileName" yaml:"-"`
ReferName string `gorm:"column:referName" json:"referName" yaml:"-"`
From string `gorm:"-" json:"from"`
Instances []ZdInstancesItem `gorm:"ForeignKey:instancesID" json:"instances" yaml:"instances"`
}
......
......@@ -209,18 +209,18 @@ func (s *DefService) SyncToDB(fi model.ResFile) (err error) {
s.referRepo.CreateDefault(rootField.ID, constant.ResTypeDef)
for i, field := range po.Fields {
field.Ord = i + 1
s.saveFieldToDB(&field, fi.Path, rootField.ID, po.ID)
s.saveFieldToDB(&field, po, fi.Path, rootField.ID, po.ID)
}
return
}
func (s *DefService) saveFieldToDB(field *model.ZdField, currPath string, parentID, defID uint) {
func (s *DefService) saveFieldToDB(field *model.ZdField, def model.ZdDef, currPath string, parentID, defID uint) {
if field.Froms != nil && len(field.Froms) > 0 {
for idx, from := range field.Froms {
if from.Field == "" {
from.Field = "from" + strconv.Itoa(idx+1)
}
s.saveFieldToDB(from, currPath, parentID, defID)
s.saveFieldToDB(from, def, currPath, parentID, defID)
}
return
......@@ -229,6 +229,9 @@ func (s *DefService) saveFieldToDB(field *model.ZdField, currPath string, parent
// update field
field.DefID = defID
field.ParentID = parentID
if field.From == "" && def.From != "" {
field.From = def.From
}
if field.Type == "" {
field.Type = constant.FieldTypeList
}
......@@ -327,7 +330,7 @@ func (s *DefService) saveFieldToDB(field *model.ZdField, currPath string, parent
// deal with field's children
for _, child := range field.Fields {
s.saveFieldToDB(child, currPath, field.ID, defID)
s.saveFieldToDB(child, def, currPath, field.ID, defID)
}
}
......
......@@ -169,18 +169,18 @@ func (s *InstancesService) SyncToDB(fi model.ResFile) (err error) {
for i, item := range po.Instances {
item.Ord = i + 1
s.saveItemToDB(&item, fi.Path, 0, po.ID)
s.saveItemToDB(&item, po, fi.Path, 0, po.ID)
}
return
}
func (s *InstancesService) saveItemToDB(item *model.ZdInstancesItem, currPath string, parentID, instancesID uint) {
func (s *InstancesService) saveItemToDB(item *model.ZdInstancesItem, instances model.ZdInstances, currPath string, parentID, instancesID uint) {
if item.Froms != nil && len(item.Froms) > 0 {
for idx, from := range item.Froms {
if from.Field == "" {
from.Field = "from" + strconv.Itoa(idx+1)
}
s.saveItemToDB(from, currPath, parentID, instancesID)
s.saveItemToDB(from, instances, currPath, parentID, instancesID)
}
return
......@@ -193,6 +193,9 @@ func (s *InstancesService) saveItemToDB(item *model.ZdInstancesItem, currPath st
item.InstancesID = instancesID
item.ParentID = parentID
if item.From == "" && instances.From != "" {
item.From = instances.From
}
if item.Type == "" {
item.Type = constant.FieldTypeList
}
......@@ -295,7 +298,7 @@ func (s *InstancesService) saveItemToDB(item *model.ZdInstancesItem, currPath st
// deal with field's children
for i, child := range item.Fields {
child.Ord = i + 1
s.saveItemToDB(child, currPath, item.ID, instancesID)
s.saveItemToDB(child, instances, currPath, item.ID, instancesID)
}
}
......
无法预览此类型文件
......@@ -2,16 +2,20 @@ title: 数据测试1
desc: 数据测试1
fields:
- field: field_with_children
from: zentao.number.v1.yaml
fields:
- field: field_text
range: test/dir/users.txt:7
postfix: "\t"
from: zentao.number.v1.yaml
- field: field_yaml
range: test/dir/content.yaml{7}
postfix: "\t"
from: zentao.number.v1.yaml
- field: field_use_config
postfix: "\t"
config: test/dir/config.yaml
from: zentao.number.v1.yaml
- field: field_use_ranges
postfix: "\t"
from: zentao.number.v1.yaml
......@@ -31,17 +35,21 @@ fields:
prefix: "\t"
postfix: '|'
loop: "3"
from: zentao.number.v1.yaml
- field: child2
range: A-Z
prefix: part2_
postfix: '|'
from: zentao.number.v1.yaml
- field: child_with_child
prefix: part3_
from: zentao.number.v1.yaml
fields:
- field: field_grandson
range: 10-20
prefix: int_
- field: from1
from: zentao.number.v1.yaml
- field: refer1
postfix: '-'
from: zentao.number.v1.yaml
use: small{2}
......
title: 数据测试1
desc: 数据测试1
from: zentao.number.v1.yaml # 全局From配置
fields:
- field: refer1 # 使用全局From配置
postfix: '-'
use: small{2}
- from: zentao.number.v1.yaml
use: large{3}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册