Files

56 lines
1.1 KiB
Go
Raw Normal View History

2021-09-28 11:47:19 +08:00
package auth
import (
2022-01-05 11:29:27 +08:00
"SciencesServer/app/api/admin/model"
2021-09-28 11:47:19 +08:00
model2 "SciencesServer/app/common/model"
)
type (
// Tree 权限信息
Tree struct {
2022-01-07 17:24:39 +08:00
ID string `json:"id"`
2021-09-28 11:47:19 +08:00
*model2.SysAuth
2022-01-07 17:24:39 +08:00
Children []*Tree `json:"children"`
2021-09-28 11:47:19 +08:00
}
// TreeChecked 角色选中状态
TreeChecked struct {
2022-01-07 17:24:39 +08:00
ID string `json:"id"`
*model.SysAuthScene
2021-09-28 11:47:19 +08:00
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{
2022-01-07 17:24:39 +08:00
ID: v.GetEncodeID(),
SysAuth: v,
Children: tree(src, v.ID),
2021-09-28 11:47:19 +08:00
})
}
}
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{
2022-01-07 17:24:39 +08:00
ID: v.GetEncodeID(),
SysAuthScene: v,
Checked: v.SceneID > 0,
Children: TreeCheckedFunc(src, v.ID),
2021-09-28 11:47:19 +08:00
})
}
}
return out
}