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; }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |