@page "/country/list" @page "/{locale}/country/list" @inject ILogger Logger @attribute [Authorize] Home 系统配置 货币管理
@if (searchExpand) { }
@if (context.PrimaryCurrency) { } else { } @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; bool searchExpand = false; Form searchForm = new(); CurrencySearchModel 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"); search.Status = query.GetQueryString("Status"); var data = query.GetQueryString("RangeTime"); if (!string.IsNullOrEmpty(data)) { var rangetime = data.Split("-"); if (rangetime != null && rangetime.Length > 0) { searchExpand = true; search.RangeTime[0] = rangetime[0].NumberToDateTime(); search.RangeTime[1] = rangetime[1].NumberToDateTime(); StateHasChanged(); } } } async Task LoadListAsync() { try { pageLoading = true; var url = "/api/currency/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 CurrencySearchModel(); searchForm?.Reset(); } private void OnSearch(int page) { var queryString = search.BuildQueryString(); if (string.IsNullOrEmpty(queryString)) { if (page > 1) { Navigation.NavigateTo($"/currency/list?page={page}"); } else { Navigation.NavigateTo($"/currency/list"); } } else { if (page > 1) { Navigation.NavigateTo($"/currency/list?page={page}&{queryString}"); } else { Navigation.NavigateTo($"/currency/list?{queryString}"); } } } void OnSearchFinish() { Page = Page.GetValueOrDefault(1) - 1; OnSearch(Page.Value); } private void OnPageChanged(PaginationEventArgs args) { OnSearch(args.Page); } void HandleAddNew() { Navigation.NavigateTo($"/currency/create"); } void HandleEdit(CurrencyModel model) { Navigation.NavigateTo($"/currency/edit/{model.Id}"); } } @code { }