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

fix tree node display issue

上级 6a558d5f
......@@ -174,6 +174,7 @@ type ZdInstancesItem struct {
ParentID uint `gorm:"column:parentID" json:"parentID"`
Field string `gorm:"column:field" json:"field"`
Note string `gorm:"column:note" json:"note"`
Instance string `gorm:"column:instance" json:"instance"`
Range string `gorm:"column:range" json:"range"`
Exp string `gorm:"column:exp" json:"exp"`
......
......@@ -35,7 +35,7 @@ func (r *InstancesRepo) Remove(id uint) (err error) {
}
func (r *InstancesRepo) GetItems(instancesId int) (items []*model.ZdInstancesItem, err error) {
err = r.db.Where("instancesId=?", instancesId).Find(&items).Error
err = r.db.Where("instancesId=?", instancesId).Order("parentID ASC, ord ASC").Find(&items).Error
return
}
func (r *InstancesRepo) GetItem(itemId uint) (item model.ZdInstancesItem, err error) {
......@@ -67,6 +67,41 @@ func (r *InstancesRepo) GetMaxOrder(instancesId int) (ord int) {
return
}
func (r *InstancesRepo) GetItemTree(instancesId int) (root model.ZdInstancesItem) {
items, _ := r.GetItems(instancesId)
root.ID = 0
root.Field = "实例"
r.makeTree(items, &root)
return
}
func (r *InstancesRepo) makeTree(Data []*model.ZdInstancesItem, node *model.ZdInstancesItem) {
children, _ := r.haveChild(Data, node)
if children != nil {
node.Fields = append(node.Fields, children[0:]...)
for _, v := range children {
_, has := r.haveChild(Data, v)
if has {
r.makeTree(Data, v)
}
}
}
}
func (r *InstancesRepo) haveChild(Data []*model.ZdInstancesItem,
node *model.ZdInstancesItem) (child []*model.ZdInstancesItem, yes bool) {
for _, v := range Data {
if v.ParentID == node.ID {
child = append(child, v)
}
}
if child != nil {
yes = true
}
return
}
func NewInstancesRepo(db *gorm.DB) *InstancesRepo {
return &InstancesRepo{db: db}
}
......@@ -144,7 +144,6 @@ func (s *DefService) saveDataToDB(defs []model.ResFile, list []*model.ZdDef) (er
for _, def := range defs {
if !stringUtils.FindInArrBool(def.Path, names) {
//if strings.Contains(inst.Path, "_test") {
content, _ := ioutil.ReadFile(def.Path)
yamlContent := stringUtils.ReplaceSpecialChars(content)
defPo := model.ZdDef{}
......@@ -157,10 +156,12 @@ func (s *DefService) saveDataToDB(defs []model.ResFile, list []*model.ZdDef) (er
s.defRepo.Create(&defPo)
for _, field := range defPo.Fields {
s.saveFieldToDB(&field, 0, defPo.ID)
rootField, _ := s.fieldRepo.CreateTreeNode(defPo.ID, 0, "字段", "root")
s.referRepo.CreateDefault(rootField.ID, constant.ResTypeDef)
for i, field := range defPo.Fields {
field.Ord = i + 1
s.saveFieldToDB(&field, rootField.ID, defPo.ID)
}
//}
}
}
......
......@@ -51,16 +51,8 @@ func (s *InstancesService) Remove(id int) (err error) {
return
}
func (s *InstancesService) GetItemTree(rangesId int) (root model.ZdInstancesItem) {
items, _ := s.instancesRepo.GetItems(rangesId)
root.ID = 0
root.Field = "实例"
for _, item := range items {
item.ParentID = root.ID
root.Fields = append(root.Fields, item)
}
func (s *InstancesService) GetItemTree(instancesId int) (root model.ZdInstancesItem) {
root = s.instancesRepo.GetItemTree(instancesId)
return
}
func (s *InstancesService) GetItem(id int) (item model.ZdInstancesItem) {
......@@ -119,11 +111,16 @@ func (s *InstancesService) saveResToDB(instances []model.ResFile, list []*model.
return
}
func (s *InstancesService) saveItemToDB(item *model.ZdInstancesItem, parentID, instancesID uint) {
if item.Instance != "" { // instance node
item.Field = item.Instance
}
item.InstancesID = instancesID
item.ParentID = parentID
s.instancesRepo.SaveItem(item)
for _, child := range item.Fields {
for i, child := range item.Fields {
child.Ord = i + 1
s.saveItemToDB(child, item.ID, instancesID)
}
}
......
无法预览此类型文件
......@@ -139,7 +139,7 @@ export default {
selectedKeys: [],
targetModel: 0,
treeNode: null,
fieldMap: {key:'id', value: 'id'},
fieldMap: {key:'id', value: 'id', children: 'fields'},
};
},
props: {
......@@ -236,12 +236,12 @@ export default {
this.rightVisible = false
}
},
getOpenKeys (def) {
if (!def) return
getOpenKeys (field) {
if (!field) return
this.openKeys.push(def.id)
if (def.children) {
def.children.forEach((item) => {
this.openKeys.push(field.id)
if (field.fields) {
field.fields.forEach((item) => {
this.getOpenKeys(item)
})
}
......
title: 国家数据
title: 测试实例
desc:
author: zentao
version: 1.0
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册