56 lines
1.1 KiB
Go
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
|
|
}
|