@page "/_Admin/FrameworkMenu/Create" @using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkMenuVMs @using WalkingTec.Mvvm.Core.Extensions @inherits BasePage
} else { }
@code { private FrameworkMenuVM2 Model = new FrameworkMenuVM2(); private List AllType = new List(); private List AllModels = new List(); private List AllFolders = new List(); private List AllActions = new List(); private List IconTypes = new List(); private List Icons = new List(); private List ClientPages; public string SelectedIconType { get; set; } = ""; private ValidateForm vform { get; set; } protected override async Task OnInitializedAsync() { Model.Entity = new FrameworkMenu { ShowOnMenu = true, IsInside=true }; AllType.Add(new SelectedItem { Text = WtmBlazor.Localizer["_Admin.Inside"], Value = "True" }); AllType.Add(new SelectedItem { Text = WtmBlazor.Localizer["_Admin.Outside"], Value = "False" }); AllFolders = await WtmBlazor.Api.CallItemsApi("/api/_FrameworkMenu/GetFolders", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]); IconTypes = await WtmBlazor.Api.CallItemsApi("/api/_FrameworkMenu/GetIcons", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]); ClientPages = WtmBlazor.GetAllPages(); AllModels.Add(new SelectedItem { Text = WtmBlazor.Localizer["Sys.PleaseSelect"], Value = "" }); foreach (var item in ClientPages) { foreach (var sub in item.Children) { AllModels.Add(new SelectedItem { Text = sub.PageName, Value = sub.ClassName ?? sub.Url, GroupName = item.PageName }); } } } private async Task OnModelChange(SelectedItem item) { var url = ClientPages.FlatTree().Where(x => x.ClassName == item.Value || x.Url == item.Value).Select(x => x.Url).FirstOrDefault(); AllActions = await WtmBlazor.Api.CallItemsApi($"/api/_FrameworkMenu/GetActionsByModel?ModelName={item.Value}"); Model.Entity.Url = url; StateHasChanged(); } private async Task OnIconChange(SelectedItem item) { Icons = await WtmBlazor.Api.CallItemsApi($"/api/_FrameworkMenu/GetIconItems?key={item.Value}", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]); foreach (var icon in Icons) { if (icon.Value != "") { icon.Value = SelectedIconType + " " + icon.Value; } } StateHasChanged(); } private async Task Submit(EditContext context) { await PostsForm(vform, "/api/_frameworkmenu/add", (s) => "Sys.OprationSuccess"); } public void OnClose() { CloseDialog(); } }