using Model; using Newtonsoft.Json; namespace Vo { /// /// 路由展示 /// public class RouterVo { [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public bool AlwaysShow { get; set; } private string component; [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public bool Hidden { get; set; } public string Name { get; set; } public string Path { get; set; } public string Redirect { get; set; } public Meta Meta { get; set; } [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public List Children { get; set; } public string Component { get => component; set => component = value; } } public class Meta { /// /// 设置该路由在侧边栏和面包屑中展示的名字 /// public string Title { get; set; } /// /// 设置该路由的图标,对应路径src/assets/icons/svg /// public string Icon { get; set; } /// /// 设置为true,则不会被 缓存 /// public bool NoCache { get; set; } public string TitleKey { get; set; } = string.Empty; public string Link { get; set; } = string.Empty; public int IsNew { 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; } } } } }