@page "/_Admin/FrameworkMenu/Edit/{id}" @using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkMenuVMs @using WalkingTec.Mvvm.Core.Extensions @inherits BasePage
} else { }
@code { private FrameworkMenuVM2 Model = null; 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; } [Parameter] public string id { get; set; } protected override async Task OnInitializedAsync() { 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"]); var items = WtmBlazor.GetAllPages(); 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 }); } } var rv = await WtmBlazor.Api.CallAPI($"/api/_FrameworkMenu/{id}"); if (string.IsNullOrEmpty(rv?.Data?.Entity?.Icon) == false) { rv.Data.Entity.Icon = rv.Data.Entity.Icon.Trim(); var iconinfo = rv.Data.Entity.Icon.Split(" "); SelectedIconType = iconinfo[0]; await OnIconChange(new SelectedItem { Value = SelectedIconType }); } AllActions = await WtmBlazor.Api.CallItemsApi($"/api/_FrameworkMenu/GetActionsByModel?ModelName={rv.Data.SelectedModule}"); Model = rv.Data; } 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/edit", (s) => "Sys.OprationSuccess", method: HttpMethodEnum.PUT); } public void OnClose() { CloseDialog(); } }