feat:完善项目信息

This commit is contained in:
henry
2022-01-06 17:11:57 +08:00
parent 1b0f71735b
commit a92801b1ce
29 changed files with 815 additions and 623 deletions

View File

@ -7,11 +7,19 @@ import (
type (
Tree struct {
ID string `json:"id"`
ParentID string `json:"parent_id"`
*model2.SysMenu
Path string `json:"path"`
Hidden int `json:"hidden"`
Children []*Tree `json:"children"`
}
TreeChecked struct {
ID string `json:"id"`
ParentID string `json:"parent_id"`
*model2.SysMenuBasic
Path string `json:"path"`
Hidden int `json:"hidden"`
Checked bool `json:"checked"`
Children []*TreeChecked `json:"children"`
}
@ -24,7 +32,11 @@ func tree(src []*model2.SysMenu, parentID uint64) []*Tree {
for _, v := range src {
if v.ParentID == parentID {
out = append(out, &Tree{
ID: v.GetEncodeID(),
ParentID: (&model2.Model{ID: v.ParentID}).GetEncodeID(),
SysMenu: v,
Path: v.Link,
Hidden: int(v.IsHidden),
Children: tree(src, v.ID),
})
}
@ -39,7 +51,11 @@ func TreeCheckedFunc(src []*model.SysMenuScene, parentID uint64) []*TreeChecked
for _, v := range src {
if v.ParentID == parentID {
out = append(out, &TreeChecked{
ID: v.GetEncodeID(),
ParentID: (&model2.Model{ID: v.ParentID}).GetEncodeID(),
SysMenuBasic: v.SysMenuBasic,
Path: v.Link,
Hidden: int(v.IsHidden),
Checked: v.SceneID > 0,
Children: TreeCheckedFunc(src, v.ID),
})
@ -58,9 +74,9 @@ func menuForSystem(iModel model2.IModel, where ...*model2.ModelWhere) ([]*Tree,
return tree(out, 0), nil
}
// MenuForSystem 系统管理员菜单
func MenuForSystem(iModel model2.IModel, where ...*model2.ModelWhere) ([]*Tree, error) {
out, err := iModel.(*model.SysMenu).SystemMenu(where...)
// menuForTenant 租户人员菜单
func menuForTenant(iModel model2.IModel, tenantID uint64, where ...*model2.ModelWhere) ([]*Tree, error) {
out, err := iModel.(*model.SysMenu).TenantMenu(tenantID, where...)
if err != nil {
return nil, err
@ -68,28 +84,39 @@ func MenuForSystem(iModel model2.IModel, where ...*model2.ModelWhere) ([]*Tree,
return tree(out, 0), nil
}
// MenuForTenant 租户人员菜单
func MenuForTenant(iModel model2.IModel, tenantID uint64) ([]*TreeChecked, error) {
out, err := iModel.(*model.SysMenu).TenantMenu(tenantID)
if err != nil {
return nil, err
}
return TreeCheckedFunc(out, 0), nil
// MenuForSystem 系统管理员菜单
func MenuForSystem(iModel model2.IModel, where ...*model2.ModelWhere) ([]*Tree, error) {
return menuForSystem(iModel, where...)
}
func MenuForRole(iModel model2.IModel, tenantID uint64, roleID uint64) ([]*TreeChecked, error) {
out, err := iModel.(*model.SysMenu).RoleMenu(tenantID, roleID)
if err != nil {
return nil, err
}
return TreeCheckedFunc(out, 0), nil
// MenuForTenant 租户人员菜单
func MenuForTenant(iModel model2.IModel, tenantID uint64, where ...*model2.ModelWhere) ([]*Tree, error) {
return menuForTenant(iModel, tenantID, where...)
}
// MenuForUser 当前用户菜单
func MenuForUser(iModel model2.IModel, tenantID uint64, uid uint64) ([]*TreeChecked, error) {
out, err := iModel.(*model.SysMenu).UserMenu(tenantID, uid)
func MenuForUser(iModel model2.IModel, tenantID uint64, uid uint64, where ...*model2.ModelWhere) ([]*Tree, error) {
out, err := iModel.(*model.SysMenu).UserMenu(tenantID, uid, where...)
if err != nil {
return nil, err
}
return tree(out, 0), nil
}
// MenuForTenantChecked 租户选中菜单
func MenuForTenantChecked(iModel model2.IModel, tenantID uint64) ([]*TreeChecked, error) {
out, err := iModel.(*model.SysMenu).TenantMenuChecked(tenantID)
if err != nil {
return nil, err
}
return TreeCheckedFunc(out, 0), nil
}
// MenuForRoleChecked 角色选中菜单
func MenuForRoleChecked(iModel model2.IModel, tenantID uint64, roleID uint64) ([]*TreeChecked, error) {
out, err := iModel.(*model.SysMenu).RoleMenuChecked(tenantID, roleID)
if err != nil {
return nil, err
}