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

fix tree node display issue

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