@page "/country/list" @page "/{locale}/country/list" @inject ILogger Logger @attribute [Authorize] 管理后台 系统配置 国家管理

@if (context.Enabled) { } else { } 州省管理 城市管理 编辑 @* 删除 *@

@if (PagingList.Count > 0) { }
@code { [Parameter] public string Locale { get; set; } = string.Empty; [SupplyParameterFromQuery] int? Page { get; set; } [SupplyParameterFromQuery(Name = "size")] int? PageSize { get; set; } bool pageLoading = false; Form searchForm = new(); CountrySearch search = new(); PagingList PagingList = new() { Size = 20 }; protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); } protected override async Task OnParametersSetAsync() { loadQueryString(); await LoadListAsync(); await base.OnParametersSetAsync(); } void loadQueryString() { var uri = new Uri(Navigation.Uri); var query = uri.Query; search.Name = query.GetQueryString("Name"); } async Task LoadListAsync() { pageLoading = true; try { var url = "/api/country/search"; var apiResult = await HttpService.GetPagingList(url, search, Page.GetValueOrDefault(1), PageSize.GetValueOrDefault(20)); if (apiResult.Success) { if (apiResult.Data != null) { PagingList = apiResult.Data; } } else if (apiResult.Code == 403) { ModalService.Error(new ConfirmOptions() { Title = "权限不足", Content = apiResult.Message }); } StateHasChanged(); } finally { pageLoading = false; } } void OnSearchReset() { search = new CountrySearch(); searchForm?.Reset(); } private void OnSearch(int page) { var queryString = search.BuildQueryString(); if (string.IsNullOrEmpty(queryString)) { if (page > 1) { Navigation.NavigateTo($"/country/list?page={page}"); } else { Navigation.NavigateTo($"/country/list"); } } else { if (page > 1) { Navigation.NavigateTo($"/country/list?page={page}&{queryString}"); } else { Navigation.NavigateTo($"/country/list?{queryString}"); } } } void OnSearchFinish() { Page = Page.GetValueOrDefault(1) - 1; OnSearch(Page.Value); } private void OnPageChanged(PaginationEventArgs args) { OnSearch(args.Page); } void HandleAddNew() { Navigation.NavigateTo($"/country/create"); } void HandleEdit(Country model) { Navigation.NavigateTo($"/country/edit/{model.Id}"); } void GotoStateProvince(Country model) { Navigation.NavigateTo($"/stateprovince/list/{model.Id}"); } void GotoArea(Country model) { Navigation.NavigateTo($"/area/list/{model.Id}"); } }