/* * @description: 视图层 文件夹 models * @Author: CP * @Date: 2020-09-11 15:12:43 * @FilePath: \construction_management\web\viewmodels\tree.go */ package viewmodels import ( validation "github.com/go-ozzo/ozzo-validation/v3" ) // Leaf 叶子节点为true 可以显示创建标段 // IsBid为true 目录下已包含标段 type Tree struct { Id string `form:"id" json:"id" ` Name string `form:"name" json:"name"` ProjectId string `form:"projectId" json:"projectId"` BidsectionId string `form:"bidsectionId" json:"bidsectionId"` ParentId string `form:"parentId" json:"parentId"` Depth int `form:"depth" json:"depth"` Serial string `form:"serial" json:"serial"` Attribution string `form:"attribution" json:"attribution"` Isfolder int `form:"isfolder" json:"isfolder"` CreateTime string `form:"createTime" json:"createTime"` UpdateTime string `form:"updateTime" json:"updateTime"` TargetFolderId string `form:"targetFolderId" json:"targetFolderId"` Accounts int `form:"accounts" json:"accounts"` Csrf string `form:"csrf" json:"csrf"` // Leaf bool `json:"leaf" ` HasFolder bool `json:"hasFolder" ` IsBid bool `json:"isBid" ` IsEnd bool `json:"isEnd"` ChildsTotal int `json:"childsTotal"` Children []*Tree `json:"children"` } func (l Tree) Validate() error { return validation.ValidateStruct(&l, validation.Field(&l.Id, validation.Required.Error("文件夹ID不能为空")), validation.Field(&l.Name, validation.Required.Error("文件夹名称不能为空"), validation.Length(1, 60).Error("最多 15 个字符")), ) } // func (l Tree) Maketree(Data []*Tree, node *Tree) { //参数为父节点,添加父节点的子节点指针切片 // childs, _ := this.Havechild(Data, node) //判断节点是否有子节点并返回 // if childs != nil { // // fmt.Printf("\n") // // fmt.Println(*node) // // fmt.Println("子节点:") // for _, v := range childs { // fmt.Println(*v) // } //打印 // node.Child = append(node.Child, childs[0:]...) //添加子节点 // for _, v := range childs { //查询子节点的子节点,并添加到子节点 // _, has := Havechild(Data, v) // if has { // Maketree(Data, v) //递归添加节点 // } // } // } // } // func (l Tree) Havechild(Data []*Tree, node *Tree) (child []*Tree, yes bool) { // for _, v := range Data { // if v.ParentId == node.Id { // child = append(child, v) // } // } // if child != nil { // yes = true // } // return // } // func transformjson(Data *Tree) { //转为json // Jsondata, _ := json.Marshal(Data) // fmt.Println(string(Jsondata)) // }