74 lines
3.0 KiB
C#
74 lines
3.0 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Text;
|
|||
|
|
|
|||
|
|
namespace APT.BaseData.Domain.ApiModel.FM
|
|||
|
|
{
|
|||
|
|
public class RolePermissionTreeModel
|
|||
|
|
{
|
|||
|
|
// public Guid ID { get; set; }
|
|||
|
|
public bool IsCheck { get; set; }
|
|||
|
|
public string title { get; set; }
|
|||
|
|
public string key { get; set; }
|
|||
|
|
public List<RolePermissionTreeModel> children { get; set; } = new List<RolePermissionTreeModel>();
|
|||
|
|
|
|||
|
|
public static List<RolePermissionTreeModel> GetRolePermissionTree(List<FormInfo> formInfos)
|
|||
|
|
{
|
|||
|
|
var res = new List<RolePermissionTreeModel>();//所有最终父节点
|
|||
|
|
var dic = new Dictionary<string, RolePermissionTreeModel>();//所有节点
|
|||
|
|
foreach (var item in formInfos)
|
|||
|
|
{
|
|||
|
|
RolePermissionTreeModel rolePermissionTreeModel, prolePermissionTreeModel;
|
|||
|
|
if (dic.ContainsKey(item.Code))
|
|||
|
|
{
|
|||
|
|
rolePermissionTreeModel = dic[item.Code];
|
|||
|
|
rolePermissionTreeModel.title = item.Title;
|
|||
|
|
rolePermissionTreeModel.IsCheck = item.IsCheck;
|
|||
|
|
if (res.Contains(rolePermissionTreeModel))
|
|||
|
|
res.Remove(rolePermissionTreeModel);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
rolePermissionTreeModel = new RolePermissionTreeModel()
|
|||
|
|
{
|
|||
|
|
key = item.Code,
|
|||
|
|
title = item.Title,
|
|||
|
|
IsCheck=item.IsCheck
|
|||
|
|
};
|
|||
|
|
dic.Add(rolePermissionTreeModel.key, rolePermissionTreeModel);
|
|||
|
|
}
|
|||
|
|
if (dic.ContainsKey(item.ParentCode))
|
|||
|
|
prolePermissionTreeModel = dic[item.ParentCode];
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
prolePermissionTreeModel = new RolePermissionTreeModel() { key = item.ParentCode };
|
|||
|
|
dic.Add(prolePermissionTreeModel.key, prolePermissionTreeModel);
|
|||
|
|
if (!res.Contains(prolePermissionTreeModel))
|
|||
|
|
res.Add(prolePermissionTreeModel);
|
|||
|
|
}
|
|||
|
|
prolePermissionTreeModel.children.Add(rolePermissionTreeModel);
|
|||
|
|
}
|
|||
|
|
return res;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public class FormInfo
|
|||
|
|
{
|
|||
|
|
public string Title { get; set; }
|
|||
|
|
public bool IsCheck { get; set; }
|
|||
|
|
public string Code { get; set; }
|
|||
|
|
public string ParentCode { get; set; }
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
public class RolePermissionResul
|
|||
|
|
{
|
|||
|
|
public List<string> checks { get; set; }
|
|||
|
|
public List<string> checkLastKey { get; set; }
|
|||
|
|
public List<string> orgChecks { get; set; }
|
|||
|
|
public List<string> orgCheckLastKey { get; set; }
|
|||
|
|
public List<string> checkTenants { get; set; }
|
|||
|
|
public List<RolePermissionTreeModel> rolePermissionTreeModels { get; set; }
|
|||
|
|
public List<RolePermissionTreeModel> orgRolePermissionTreeModels { get; set; }
|
|||
|
|
public bool isRoot { get; set; }
|
|||
|
|
}
|
|||
|
|
}
|