Files
Yi.Admin/Yi.Framework.Net6/Yi.Framework.Model/MenuEntity.cs

80 lines
2.4 KiB
C#
Raw Normal View History

2022-04-24 23:09:34 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
2022-09-13 18:15:01 +08:00
using Yi.Framework.Common.Enum;
using Yi.Framework.Common.Models;
2022-04-24 23:09:34 +08:00
namespace Yi.Framework.Model.Models
{
/// <summary>
/// 菜单表
///</summary>
public partial class MenuEntity
{
[SqlSugar.SugarColumn(IsIgnore = true)]
2022-10-29 10:33:08 +08:00
public List<MenuEntity>? Children { get; set; }
2022-09-13 18:15:01 +08:00
public static List<VueRouterModel> RouterBuild(List<MenuEntity> menus)
{
menus = menus.Where(m => m.MenuType != null && m.MenuType != MenuTypeEnum.Component.GetHashCode()).ToList();
List<VueRouterModel> routers = new();
foreach (var m in menus)
{
var r = new VueRouterModel();
2022-10-16 13:43:23 +08:00
r.OrderNum = m.OrderNum ?? 0;
2022-10-19 19:10:48 +08:00
var routerName = m.Router?.Split("/").LastOrDefault();
2022-09-13 18:15:01 +08:00
r.Id = m.Id;
2022-10-19 19:10:48 +08:00
r.ParentId = m.ParentId??-1;
2022-09-13 18:15:01 +08:00
//开头大写
2022-10-19 19:10:48 +08:00
r.Name = routerName?.First().ToString().ToUpper() + routerName?.Substring(1);
2022-09-13 18:15:01 +08:00
r.Path = m.Router;
2022-10-19 19:10:48 +08:00
r.Hidden =!m.IsShow??false;
2022-09-13 18:15:01 +08:00
if (m.MenuType == MenuTypeEnum.Catalogue.GetHashCode())
{
r.Redirect = "noRedirect";
r.AlwaysShow = true;
2022-10-01 15:04:35 +08:00
//判断是否为最顶层的路由
2022-10-16 13:43:23 +08:00
if (0 == m.ParentId)
2022-10-01 15:04:35 +08:00
{
r.Component = "Layout";
}
else
{
r.Component = "ParentView";
2022-10-16 13:43:23 +08:00
}
2022-09-13 18:15:01 +08:00
}
if (m.MenuType == MenuTypeEnum.Menu.GetHashCode())
{
r.Redirect = "noRedirect";
r.AlwaysShow = true;
r.Component = m.Component;
2022-09-25 18:06:07 +08:00
r.AlwaysShow = false;
2022-09-13 18:15:01 +08:00
}
r.Meta = new Meta
{
Title = m.MenuName,
Icon = m.MenuIcon,
2022-10-19 19:10:48 +08:00
NoCache = !m.IsCache??true
2022-09-13 18:15:01 +08:00
};
2022-10-19 19:10:48 +08:00
if (m.IsLink??false)
2022-09-13 18:15:01 +08:00
{
r.Meta.link = m.Router;
2022-09-25 18:58:17 +08:00
r.AlwaysShow = false;
2022-09-13 18:15:01 +08:00
}
routers.Add(r);
}
return Common.Helper.TreeHelper.SetTree(routers);
}
2022-04-24 23:09:34 +08:00
}
}