@inherits LayoutComponentBase @using System.Reflection @using System.Globalization @inject WtmBlazorContext wtmblazor; @inject IJSRuntime JSRuntime; @inject NavigationManager NavigationManager;
@if (tenants.Count() >0) { }
厦钨鸣鹤
@Body
@wtmblazor.Localizer["Sys.Close"]
@(UseTabSet ? @wtmblazor.Localizer["Sys.Tabs"] : @wtmblazor.Localizer["Sys.SinglePage"])
@code { private bool UseTabSet { get; set; } = false; private bool IsOpen { get; set; } private bool IsFixedHeader { get; set; } = true; private bool IsFixedFooter { get; set; } = true; private bool IsFullSide { get; set; } = true; private bool ShowFooter { get; set; } = false; private List Menus { get; set; } private List tenants = new List(); private string SelectedCulture { get { if (CultureInfo.CurrentUICulture.Name.Contains("zh")) { return "简体中文"; } if (CultureInfo.CurrentUICulture.Name.Contains("en")) { return "English"; } return CultureInfo.CurrentUICulture.Name; } } [CascadingParameter] public LoginUserInfo UserInfo { get; set; } public async Task DeleteToken() { var dir = await wtmblazor.Api.CallAPI("/api/_account/logout"); await JSRuntime.InvokeAsync("localStorageFuncs.remove", "wtmtoken"); await JSRuntime.InvokeAsync("localStorageFuncs.remove", "wtmrefreshtoken"); await JSRuntime.InvokeVoidAsync("urlFuncs.redirect", dir.Data); } private async Task Show() { await wtmblazor.OpenDialog(wtmblazor.Localizer["Login.ChangePassword"], size: Size.Small, userinfo: UserInfo); } protected override async Task OnInitializedAsync() { List menus = null; menus = new List { }; menus.Add(new BootstrapBlazor.Components.MenuItem() { Text = wtmblazor.Localizer["Sys.Home"], Icon = "fa fa-fw fa-home", Url = "/", Match = NavLinkMatch.All }); if (wtmblazor.ConfigInfo.IsQuickDebug == true) { var pages = wtmblazor.GetAllPages(); foreach (var item in pages) { BootstrapBlazor.Components.MenuItem m = new BootstrapBlazor.Components.MenuItem { Text = item.PageName, Icon = item.Icon, Url = item.Url }; if (item.Children != null) { var items = new List(); foreach (var child in item.Children) { items.Add(new BootstrapBlazor.Components.MenuItem { Text = child.PageName, Icon = child.Icon, Url = child.Url }); } m.Items = items; } menus.Add(m); } } else { var usermenu = UserInfo.Attributes["Menus"] as WalkingTec.Mvvm.Core.Support.Json.SimpleMenuApi[]; var formatedmenu = new List(); formatedmenu.AddRange(toMenuTree(usermenu.AsQueryable())); GetMenuFromFrameworkMenu(formatedmenu).ForEach(x => menus.Add(x)); } Menus = menus; tenants = await wtmblazor.Api.CallItemsApi($"/api/_frameworktenant/GetFrameworkTenants?parent={UserInfo.TenantCode}"); bool tab=false; var test = await JSRuntime.InvokeAsync("localStorageFuncs.get", "wtmtab"); bool suc = bool.TryParse(test, out tab); if(suc == false){ tab = wtmblazor.ConfigInfo.PageMode == PageModeEnum.Tab ? true : false; } UseTabSet = tab; await base.OnInitializedAsync(); } /// /// 整理为树形 /// /// 来源列表 /// 当前级的父ID /// private List toMenuTree(IQueryable origs,string parentID=null) { var rets = new List(); var _thisList = origs.Where(t => t.ParentId==parentID); foreach (var item in _thisList) { var _item = new FrameworkMenu { ID = new Guid(item.Id), PageName = item.Text, Icon = item.Icon, Url = item.Url, Children = new List() }; _item.Children.AddRange(toMenuTree(origs, item.Id)); rets.Add(_item); } return rets; } private List GetMenuFromFrameworkMenu(List input) { List rv = new List(); foreach (var item in input) { var m = new BootstrapBlazor.Components.MenuItem { Text = wtmblazor.Localizer[item.PageName], Icon = item.Icon, Url = item.Url }; if (m.Url != null) { if (m.Url.ToLower().StartsWith("http://") || m.Url.ToLower().StartsWith("https://")) { m.Url = "/Outside/" + System.Web.HttpUtility.UrlEncode(m.Url); m.Match = NavLinkMatch.All; } } if (item.Children?.Any() == true) { m.Items = GetMenuFromFrameworkMenu(item.Children); } rv.Add(m); } return rv; } private async Task SetCulture(string Value) { var cultureName = Value; if (cultureName != CultureInfo.CurrentUICulture.Name) { await JSRuntime.InvokeAsync("localStorageFuncs.set", "wtmculture", Value); var culture = new CultureInfo(cultureName); CultureInfo.CurrentCulture = culture; CultureInfo.CurrentUICulture = culture; var uri = await JSRuntime.InvokeAsync("urlFuncs.getCurrentUrl"); var query = $"?culture={Uri.EscapeDataString(Value)}&" + $"redirect={Uri.EscapeDataString(uri)}"; NavigationManager.NavigateTo(wtmblazor.GetServerUrl() + "/_framework/SetLanguageForBlazor" + query, forceLoad: true); } } private async Task SetTenant(string Value) { _ = await wtmblazor.Api.CallAPI("/api/_account/SetTenant?tenant=" + Value); _ = await JSRuntime.InvokeAsync("urlFuncs.refresh"); } private async Task TabChanged(bool v) { await JSRuntime.InvokeAsync("localStorageFuncs.set", "wtmtab",v); } }