Files
2022-01-07 17:24:39 +08:00

56 lines
1.1 KiB
Go

package auth
import (
"SciencesServer/app/api/admin/model"
model2 "SciencesServer/app/common/model"
)
type (
// Tree 权限信息
Tree struct {
ID string `json:"id"`
*model2.SysAuth
Children []*Tree `json:"children"`
}
// TreeChecked 角色选中状态
TreeChecked struct {
ID string `json:"id"`
*model.SysAuthScene
Checked bool `json:"checked"`
Children []*TreeChecked `json:"children"`
}
)
// tree 树状筛选
func tree(src []*model2.SysAuth, parentID uint64) []*Tree {
out := make([]*Tree, 0)
for _, v := range src {
if v.ParentID == parentID {
out = append(out, &Tree{
ID: v.GetEncodeID(),
SysAuth: v,
Children: tree(src, v.ID),
})
}
}
return out
}
// TreeCheckedFunc 树状筛选
func TreeCheckedFunc(src []*model.SysAuthScene, parentID uint64) []*TreeChecked {
out := make([]*TreeChecked, 0)
for _, v := range src {
if v.ParentID == parentID {
out = append(out, &TreeChecked{
ID: v.GetEncodeID(),
SysAuthScene: v,
Checked: v.SceneID > 0,
Children: TreeCheckedFunc(src, v.ID),
})
}
}
return out
}