2026-01-10 13:47:54 +08:00

107 lines
3.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace RIZO.Model.System.Vo
{
/// <summary>
/// 路由展示
/// </summary>
public class RouterVo
{
/// <summary>
/// 当你一个路由下面的 children 声明的路由大于1个时自动会变成嵌套的模式--如组件页面
/// </summary>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public bool AlwaysShow { get; set; }
/// <summary>
/// 组件地址
/// </summary>
private string component;
/// <summary>
/// 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现
/// </summary>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public bool Hidden { get; set; }
/// <summary>
/// 路由名字
/// </summary>
public string Name { get; set; }
/// <summary>
/// 路由地址
/// </summary>
public string Path { get; set; }
/// <summary>
/// 重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
/// </summary>
public string Redirect { get; set; }
/// <summary>
/// 路由参数: 如{ "key": "value"}
/// </summary>
public string Query { get; set; }
/// <summary>
/// 其他元素
/// </summary>
public Meta Meta { get; set; }
/// <summary>
/// 子路由
/// </summary>
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public List<RouterVo> Children { get; set; }
public string Component { get => component; set => component = value; }
}
public class Meta
{
/// <summary>
/// 设置该路由在侧边栏和面包屑中展示的名字
/// </summary>
public string Title { get; set; }
/// <summary>
/// 设置该路由的图标对应路径src/assets/icons/svg
/// </summary>
public string Icon { get; set; }
/// <summary>
/// 设置为true则不会被 <keep-alive>缓存
/// </summary>
public bool NoCache { get; set; }
public string TitleKey { get; set; } = string.Empty;
public string Link { get; set; } = string.Empty;
public int IsNew { get; set; }
/// <summary>
/// icon颜色
/// </summary>
public string IconColor { get; set; }
/// <summary>
/// 权限字符
/// </summary>
public string Permi { get; set; }
public Meta(string title, string icon)
{
Title = title;
Icon = icon;
}
public Meta(string title, string icon, string path)
{
Title = title;
Icon = icon;
Link = path;
}
public Meta(string title, string icon, bool noCache, string titleKey, string path, DateTime addTime)
{
Title = title;
Icon = icon;
NoCache = noCache;
TitleKey = titleKey;
if (!string.IsNullOrEmpty(path) && (path.StartsWith(UserConstants.HTTP) || path.StartsWith(UserConstants.HTTPS)))
{
Link = path;
}
if (addTime != DateTime.MinValue)
{
TimeSpan ts = DateTime.Now - addTime;
if (ts.Days < 7)
{
IsNew = 1;
}
}
}
}
}